Home - STFS-TUDa/blastAMR GitHub Wiki
blastAMR
Docs
The blastAMR repository provides implementations of OpenFOAM libraries to run load-balanced adaptive mesh refinement on both hexahedral and polyhedral meshes.
This wiki page intends to provide the absolute minimum amount of information needed to get started with the library.
First, here are some principles this project was built on:
- Unit/integration tests are the dev's documentation.
By browsing tests, you get to see examples of usage for the most important classes (entry points and interfaces for the library).
tests/Make
also shows you how to compile and link against the library if you wish to do so. - Unit/integration tests also give a rough idea on what we promise to keep stable throughout the life of the project. If a class is not tested, it means there is a chance its interface will soon change.
- We are all for keeping a lean Git history. This library is the result of a port of AMR/LB capabilities from
blastFoam
and all of the related history is retained.
[!Important] Always set
AMRLB_PROJECT
environment variable to the root directory of the blastAMR repo!
Supported OpenFOAM versions
- The master branch is tested against OpenFOAM v2006 (same as v2012).
- There is a branch
v2212
supporting versions including and newer that v2212. If you are on one of these two branches,Allwmake
will switch to the one suitable for your OpenFOAM version automatically. You can check the up-to-date CI build status for the version you're interested in.
The tutorials
A few variants of the dam-break and freely propagating flame cases are provided in the tutorial folder to showcase different features of the library; notably:
- Support for refinement history produced by tools like
snappyHexMesh
. These are the one which use thehexRefiner
engine as thepolyRefiner
one is incompatible and will likely segfault if used with such histories.- This "support" is limited to the
hexRefiner
, and even though the code will read existingcellLevel
files (we need this forupdateMesh
to function properly), the initial cell levels are assumed to be null for thepolyRefiner
. Although, things may work out just fine on most meshes.
- This "support" is limited to the
- Usage of coded error indicators.