MPPICInterFOAM 粒子大小对导致计算失败
-
当我把manualinjection所使用的size distribution设置成 1e-3的时候就出现计算失误
Cloud: kinematicCloud injector: model1
Added 205 new parcels#0 Foam::error::printStack(Foam::Ostream&) at ??:? #1 Foam::sigFpe::sigHandler(int) at ??:? #2 ? in "/lib64/libc.so.6" #3 Foam::GAMGSolver::scale(Foam::Field<double>&, Foam::Field<double>&, Foam::lduMatrix const&, Foam::FieldField<Foam::Field, double> const&, Foam::UPtrList<Foam::lduInterfaceField const> const&, Foam::Field<double> const&, unsigned char) const at ??:? #4 Foam::GAMGSolver::Vcycle(Foam::PtrList<Foam::lduMatrix::smoother> const&, Foam::Field<double>&, Foam::Field<double> const&, Foam::Field<double>&, Foam::Field<double>&, Foam::Field<double>&, Foam::Field<double>&, Foam::Field<double>&, Foam::PtrList<Foam::Field<double> >&, Foam::PtrList<Foam::Field<double> >&, unsigned char) const at ??:? #5 Foam::GAMGSolver::solve(Foam::Field<double>&, Foam::Field<double> const&, unsigned char) const at ??:? #6 Foam::fvMatrix<double>::solveSegregated(Foam::dictionary const&) at ??:? #7 Foam::fvMatrix<double>::solve() at ??:? #8 Foam::PackingModels::Implicit<Foam::MPPICCloud<Foam::KinematicCloud<Foam::Cloud<Foam::MPPICParcel<Foam::KinematicParcel<Foam::particle> > > > > >::cacheFields(bool) at ??:? #9 ? at ??:? #10 ? at ??:? #11 ? at ??:? #12 ? at ??:? #13 __libc_start_main in "/lib64/libc.so.6" #14 ? at ??:? Floating point exception
当我改成比如说8e-4的时候, 计算就没有问题, 能够正常进行. 我觉得是不是因为粒子之间有重叠的关系? 后来我使用scipy中的KDTree将有重叠的粒子删掉, 但是删掉以后发现还是出现错误, 甚至只有七个粒子的时候, 计算还是不能进行. 而且我肉眼观察, 粒子之间间隔已经比较远了, 而且距离边界也有一定的距离. 所以我想问一下, 有遇到这种情况的吗? 会是什么原因造成的呢?
-
yes, actually, i also thought that. but is there such strict criterion? The mesh size of my case is 0.000166667, namely 1.6e-4 m. However, when i set the diameter of particle as 5e-4 even 8e-4 m, it also works?