来源公众号:COMSOL仿真交流
求解问答(二)
今天的推文依旧是一期大家在求解过程中可能会出现的问题解答~
01.
在1D中如何求解方程div(grad u)=0?
一阶的微分方程求解不难,但是由于缺少扩散项,很不稳定,容易发散。为了执行这个高级的边界条件,需要引人弱约束。
在1个单位求解域上使用PDE,泛用型应用模式求解这个1D的Laplace方程。对两个边界选择Neumarn边界条件,在左端设g=-3,右端使用缺省值。
定义边界拉伸耦合变量ucpl,在x=0处获得x=1的解。耦合变量的表达式为u,源项是点2,目的端是点1。
加入“弱项型,边界”应用模式,变量名定义为lm。对于边界1(x=0),输人表达式lm_ test* (u- 2)+lm * ucpl_test。通过清除[启动本域]复选框,不启用边界2的弱形式应用。
这样做的效果是在x=0处设置约束u=2,但在x=1处约束力lm产生作用。
02.
如何确定时间步长?
所有的COMSOL Multiphysics瞬态求解器中,时间步长由局部误差估计来决定。因为时间方法是隐式的,精度是决定时间步长的唯一限制因素。可以对这种时间步长控制指定限制(最大/最小)。
局部误差可以使用两种不同的时间步长方法估算,然后使用Richardson外推来决定截断误差扩展的控制项。局部误差是由时间方法的单个局部时间步长来计算的。实际想控制的全局误差不仅仅是局部误差的和,有可能会大于或小于所有的局部误差之和,与底层问题有关(数据误差传播)。尽管如此,全局误差是基于这些局部误差求和后的估算值。
如果误差的相对或绝对容差没有得到满足,局部时间步长就会不合要求,从而选择一个较小的时间步长。例如,如果模拟过程中某些点的解变化加剧,为了满足相对容差,时间步长会变得越来越小,最终导致停止求解。
因此,很多动态问题中必须谨慎设定容差参数,如振动和波动力学。推荐通过设定一个新的容差参数重新进行求解,与原来的结果进行比较,分析容差参数在结果中的影响。
03.
瞬态问题中,什么是相对和绝对容差(Rtol和Atol)?
这两个容差被用在COMSOL Multiphysics瞬态模拟的时间步长算法中,该算法使用一个处理代数差分方程(DAE)的外部求解器DASPK。
相对容差(Rtol)用在所有因变量的每一步迭代中,该值必须满足0<Rtol<1。
绝对容差(Atol)用在每一步迭代中,可以为每个因变量指定不同值,也可以使用COMSOL Multiphysics解向量来给定绝对容差。在命令指南Command Reference中查找femtime,了解更多的细节。当在积分步中估算局部误差向量e满足abs(e(i))≤Rtol * abs(y(i)) + Atol(y(i))时,瞬态求解器跳到下一个时间步长进行计算。其中,y是因变量向量。注意,这意味着时间步长算法将使用最容易求解的容差。
这表明绝对容差几乎总是必须被修改,因为没法给出一个最好的通用缺省值。首先,使用一个很小的绝对容差可能是一个很好的选择,这会使相对容差成为控制误差的决定因索。例如,结构力学问题常常处理变量的很小的变化(大约1E-6),因此绝对容差(1E-3)太大,估算的误差条件总是被满足的。推荐将绝对容差设定为比预期的变化小一个数量级。
因为局部误差并不总是能被转变为全局误差,要考察是否已经达到了DAE的精确解,一种有效的方法是设定容差的一半(或两倍)于原有值,重复求解过程。如果两次的结果完全(或几乎)相同,说明结果可靠,否则结果不可接受。
备注学校专业
邀进COMSOL讨论群
● 扫码添加小编
投稿专栏.
“COMSOL仿真交流”微信公众号自创办以来得到了广大科研工作者和研究生的广泛关注和支持。为更好地服务仿真学习与研究,本公众号现因业务需要长期招聘供稿作者。您可发送简历到likeapoem@163.com,邮件主题请注明“姓名+供稿作者”。
欢迎“光声力热”类相关专业的科研爱好者加入“COMSOL仿真交流”团队。