Description
Dynamic mesh refinement/unrefinement based on volScalarField values.
Refinement can optionally be specified in a cellZone or in multiple
regions, each controlled by a different volScalarField.
Usage
Example of single field based refinement in all cells:
\verbatim
dynamicFvMesh dynamicRefineFvMesh;
// How often to refine
refineInterval 1;
// Field to be refinement on
field alpha.water;
// Refine field in between lower..upper
lowerRefineLevel 0.001;
upperRefineLevel 0.999;
// If value < unrefineLevel unrefine
unrefineLevel 10;
// If value < unrefineLevel (default=great) unrefine
// unrefineLevel 10;
// Have slower than 2:1 refinement
nBufferLayers 1;
// Refine cells only up to maxRefinement levels
maxRefinement 2;
// Stop refinement if maxCells reached
maxCells 200000;
// Flux field and corresponding velocity field. Fluxes on changed
// faces get recalculated by interpolating the velocity. Use 'none'
// on surfaceScalarFields that do not need to be reinterpolated.
correctFluxes
(
(phi none)
(nHatf none)
(rhoPhi none)
(alphaPhi0.water none)
(ghf none)
);
// Write the refinement level as a volScalarField
dumpLevel true;
\endverbatim
Example of single field based refinement in two regions:
\verbatim
dynamicFvMesh dynamicRefineFvMesh;
// How often to refine
refineInterval 1;
refinementRegions
{
region1
{
cellZone refinementRegion1;
// Field to be refinement on
field alpha.water;
// Refine field in between lower..upper
lowerRefineLevel 0.001;
upperRefineLevel 0.999;
// Refine cells only up to maxRefinement levels
maxRefinement 1;
// If value < unrefineLevel unrefine
unrefineLevel 10;
}
region2
{
cellZone refinementRegion2;
// Field to be refinement on
field alpha.water;
// Refine field in between lower..upper
lowerRefineLevel 0.001;
upperRefineLevel 0.999;
// Refine cells only up to maxRefinement levels
maxRefinement 2;
// If value < unrefineLevel unrefine
unrefineLevel 10;
}
}
// If value < unrefineLevel (default=great) unrefine
// unrefineLevel 10;
// Have slower than 2:1 refinement
nBufferLayers 1;
// Stop refinement if maxCells reached
maxCells 200000;
// Flux field and corresponding velocity field. Fluxes on changed
// faces get recalculated by interpolating the velocity. Use 'none'
// on surfaceScalarFields that do not need to be reinterpolated.
correctFluxes
(
(phi none)
(nHatf none)
(rhoPhi none)
(alphaPhi0.water none)
(ghf none)
);
// Write the refinement level as a volScalarField
dumpLevel true;
\endverbatim
README for OpenFOAM-dev
- About OpenFOAM
- Copyright
- Download and installation instructions
- Documentation
- Source code documentation
- OpenFOAM C++ Style Guide
- Reporting bugs in OpenFOAM
- Contacting the OpenFOAM Foundation
#
About OpenFOAM
OpenFOAM is a free, open source computational fluid dynamics (CFD) software package released by the OpenFOAM Foundation. It has a large user base across most areas of engineering and science, from both commercial and academic organisations. OpenFOAM has an extensive range of features to solve anything from complex fluid flows involving chemical reactions, turbulence and heat transfer, to solid dynamics and electromagnetics.
Copyright
OpenFOAM is free software: you can redistribute it and/or modify it under the
terms of the GNU General Public License as published by the Free Software
Foundation, either version 3 of the License, or (at your option) any later
version. See the file COPYING in this directory or
http://www.gnu.org/licenses/, for a description of the GNU General Public
License terms under which you can copy the files.