synthetik-technologies / blastfoam

A CFD solver for multi-component compressible flow with application to high-explosive detonation, explosive safety and air blast
Other
215 stars 96 forks source link

dynamic adaptive mesh with load balance crashes #90

Open wengzf20 opened 2 months ago

wengzf20 commented 2 months ago

Hi,

I am using blastReactingFoam for gaseous detonation simulation. The AMR is used together with loadbalance. The setup follows the tutorial case building3DWorkshop. The simulation crashes when mapping vector fields in the load balance step. The log information is attached.

I do notice that the issue has been mentioned in the user guide of blastFoam,

"There are also known problems in the transferring of data for calculated vector and movingWall boundary conditions. The fields used within the standard blastFoam solver have addressed this, but if adaptiveFvMesh is used with a different solver, its stability with balancing is not guaranteed."

Could you give more details how the issue can be solved? Thank you for your attention.

Best, Z.

Log information attached

Selected 8765 cells for refinement out of 1992252. ... max(p): 223162.182871, min(p): 6670 max(T): 2932.29448685, min(T): 298 ExecutionTime = 476.15 s ClockTime = 481 s

Refined from 1992252 to 2018547 cells. Selected 7318 split edges out of a possible 130851. Unrefined from 2018547 to 1996593 cells. Maximum imbalance = 208.403765815 % Distributing the mesh ... Mapping the fields ... [23] #0 Foam::error::printStack(Foam::Ostream&)[145] #0 Foam::error::printStack(Foam::Ostream&) at ??:? [23] #1 Foam::sigFpe::sigHandler(int) at ??:? [23] #2 ? at ??:? [145] #1 Foam::sigFpe::sigHandler(int) in "/lib64/libc.so.6" [23] #3 void Foam::writeEntry<Foam::Vector >(Foam::Ostream&, Foam::Field<Foam::Vector > const&) at ??:? [23] #4 at ??:? [145] #2 ?Foam::calculatedFvPatchField<Foam::Vector >::write(Foam::Ostream&) const at ??:? [23] #5 Foam::GeometricField<Foam::Vector, Foam::fvPatchField, Foam::volMesh>::Boundary::writeEntry(Foam::word const&, Foam::Ostream&) const in "/lib64/libc.so.6" [145] #3 at ??:? [23] #6 void Foam::writeEntry<Foam::Vector >(Foam::Ostream&, Foam::Field<Foam::Vector > const&) at ??:? [145] #4 Foam::Ostream& Foam::operator<< <Foam::Vector, Foam::fvPatchField, Foam::volMesh>(Foam::Ostream&, Foam::GeometricField<Foam::Vector, Foam::fvPatchField, Foam::volMesh> const&)Foam::calculatedFvPatchField<Foam::Vector >::write(Foam::Ostream&) const at ??:? [23] #7 void Foam::fvMeshDistribute::sendFields<Foam::GeometricField<Foam::Vector, Foam::fvPatchField, Foam::volMesh> >(int, Foam::List const&, Foam::fvMeshSubset const&, Foam::Ostream&) at ??:? [145] #5 at ??:? [23] #8 Foam::fvMeshDistribute::distribute(Foam::List const&)Foam::GeometricField<Foam::Vector, Foam::fvPatchField, Foam::volMesh>::Boundary::writeEntry(Foam::word const&, Foam::Ostream&) const at ??:? [23] #9 Foam::adaptiveBlastFvMesh::balance() at ??:? [145] #6 at ??:? [23] #10 Foam::adaptiveBlastFvMesh::refine(bool)Foam::Ostream& Foam::operator<< <Foam::Vector, Foam::fvPatchField, Foam::volMesh>(Foam::Ostream&, Foam::GeometricField<Foam::Vector, Foam::fvPatchField, Foam::volMesh> const&) at ??:? [23] #11 at ??:? [145] #7 void Foam::fvMeshDistribute::sendFields<Foam::GeometricField<Foam::Vector, Foam::fvPatchField, Foam::volMesh> >(int, Foam::List const&, Foam::fvMeshSubset const&, Foam::Ostream&)? at ??:? [23] #12 __libc_start_main at ??:? [145] #8 Foam::fvMeshDistribute::distribute(Foam::List const&) in "/lib64/libc.so.6" [23] #13 at ??:? [145] #9 Foam::adaptiveBlastFvMesh::balance()? at ??:? [145] #10 Foam::adaptiveBlastFvMesh::refine(bool) at ??:?