最近编写了一个拉格朗日DPMFoam下面的颗粒长大的求解器,在OpenFOAM/OpenFOAM-3.0.0/src/lagrangian/intermediate/lnInclude对源文件进行了修改。
源文件,求解器均编译成功,使用新求解器时候不能运行stochasticDispersionRAS的随机游走模型,有如下报错
Starting time loop
Courant Number mean: 0 max: 0
Time = 0.01
Evolving kinematicCloud
Solving 3-D cloud kinematicCloud
#0 Foam::error::printStack(Foam::Ostream&) at ??:?
#1 Foam::sigSegv::sigHandler(int) at ??:?
#2 ? in "/lib64/libc.so.6"
#3 std::string::rfind(char, unsigned long) const in "/lib64/libstdc++.so.6"
#4 Foam::IOobject::group() const at ??:?
#5 Foam::DispersionRASModel<Foam::KinematicCloud<Foam::Cloud<Foam::CollidingParcel<Foam::KinematicParcel<Foam::particle> > > > >::kModel() const at ??:?
#6 Foam::DispersionRASModel<Foam::KinematicCloud<Foam::Cloud<Foam::CollidingParcel<Foam::KinematicParcel<Foam::particle> > > > >::cacheFields(bool) at ??:?
#7 ? at ??:?
#8 ? at ??:?
#9 ? at ??:?
#10 __libc_start_main in "/lib64/libc.so.6"
#11 ? at ??:?
Segmentation fault (core dumped)
修改了一下算法,算简单一点也有报错
Courant Number mean: 0 max: 0
Time = 0.001
Evolving kinematicCloud
Solving 3-D cloud kinematicCloud
[2] #[3] #0 0 Foam::error::printStack(Foam::Ostream&)Foam::error::printStack(Foam::Ostream&)[1] #0 Foam::error::printStack(Foam::Ostream&)[0] #0 Foam::error::printStack(Foam::Ostream&) at ??:?
at ??:?
at ??:?
at ??:?
[3] #1 [1] #[2] #1 Foam::sigSegv::sigHandler(int)1 Foam::sigSegv::sigHandler(int)Foam::sigSegv::sigHandler(int)[0] #1 Foam::sigSegv::sigHandler(int) at ??:?
[3] #2 ? at ??:?
[2] #2 at ??:?
[1] #2 ?? at ??:?
[0] #2 ? in "/lib64/libc.so.6"
[1] #3 std::string::rfind(char, unsigned long) const in "/lib64/libc.so.6"
[3] #3 std::string::rfind(char, unsigned long) const in "/lib64/libc.so.6"
[2] #3 std::string::rfind(char, unsigned long) const in "/lib64/libc.so.6"
[0] #3 std::string::rfind(char, unsigned long) const in "/lib64/libstdc++.so.6"
in "/lib64/libstdc++.so.6"
[1] #4 Foam::IOobject::group() const[3] #4 Foam::IOobject::group() const in "/lib64/libstdc++.so.6"
[2] #4 Foam::IOobject::group() const in "/lib64/libstdc++.so.6"
[0] #4 Foam::IOobject::group() const at ??:?
[1] #5 Foam::DispersionRASModel<Foam::KinematicCloud<Foam::Cloud<Foam::CollidingParcel<Foam::KinematicParcel<Foam::particle> > > > >::kModel() const at ??:?
[3] #5 Foam::DispersionRASModel<Foam::KinematicCloud<Foam::Cloud<Foam::CollidingParcel<Foam::KinematicParcel<Foam::particle> > > > >::kModel() const at ??:?
[2] #5 Foam::DispersionRASModel<Foam::KinematicCloud<Foam::Cloud<Foam::CollidingParcel<Foam::KinematicParcel<Foam::particle> > > > >::kModel() const at ??:?
[0] #5 Foam::DispersionRASModel<Foam::KinematicCloud<Foam::Cloud<Foam::CollidingParcel<Foam::KinematicParcel<Foam::particle> > > > >::kModel() const at ??:?
[1] #6 Foam::DispersionRASModel<Foam::KinematicCloud<Foam::Cloud<Foam::CollidingParcel<Foam::KinematicParcel<Foam::particle> > > > >::cacheFields(bool) at ??:?
[3] #6 Foam::DispersionRASModel<Foam::KinematicCloud<Foam::Cloud<Foam::CollidingParcel<Foam::KinematicParcel<Foam::particle> > > > >::cacheFields(bool) at ??:?
[2] #6 Foam::DispersionRASModel<Foam::KinematicCloud<Foam::Cloud<Foam::CollidingParcel<Foam::KinematicParcel<Foam::particle> > > > >::cacheFields(bool) at ??:?
[0] #6 Foam::DispersionRASModel<Foam::KinematicCloud<Foam::Cloud<Foam::CollidingParcel<Foam::KinematicParcel<Foam::particle> > > > >::cacheFields(bool) at ??:?
[1] #7 at ??:?
[2] #7 at ??:?
[3] #7 at ??:?
[0] #7 ???? at ??:?
[1] #8 at ??:?
[2] #8 at ??:?
[3] #8 at ??:?
[0] #8 ???? at ??:?
[1] #9 at ??:?
[2] #9 at ??:?
[3] #9 at ??:?
[0] #9 ???? at ??:?
[1] #10 __libc_start_main at ??:?
[3] #10 __libc_start_main at ??:?
[2] #10 __libc_start_main at ??:?
[0] #10 __libc_start_main in "/lib64/libc.so.6"
[1] #11 in "/lib64/libc.so.6"
[3] #11 in "/lib64/libc.so.6"
[2] #11 in "/lib64/libc.so.6"
[0] #11 ???? at ??:?
at ??:?
at ??:?
at ??:?
看起来是和Collisionparcel文件有关系?????为什么我改一下颗粒直接变化还和碰撞模型的文件产生了影响??我修改完了之后,不用随机游走模型倒是能跑,但是之后我是算例是需要运动随机游走模型的,所以我想搞想清楚原因,是不是我还要对CollisonParcel文件进行修改