CAE软件操作小百科11
张晓前
1COMSOL中PDE模块如何实现对高于2阶的偏微分方程的建模?
COMSOL中PDE模块的偏微分方程的通式涵盖很多常用方程,一般可以通过常数的不同取值模拟常见问题.但是,对于高于2阶的偏微分方程,PDE模块不能直接模拟,可以采用2种处理方式.
1.1化高阶偏微分方程为低阶偏微分方程组
固体力学中的控制方程往往高于2阶,如平面问题的控制方程为双调和方程〔式(1)〕,因而不能在COMSOL中直接通过PDE模块建模,但是可以采用化为方程组的形式降阶.双调和方程通过引入P和Q〔式(2)〕,将双调和方程变成式(3)的形式.这样就可以通过PDE模块进行建模.
uxxxx+uxxyy+uyyyy=f (1)
uxx=P
uyy=Q (2)
Pxx+Pyy+Qyy=f
uxx=P
uyy=Q (3)
P和Q本质上不是独立变量,但是求解u需要2阶导数的边界值作为定解条件,可以根据工况施加狄里克雷条件或者纽曼条件,见图1.
子域内的控制方程可以通过式(3)确定相应系数.
1.2采用中间变量建立控制方程
每个PDE模块在定义时会声明1个或者几个变量,第1种方法就是声明u,P和Q这3个变量.该方法只声明1个变量u,但是会在子域表达式中定义新的中间变量,并且用中间变量定义控制方程.
例如,对一种新型本构采用PDE模块进行建模,该本构涉及比较复杂的材料属性和几何属性,传统的结构力学模块无法解决.为简化运算,采用球对称的几何模型,而此种新型本构的材料属性和几何特性都是各向同性的,因而其实其内部的控制方程就是一个球坐标无体力的平衡方程,见图2.
图2中的PK11和PK22分别代表径向应力和环向应力.按照图2简化方程,可以得到球坐标的无体力平衡方程.该例研究的本构不是传统的本构,会导致2个应力的表达式与传统的表达式不同,所以在子域表达式中根据自己的推导用位移表达2个应力,再结合相应的边界条件,就可以求解整个模型.此外,由于此PDE模块的变量只有u,所以虽然u没有在方程中显式地出现,但是整个方程都基于u进行求解.
需要注意的是,该方法有一定局限性,即在用自己定义的中间变量构造图2中的通式时,不能把所有项都放在同一个字母对应的项中(比如都放在a的位置,其余的都为0),此做法会导致COMSOL在求解方程时遇到总刚为0的情况,因为COMSOL默认把放在同一个字母中的项视为一项而无法形成总刚.
2COMSOL建模分析时分段函数的实现和应用
若某个变量随参数或者自变量的变化有分段函数的性质,则可在COMSOL中通过变量与逻辑表达式的组合实现.比如,一个标量表达式为T=a×b,如果在b为正时成立、在b为负时为0,则可以通过T=a×b×(b>0)实现.在有些建模分析过程中,上述逻辑表达式的引入能很好地改善模型的合理性问题,例如:能量、频率和浓度等出现负值是不合理的;有时这种处理可以改善模型的异常不收敛问题.此外,此表达式还可以用来设置分段的边界,还可以进一步采用Heaviside阶跃函数实现光滑地分段函数,也可以改善模型的收敛性.
3COMSOL模型调试时报错“Error: Failed to find consistent initial values. Last time step is not converged”的常见原因
在COMSOL模型调试时,此错误经常出现.首先要说明的是,在调试程序时,COMSOL与其他程序一样,需要遵循由浅入深的过程,即首先建立简单的没有错误的程序,然后再不断复杂,贴近真实情况.出现此报错常见的原因主要有2个:一是初始条件的值不合理,此错误可以通过与已有的物理模型对比解决;另一个很可能的问题就是某个参数或者函数值取得过大,导致其超出收敛半径而发散.第二个问题不太容易发现,需要由浅入深地建立模型或者进一步简化模型以查看收敛性,找到可能导致其发散的参数或者过大的函数.
4COMSOL建模过程中积分函数的处理
比较复杂的模型可能会涉及到复杂的积分函数,而积分偏微分方程(组)的有限元理论很难处理,尤其是在求解的同时还要计算积分函数更为棘手.对于比较简单的问题,可以通过进一步求导将其转化为纯粹的偏微分方程(组)进行求解.对于难以转化成微分方程(组)的方程,可以通过创建新的中间变量而在模型中运用其(偏)导数进行建模,可以避免这一问题.
(摘自同济大学郑百林教授《CAE操作技能与实践》课堂讲义)