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

COMSOL之二十大使用技巧word版本

C O M S O L之二十大使用

技巧

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内建了极为强大的网格剖分工具,包括自由网格生成器、映射网格生成器、扫描网格生成器、边界层网格生成器四种网格生成方法,同时还提供网格复制、

相关文档
相关文档 最新文档