文档库 最新最全的文档下载
当前位置:文档库 › COMSOL之二十大使用技巧

COMSOL之二十大使用技巧

COMSOL Multiphysics 之二十大使用技巧

一、 全局约束

对于多物理仿真,添加全局约束是COMSOL 非常有用的功能之一。

例如,对于一个涉及传热的仿真,希望能够调整热源Q_0的大小,从而使得某一位置处的温度T_probe 恒定在指定值T_max ,我们可以直接将这个全局约束添加进来即可。

有些情况下,全局约束可能包含有对时间的微分项,也就是常说的常微分方程(ODE ),COMSOL 同样也支持自定义ODE 作为全局约束。

例如,在一个管道内流体+物质扩散问题的仿真中,利用PID 算法控制管道入口的流速u_in_ctrl ,从而使得某一位置处的浓度conc 恒定在指定值c_set 。(基本模块模型库 > Multidisciplinary > PID control )。需要添加的PID 算法约束如下式:

要添加上述约束,除变上限积分项外,另外两项都可以很容易的在边界条件中的“入口流速”设置中直接定义。因此,这个变上限积分需要转化成一个ODE ,作为全局约束加入。

令?-=t

dt set c conc 0)_(int ,方程两边同对时间t 求导,得到

set c conc dt

d _int -=。在COMSOL 中,变量u 对时间的导数,用ut 表示。因此变量int 的时间导数即为intt 。利用COMSOL 的“ODE 设定”,我们可以很容易的将intt-(conc-c_set)=0这个ODE 全局约束添加入模型之中。

二、 积分耦合变量

COMSOL 的语法中,变量u 对空间的微分,分别默认为用ut ,ux ,uy ,uz 等

来表示,这为仿真提供了极大的便利。那么对变量u的空间积分呢?COMSOL提供了积分耦合变量来实现这一功能。

积分耦合变量分为四种:点(point)积分耦合变量、边(edge)积分耦合变量、边界(boundary)积分耦合变量、求解域(subdomain)积分耦合变量。根据模型的维度,会有相应积分耦合变量。用户还可以指定得到结果后的作用域,例如全局,或指定某些点、边、边界或求解域。从而可以将对积分耦合变量结果的访问限制在指定的对象上。

求解域积分耦合变量,就是对指定变量或表达式在指定的某个或者某些求解域上做积分,积分的结果赋给自定义的这个积分耦合变量。对于三维仿真,这个积分是体积分;对于二维则是面积分。最典型的应用当属对数值1进行积分,可以得到体积或面积。

边界积分耦合变量,就是对指定变量或表示在指定的某个或者某些边界上做积分,积分的结果付给自定义的这个积分耦合变量。对于三维仿真,这个积分是面积分;对于二维则是线积分。对1积分可以得到面积或边长。

边积分耦合变量,就是对指定变量或表达式在指定的某个或者某些边上做积分,积分的结果付给自定义的这个积分耦合变量。仅存在于三维仿真中,这个积分是线积分。对1积分得到边长。

点积分耦合变量,就是对指定变量或表达式在指定的某个或者某些点上给出它的值。它的最主要用法是将某个点上的结果映射到指定的对象上。

在上面PID控制的例子中,指定位置处的浓度conc就是一个点积分耦合变量,用来提取点PT1处的浓度值。同时,浓度c的时间变化率ct在PT1点的取值,也可以用同样的方法提取出来,付给变量ctime。

积分耦合变量除了用于添加约束,也常常用于后处理。COMSOL允许用户将任意表达式在任意求解域或者边界上的积分定义为一个变量,然后直接在后处理中对该自定义的积分耦合变量做数据可视化操作。

例如,在二维扩散问题的仿真中,为了观测流出边界上总的流出的物质量,可以在出口边界利用边界耦合积分变量,然后可以直接得到数据曲线。(基本模块模型库 > Chemical engineering > absorption)

三、时间积分

现在我们已经可以在COMSOL中方便的定义任意一个变量u及其表达式的时间微分(ut)、空间微分(ux,uy,uz)、空间积分(积分耦合变量)。那么对于时间的积分如何处理呢?COMSOL当然也提供了这项功能。

对于时间的积分项的处理,COMSOL也是通过ODE的设定来实现的。例如前例中,我们已经可以利用一个边界积分耦合变量来描述某个时刻流出的物质量。现在我们进一步,需要知道一段时间内总的物质流出量Tot mass:

?=dt

Flow Tot

out

mass ==>

out

mass Flow

dt

dTot

=

将方程两边同对时间t求导后就变成了一个ODE方程,类似于定义一个全局约束那样,我们使用COMSOL的“ODE设定”功能便可以定义这个新的变量Tot_mass。

采用ODE进行时间积分,仅仅只能对标量进行积分,如果是想对求解域内的某个值进行积分(通常具有维度),则需要采用耦合一个PDE应用模式的方法,通过修改PDE方程,使其满足对时间的常微分方程形式,然后在求解中可以得到对时间的积分结果。

四、停止条件

在进行稳态求解时,COMSOL迭代求解当然是以收敛条件满足作为计算的停止条件。但是在瞬态分析的情况下,计算何时停止就可由用户自行选择了。与其他仿真软件类似,COMSOL默认的瞬态分析停止条件就是遍历用户使定的时间范围后,计算停止。但是除此之外,COMSOL还可以提供一种更为灵活而且强大的功能,就是允许用户选择让软件自动检测计算结果中的某一变量或表达式,当该变量或表达式满足一定条件时,计算停止。

例如上例中,我们可以让流出物质的总量达到指定值时,计算自动停止。

布尔表达

COMSOL的停止条件使用的是布尔表达式。布尔表达式运算的结果大于零,则表示有效,此时停止条件满足,计算停止;当布尔运算结果小于或者等于零,则表示无效,停止条件不满足,计算继续进行。需要注意的是,这里的表达式,通常是对某个标量进行求解的结果。

五、非线性特征值问题

求解方程的特征值是仿真中经常碰到的一类问题。问题线性度比较好的时

候,方程的系数与方程的解变量u不存在函数关系,这样的方程很容易解;反过来,方程特征值也很容易求。但是有时候我们会碰到非线性比较强的问题,方程的系数本身就是解变量u的函数。对于正问题,COMSOL很容易“求解域设定”中,定义方程的某些系数是解变量的函数,然后利用COMSOL提供的非线性求解器完成求解。但是对于非线性很强的逆问题又该如何定义呢?这里有一个很好用的技巧,就是使用全局约束对特征值先进行一下归一化,在这里定义特征值与解变量相关。

例如PDE方程1

?

?

-u

uλ,其中λ即为特征值(下图中的Lambda)。我们

=

-

?

可以先添加全局约束,定义E=1,而E其实是一个积分耦合变量,对应于解变量u2在求解域上的积分。通过这样操作,我们就把Lambda和解变量u建立的联系,然后使用COMSOL提供的非线性求解器完成求解。

六、利用耦合变量对结果进行扫掠

COMSOL支持多维度的耦合计算仿真,这是COMSOL独有的强大功能之一。COMSOL允许用户对一个物理问题做多维度的建模分析。也就是说,同一个仿真过程里可以包含多个几何结构,这些几何结构通常都是不同维度的,最常见的是包含一个三维的完整几何,还有一个或者多个二维的截面,再加一个或多个一维的线。在不同的几何上,用户都可以建立物理方程并同时求解,这些几何之间是如何传递参数的呢,就是通过COMSOL的耦合变量。

COMSOL提供两种耦合两边实现这个功能:拉伸耦合变量、投影耦合变量。

拉伸耦合变量的功能是把一个几何中的变量或者表达式,按照预定义或者用户自定义的坐标变换,直接传递到另一个几何中。例如一个建立在二维轴对称情况下的传热仿真,灯泡。经过计算后已经获得的其温度场T的分布。此时

的变量T仅存在与二维轴对称这个几何中(Geom1)。

现在我们在同一模型下可以建立一个新的几何Geom2,这个三维的几何就是由二维轴对称的几何直接绕对称轴旋转而来。在模型树里可以清楚看到,在Geom2下面没有任何的方程,当然也就没有什么变量。

我们可以利用拉伸耦合变量,将Geom1中的变量T传递过来,然后在三维的Geom2中看这个结果。

投影耦合变量是积分耦合变量与拉伸耦合变量的合体。它的用法与拉伸耦合变量非常类似,只不过在跨几何传递参数的时候,拉伸耦合变量传递的就是变量或者表达式本身,而投影耦合变量传递的是变量或者表达式的积分。

七、在非线性设置中调整瞬态求解器

当求解瞬态非线性问题时,为了提高收敛性和求解器的效率,用户可以手动调整求解器的一些参数,例如非线性求解器中的迭代步数、公差因子、阻尼衰减参数、Jacobian修正方法等。

通常情况下,如果在迭代步数范围内,收敛性较慢,未能在适当的迭代次数后得到结果,可以将迭代步数改大。但是这样做,有时候会产生较大的计算量。

当非线性较强时,可以将公差因子调小,这样做可以控制迭代时的步长,较小的步长受非线性的影响较小,可能会快速得到结果,但也有可能会产生较大迭代次数,增加计算量。

阻尼衰减参数等,可以根据实际情况进行调整,用户可以指定初始值、最小步长、以及最大步长。如果非线性很强,则应该将最小步长改小,反之可以将最大步长调大。

Jacobian修正方法,也可以根据需要来修改,例如缺省是采用最小值方法,

用户可以修改成每个迭代都要修改,或每个时间长只进行一次修改。修改次数越多,意味着非线性的影响越小,同样也意味着计算量的增加。

八、求解时绘图

边求解边绘图是COMSOL最强大的后处理工具之一,它允许用户在求解的过程中,实时观测到某个变量或者表达式的结果图。例如在求解相变析出的一类问题,使用边处理边绘图可以实时观察到相结构的演变。在COMSOL中要使用这个功能非常简单,只需要在“求解器设定”勾选“求解时作图”的复选框就可以了。

九、绘制探测图

在求解的同时,COMSOL还以做一种图,即探测图。这个功能允许用户在任意的位置放置观测点,随着求解的进行实时的掌握观测点上的某些变量或者表达式的取值变化。

十、保存探测图数据

COMSOL也允许用户将这种实时的探测图加以保存,或者将数据导出也可以。

十一、交互式网格

剖分所有(自由)

删除网格

剖分选中的面

剖分选中的(扫描)

撤消剖分

增加网格尺寸

+ 剖分选中的(扫描)

剖分剩下的(自由)

网格剖分是有限元仿真最重要的技术之一,好的网格可以有效小的提高计算的收敛性并减少计算时间。COMSOL内建了极为强大的网格剖分工具,包括自由网格生成器、映射网格生成器、扫描网格生成器、边界层网格生成器四种网格生成方法,同时还提供网格复制、网格删除、网格撤销、网格拉伸和旋转、网格导入等等功能。将这些工具联合使用,就是COMSOL 的交互式网格剖分,用

户可以根据需要,完全自由控制网格的形状和分布。

十二、 CAD 导入

COMSOL 除了内建有强大的CAD 工具之外,还提供了与其他CAD 软件的接口,用户可以方便的直接导入其他CAD 软件创建好的模型。

COMSOL 的CAD 导入功能除了能够正确识别其他CAD 文件之外,更重要的是提供了一些修复的工具。就一般的CAD 设计过程来说,零件在设计的后期往往会加入一些圆角、倒角之类的特征,另外零件上本身还有一些狭小的曲面,这些特征对于COMSOL 仿真的物理结构并不重要,但是却会带来许多不必要的网格,COMSOL 提供了CAD 修复的功能来自动移除这些圆角、倒角、狭小曲面。

另外,导入的CAD 模型有可能存在组件未对齐、本该连接在一起的面没有连上等等,这些都会造生COMSOL 无法有效的识别物理求解域,因此COMSOL 提供的CAD 修复工具可以修补缺口,消除自相交或者不连续。

移除C4

修改C1到C3 C4

C3

C1 C2 C3 C1 C2

移除C4

将C3扩展到C1 C4 C3 C1 C2 C3

C1 C2

切除C1和C3

C3

C C2 C C1 C

切除C1和C3

C3 C C2

C3

C C2 非末端相交

多个交点

移除C4

修改C1和C3 C4

C3

C1 C2 C3 C1 C2

移除C5, C6 修改C1或C4 C4 C3

C1 C2 C3 C1 C2

C5

C6

C4 将C4延长到C3 C4 C3 C1 C2 C3

C1 C2

C4

移除面,并扩

展其他面填补

十三、3D模型中抑制对象

“抑制”功能是COMSOL常用的后处理技术之一。在三维仿真的后处理过程中,用户可能常常需要看到内部的一些结构上的变量分布。这时就要用到COMSOL 的抑制功能。

例如前面灯泡的例子,后处理显示的是三维结构外缘的温度分布,而我们关心的实际上是内部的温度分布,因此可以选择抑制某些边界。

十四、复杂模型绘图

COMSOL的几何建模功能极其强大,其主要体现就在于工作平面的设定。与很多CAD软件类似,COMSOL在用户需要建立复杂三维几何模型时,推荐用户使用工作平面。COMSOL提供了灵活的建立工作平面的方式,用户可以在不同的工作平面上绘制二维的曲线和实体,然后再拉伸或者旋转成三维。用户可以反复选取工作平面,然后将不同的几何旋转或者拉伸到同一三维几何结构中,从而完成复杂模型的绘图。

十五、几何属性

COMSOL中可以随时查看几何对象的属性,比如如果选中一个三维实体,点击“几何属性”按钮,COMSOL 就会在信息窗内给出体积、表面积等信息。选中

某两个点,COMSOL就会给出两点之间的距离,以及经过这两点的边的长度等信息。

十六、开始命令的命令行选项

从操作系统的图形化界面启动COMSOL是大家最为熟悉的。但是对于有些特殊的情况,用户可能会需要从命令行启动COMSOL。这种启动方式其实更为灵活,因为COMSOL提供不少很实用的启动参数。

Comsolbatch –input test1.mph –output test2.mph

这是COMSOL的批处理命令,这种启动方式允许COMSOL在后台运行,将test1模型计算后保存成test2文件。在很多大型集群系统中,主节点的linux系统很可能就没有图形化界面,这时就可以利用这条命令,在文本界面下后台运行COMSOL。

Comsol server –port 2233 –multi on

在服务器上运行COMSOL作为服务器端应用程序,并至定端口。

Comsol client

在终端运行COMSOL。

Comsol –np 8

指定COMSOL可以使用的CPU的个数。

Comsol matlab (opens matlab with comsol path)

使用命令行启动COMSOL with Matlab

十七、选择复杂几何体边界

在复杂三维几何结构当中,选取边界,尤其是同时选取多个边界有时并不那么容易。COMSOL从用户的角度思考,提供了很贴心的解决方案。

在COMSOL中,点击鼠标左键表示选取当前边界,边界被选中则显示为红色;此时如果左键单击另一边界,则原先的选取取消,新被选中的边界红色显示。如果我们要同时选取多个边界怎么做呢。点击左键选中一个边界,边界变为红色表示被选中;此时点击右键,边界变成蓝色,表示该边界已被加入选择。这时用户可以随意再用左键选取其他边界,这个蓝色的边界始终都保持不变,不会被取消选择。这样用户可以重复左键、右键,完成多个边界的选取。如果要取消一个已经加入选择的边界,则再用鼠标左键单击这个边界,这是该边界会由蓝色变为绿色,此时点击右键,则取消该边界的选择,其他已加入选择的边界不受影响。

十八、开启结构符号

为了让用户对于当前模型中的边界约束条件一目了然,可以开启结构符号,如下图开启结构符号后,可以清楚地看到对于这个结构对象的约束类型,即在对称面上自由度限制为0等。

用户可以直接在左侧的绘图工具条上点击“显示符号”按钮,或

在菜单“选项”->“参数设定”对话框,点击“显示”标签,然后选中其中的“符号”复选框。

十九、正确绘制变形

变形图,可以帮助用户了解结构形变后的形状,然而,有时候,模拟得到的变形量很小,例如相对于结构而言,仅为实体的1E-3倍。如果以1:1的比例关系显示变形,很有可能看不到效果。这时,可以通过修改“绘图参数”对话框的“变形”标签中的“比例系数”,来增加变形图的效果。用户可以选择“自动”,或者清除“自动”复选框后,在后面的编辑框中填入自己希望的比例关系。

二十、避免建立违反物理规律的模型

当创建一个复杂的多物理模型时,COMSOL推荐用户采取从简入繁的建模思路顺序。先建立简单的单物理场的模型,然后完成计算看看结果是否合理。依次遍历所有涉及的物理场。经过这样的单物理仿真以后,就可以确保在每个物理场的仿真中,相关的设置都正确。然后再将这些物理场逐渐耦合起来,完成多物理场的仿真。

如果直接建立复杂的多物理模型,则很难验证结果的有效性,甚至计算报错也很难快速的找到原因。

相关文档