Repository navigation
Common Issues
- The library is not thoroughly tested against all decomposition methods yet. So, if you encounter problems related to load-balancing, try a different decomposition method (
scotchandhierarchicalare preferred). - There are verified issues of the Load-balancer with some specific boundary conditions. These usually must be fixed on the BC side.
See Issue #7
See Issue #10
blastAMR has thin support for refinement history produced by other tools. Due to the differences in the way these histories are generated, full support is difficult to achieve so:
- Use
hexRefinerwhen you process your base mesh withsnappyHexMeshif you want the refinements to count. - Delete
cellLevelandpointLevelfiles from thepolyMeshfolder forblastAMRto consider all initial cells to be at level 0.
See PR #22
To prevent the runtime AMR from undoing refinements that were baked into the base mesh (typically by snappyHexMesh), both refiners enforce an unrefinement floor per cell. A cell is protected from unrefinement when cellLevel[cell] <= baseCellLevel[cell]. The floor is read from constant/polyMesh/baseCellLevel (and basePointLevel) when present, and defaults to all zeros when absent.
The files are auto-written next to cellLevel / pointLevel, so once they exist they are honored on every subsequent run.
SHM workflow: if you want to protect SHM-produced refinement, write baseCellLevel and basePointLevel to constant/polyMesh once after meshing — for example by copying the current cellLevel / pointLevel:
cp constant/polyMesh/cellLevel constant/polyMesh/baseCellLevel
cp constant/polyMesh/pointLevel constant/polyMesh/basePointLevelAfter that, the runtime AMR is allowed to refine further but can never unrefine below the recorded SHM levels.
Pre-AMR refinement loop workflow: the typical Allrun pattern for blastAMR tutorials runs updateMesh several times before the parallel solver starts, to wrap the interface in fine cells. These cells must remain unrefinable so that AMR can release them once the interface moves away. Do not write baseCellLevel / basePointLevel for this workflow — the default zero floor is what you want. If a stale baseCellLevel / basePointLevel is sitting in constant/polyMesh from an earlier run, delete it before the pre-AMR loop, or Allclean will remove it via cleanCase0.
Historical note (≤ commit
aabbcfe): earlier versions of the library auto-captured the current cell levels as the floor when nobaseCellLevelfile was found on disk. Combined with the pre-AMR loop, this silently locked every pre-refined cell, so AMR could never unrefine them once the interface moved. The default is now an all-zero floor; SHM users must write the file explicitly as shown above.
See for example Issue #5
“This offering is not approved or endorsed by OpenCFD Limited, the producer of the OpenFOAM software and owner of the OPENFOAM® and OpenCFD® trade marks.”
This is blastAMR Wiki, here is a link back to Home