comsol中评估任意区域的值

comsol中评估任意区域的值

对于一个仿真体系,想要评估某个特定区域的物理量的结果,比如计算某个区域的源项的积分,但是又不想对原始网格产生影响,在comsol中可以通过广义拉伸来实现这个需求。

comsol中的拉伸

拉伸(extrusion)在comsol中的含义为映射,即把一个组件的一部分映射到另一个部分,可以通过拉伸来连接两个子模型,比如对于管内的湍流模拟,需要获得入口处的流动轮廓。我们此时可以用一个法向流入的辅助模型计算出一个速度分布,然后将辅助模型的出口流动轮廓映射到湍流模拟的入口处。因此,映射的过程涉及两个几何实体:已知变量的源目标(source)和将使用这些变量的目标(destination)。已知在源处的一个量,我们想计算目标域的另一个量。新的量可以与源量相同,或者也可以是它的一个函数。

任意区域的后处理

所以利用广义拉伸在comsol中处理任意区域的结果,基本思路就是建立两个组件comp1和comp2,实际求解comp1,然后在comp2中只画出想要查看的几何区域,通过广义拉伸把comp1的求解结果映射到comp2中,此时就可以利用comp2中画出的几何区域来查看该区域的模型结果了。比如在comsol里求解这样一个东西,实际上是一个简化的GaN HEMT,中间蓝色区域是源极和漏极之间的整个沟道区域,红色部分是栅极下方靠近漏极一侧一个小范围内的高场区域,现在想要看看整个沟道的产热和高场区域的产热分别是多少。蓝色区域是模型里实际建出来的,红色区域是不存在的。

可以在comp1里定义一个广义拉伸genext1,区域选取为蓝色区域,变量映射关系保持不变。

然后建立一个新的组件comp2,只画出上面红色区域,

对comp1进行求解,得到的solution会有两个comp选项,我们可以copy一份dataset,把对应comp1的dataset定义为dset1,把对应comp2的dataset定义为dset2

在dset1中评估整个蓝色区域的产热值,

在dset2中评估红色区域的产热值,这时的表达式要写成

1
comp1.genext1(comp1.ht.Qtot)

comp1.genext1相当于帮助我们完成了两个组件之间映射的操作,

得到了结果,