AMI code enhancements
Summary
Note: this is beta-level code and will receive further updates in future releases
This change set includes:
- New option for
cyclicAMI
andcyclicACMI
patches to perform topological updates to enforce a 1-to-1 match between source and target patches to ensure conservation across AMI patches and greatly reduced pressure field perturbations. Changes based on ref [1] - Deprecated
directAMI
; replaced bynearestFaceAMI
- Significant code refactoring
Resolved bugs (If applicable)
- General AMI conservation issues/noisy pressure predictions
Details of new models (If applicable)
-
Backwards compatibility [should be] maintained
-
New topological changes triggered by using a special mesh motion solver:
dynamicFvMesh dynamicMotionSolverFvMeshAMI;
- this may be absorbed into the 'standard'
dynamicMotionSolverFvMesh
model in future releases
- this may be absorbed into the 'standard'
-
Test case: mixerVesselAMI2D_with-boundary-layers.tgz
dynamicMotionSolverFvMesh | dynamicMotionSolverFvMeshAMI |
---|---|
v2006 | v2006 |
v1912 |
Note: since the AMI code triggers topological updates, to reconstruct parallel cases:
-
use
reconstructParMesh
to reconstruct the mesh at each time, followed byreconstructPar
to reconstruct the fields; or -
use
redistributePar -reconstruct
to reconstruct both mesh and fields (in parallel) -
Code refactoring has enabled greater control of the AMI; the AMIMethod can now be set in the
polyMesh/boundary
file, e.g.
AMI2
{
type cyclicAMI;
inGroups 1(cyclicAMI);
nFaces 96;
startFace 6336;
matchTolerance 0.0001;
transform noOrdering;
neighbourPatch AMI1;
// New optional entries
AMIMethod faceAreaWeightAMI;
restartUncoveredSourceFace 1;
}
Deprecations
The directAMI
method has been deprecated and replaced by the faster and more robust, new nearestFaceAMI
method. The new method creates a 1-to-1 mapping based on the nearest face.
Risks
- Significant change to AMI code
- Not only affects cyclic patches, but other areas of the code that make use of the tooling, e.g.:
- mapped patches
- mapFieldsPar
- region models (film modelling)
- mapping function objects
Known issues/to check
When using dynamicMotionSolverFvMeshAMI
- restart behaviour not currently available
Tests
Checked on the following cases:
- pimpleFoam/laminar/mixerVesselAMI2D
- pimpleFoam/RAS/oscillatingInletACMI2D
- XiDyMFoam/annularCombustorTurbine
- {customer turbo machinery}
For each, the dynamicMotionSolverFvMesh
option recovers v1912 behaviour
References
[1] H.J. Aguerre, S. Márquez Damián J.M. Gimenez, N.M.Nigro, Conservative handling of arbitrary non-conformal interfaces using an efficient supermesh, Journal of Computational Physics 335(15)21-49. 2017. https://doi.org/10.1016/j.jcp.2017.01.018
Acknowledgements
- Many thanks to Horacio Aguerre @aguerrehoracio and Santiago Márquez @santiagomarquezd for bringing the methodology to our attention and for many useful discussions and testing throughout these developments.