本帖最后由 angmal 于 2012-10-11 08:36 编辑
模拟活塞推动下流体内产生激波的过程,已知活塞运动速度Vp,如附件中图a所示。由于直接使用a中的数据会导致计算在Vp经过峰值后迅速发散,故在实际计算中只使用了峰值之前的部分,模型中使用的Vp轨迹如附件中图b所示。
模型描述:模型基于comsol自带的shock tube实例,但在PDE方程中不需要求解第三个方程,压强p通过状态方程p = 0.3(ρ^7.15-1)来确定,由ODE方程计算。相应的,原来的weak contribution中去掉了第三个方程的对应项,此外,当前模型为一维瞬态,其中各参数已经过无量纲化,计算区域长度为10,活塞作用于x = 0一侧。
初始条件:密度ρ(x,0) = 1,速度u(x,0) = 1,p(x,0) = 0。
边界条件:u(0,t) = Vp,ρ(0,t)不做约束(constraint中R=0);x = 10一侧u(10,t) = 0,ρ(10,t) = 1。此外,在x = 0的边界处使用了动网格,并设定其运动速度为Vp。
问题:目前在设定u(0,t) = Vp时计算无法收敛,但是当设定u(0,t) = 0.1*Vp时可以获得收敛结果。请问有何办法可以在Vp较高的情况下实现收敛?另外感觉模型中动网格没起作用,加不加它计算结果完全相同,请问这是何原因?
模型放在了附件中,敬请赐教,多谢!
图a 图b
|