插值代码编写问题
-
请问各位大佬编写拉格朗日求解器插值问题时候如何进行编写的呢?比如我想识别颗粒收到的液体压强,首先我在求解器上的creatFields.H编写个P=p*rhoc,然后再src源文件里面插值
Pc_ = td.PInterp().interpolate(this->position(), tetIs); //- myadd //-myadd Pressure interpolator autoPtr<interpolation<scalar> > PInterp_; inline const interpolation<scalar>& PInterp() const;
等等这些代码我都是照着of原有的几个Uc,rhoc,muc模仿写出来的,但是我似乎没有插值成功,我直接使用of自带的muc,rhoc这几个插值可以使用。
这个问题是哪儿有问题呢,是不是我的求解器需要进行修改,单单识别一个P不可以 -
我为什么会这么问呢,因为我编写颗粒方程时候,先想着用理想气体方程,pv3=pv3
所以我代码是dnew = 2*(pgo_*pow(Ro_,3)/Pc_,1/3.0)
其中,pgo是气泡初始压强,ro是初始半径。编译成功,但求解器使用时候失败了,我为了研究哪儿有问题,我分辨改了上下两个形式。
dnew = 2*(70000*pow(0.00005,3)/Pc_,1/3.0) dnew = 2*(pgo_*pow(Ro_,3)/70000,1/3.0)
上面那个求解器无法使用,下面求解器可以使用,然后我也调用了一下of原有的rhoc这几个插值也能使用,我感觉是我Pc没有插值成功,研究好久好久也不知道哪儿有问题,我完全是原本rhoInterp如何插值编写的我也模仿写的。