compressibleInterFoam与CalculiX求解流固耦合问题
-
固体部分显示数据发送到流体端出错,通常是由于流体端异常导致的。
而且固体模型采用的是preCICE的官方模型,应该不会有问题。
OpenFoam这边显示:“Did not find the correct rho.
From function Foam::tmp<Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> > preciceAdapter::FSI::ForceBase::rho() const
in file FSI/ForceBase.C at line 85.
”
不知各位前辈有没有遇到过类似的问题,或者能否提供一些排除这个找不到rho的一些思路?
我对compressibleInterFoam与InterFoam的具体差别还是没能搞得懂
-
弄了一整天,能跑起来了。定位到报错代码处 FSI/ForceBase.C at line 85.,这是OpenFoam适配器里面的。
可以看到该函数分为三个部分,我的算例初始场中没有rho, 所以不会执行第一个if , 又因为compressibleInterFoam是可压的,也不会执行else if, 所以只能执行最后的else,输出报错了。
‘’
最终在配置文件说明中找到,有些求解器的类型不能自动识别,所以我就在system/preciceDict下的FSI指定下求解器的可压缩类型,并让它有rho可读。
FSI
{
solverType incompressible;
rho rho [1 -3 0 0 0 0 0] 1;
}如果边界条件对的话就能跑起来了(我的算例还要改下边界条件,出现负温度了
)
结果对不对不知道,看起来挺对的(也不知道我这种操作是不是骗过OpenFoam
)
总之留下一点经验吧