问题描述
当COMSOL Multiphysics中设定阶跃的函数,系数或材料属性时,可能会遇到收敛性问题。这是因为COMSOL Multiphysics的解是连续的。对于瞬态问题,阶跃时间算法有时会出错。对于稳态问题,则会产生类似于网格解析度不够时,得到的由于无限通量问题导致过冲或下冲解。
在COMSOL Multiphysics中,可以采用一些平滑的开关函数将阶跃平滑到某种程度,这样有两个好处:
增强了数值可靠性和收敛性。
设置的阶跃函数,在现实生活中常常因惯性的存在而表现出一些平滑特征。
在COMSOL Multiphysics中使用的平滑Heaviside函数包括:
flsmhs,在阶跃的两端都存在连续过冲的平滑Heaviside函数。过冲保证flsmhs函数从0到无限大的积分与对应的理想Heaviside函数相同。
flc1hs,一阶连续导数的平滑Heaviside函数。
fldc1hs,flc1hs的导数,是一个dirac函数。
flc2hs和fldc2hs,与上面类似,不过它们具有二阶连续导数。
所有的平滑Heaviside函数都有两个参数,以flc2hs(a,b)为例,其中a是绘图的坐标,阶跃将以0为中心,b是间隔,以0为中心,超过0以后,平滑函数将从0变到1。
更多的信息,请参考COMSOL Multiphysics用户指南中的变量和表达式章节(Variables and Expressions)。
案例
首先让我们来看看不同的平滑函数的示例:
两个不同的平滑阶跃函数
也可以在参数中引入平移,或将多个函数叠加得到方波:
flc2hs(x,0.1)-flc2hs(x-1,0.1)
接下来,让我们建立一个相变材料的热容Cp。假设结晶材料的热容为1 kJ/kg,常压下的熔点为273K,液相的热容为2 kJ/kg:
Cp = 1+flc1hs(T-273,scale)
您可以在很多感兴趣的应用中使用平滑函数,例如,建立一个永不停止的平滑方波怎么样?试试看
flc1hs(sin(2*pi*t/T),scale)
其中,T是周期。
原文:http://www.cntech.com.cn/faq/comsol/2009/1231923737d3255.html
联系客服