Dynamic mesh refinement/unrefinement based on volScalarField values. More...
Public Member Functions | |
TypeName ("refiner") | |
Runtime type information. More... | |
refiner (fvMesh &mesh, const dictionary &dict) | |
Construct from fvMesh and dictionary. More... | |
refiner (const refiner &)=delete | |
Disallow default bitwise copy construction. More... | |
virtual | ~refiner () |
Destructor. More... | |
const hexRef8 & | meshCutter () const |
Direct access to the refinement engine. More... | |
const PackedBoolList & | protectedCell () const |
Cells which should not be refined/unrefined. More... | |
PackedBoolList & | protectedCell () |
Cells which should not be refined/unrefined. More... | |
virtual bool | update () |
Update the mesh for both mesh motion and topology change. More... | |
virtual void | topoChange (const polyTopoChangeMap &) |
Update corresponding to the given map. More... | |
virtual void | mapMesh (const polyMeshMap &) |
Update from another mesh using the given map. More... | |
virtual void | distribute (const polyDistributionMap &) |
Update corresponding to the given distribution map. More... | |
virtual bool | write (const bool write=true) const |
Write using given format, version and compression. More... | |
void | operator= (const refiner &)=delete |
Disallow default bitwise assignment. More... | |
![]() | |
TypeName ("fvMeshTopoChanger") | |
Runtime type information. More... | |
declareRunTimeSelectionTable (autoPtr, fvMeshTopoChanger, fvMesh,(fvMesh &mesh, const dictionary &dict),(mesh, dict)) | |
fvMeshTopoChanger (fvMesh &) | |
Construct from fvMesh. More... | |
fvMeshTopoChanger (const fvMeshTopoChanger &)=delete | |
Disallow default bitwise copy construction. More... | |
virtual | ~fvMeshTopoChanger () |
Destructor. More... | |
fvMesh & | mesh () |
Return the fvMesh. More... | |
const fvMesh & | mesh () const |
Return the fvMesh. More... | |
virtual bool | dynamic () const |
Is mesh dynamic, i.e. might it change? More... | |
void | operator= (const fvMeshTopoChanger &)=delete |
Disallow default bitwise assignment. More... | |
Additional Inherited Members | |
![]() | |
static autoPtr< fvMeshTopoChanger > | New (fvMesh &, const dictionary &dict) |
Select, construct and return the fvMeshTopoChanger. More... | |
static autoPtr< fvMeshTopoChanger > | New (fvMesh &) |
Select, construct and return the fvMeshTopoChanger. More... | |
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.
topoChanger { type refiner; libs ("libfvMeshTopoChangers.so"); // 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; // 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) (alphaPhi.water none) (ghf none) ); // Write the refinement level as a volScalarField dumpLevel true; }
Example of single field based refinement in two regions:
topoChanger { type refiner; // 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) (alphaPhi.water none) (ghf none) ); // Write the refinement level as a volScalarField dumpLevel true; }
Definition at line 175 of file fvMeshTopoChangersRefiner.H.
refiner | ( | fvMesh & | mesh, |
const dictionary & | dict | ||
) |
Construct from fvMesh and dictionary.
Definition at line 1159 of file fvMeshTopoChangersRefiner.C.
References hexRef8::cellLevel(), primitiveMesh::cells(), PackedList< nBits >::clear(), Foam::endl(), f(), polyMesh::faceNeighbour(), polyMesh::faceOwner(), polyMesh::faces(), forAll, PackedList< nBits >::get(), Foam::Info, HashSet< Key, Hash >::insert(), Foam::max(), fvMeshTopoChanger::mesh(), IOobject::name(), primitiveMesh::nCells(), primitiveMesh::nFaces(), primitiveMesh::nInternalFaces(), primitiveMesh::pointCells(), hexRef8::pointLevel(), Foam::returnReduce(), PackedBoolList::set(), List< T >::size(), syncTools::swapFaceList(), syncTools::syncFaceList(), and regIOobject::write().
|
virtual |
Destructor.
Definition at line 1354 of file fvMeshTopoChangersRefiner.C.
TypeName | ( | "refiner" | ) |
Runtime type information.
|
inline |
Direct access to the refinement engine.
Definition at line 358 of file fvMeshTopoChangersRefiner.H.
|
inline |
Cells which should not be refined/unrefined.
Definition at line 364 of file fvMeshTopoChangersRefiner.H.
|
inline |
Cells which should not be refined/unrefined.
Definition at line 370 of file fvMeshTopoChangersRefiner.H.
|
virtual |
Update the mesh for both mesh motion and topology change.
Implements fvMeshTopoChanger.
Definition at line 1360 of file fvMeshTopoChangersRefiner.C.
References forAll, forAllConstIter, PackedList< nBits >::get(), Foam::max(), Foam::returnReduce(), PackedBoolList::set(), List< T >::size(), timeIndex, PackedBoolList::transfer(), and PackedBoolList::unset().
|
virtual |
Update corresponding to the given map.
Implements fvMeshTopoChanger.
Definition at line 1538 of file fvMeshTopoChangersRefiner.C.
|
virtual |
Update from another mesh using the given map.
Implements fvMeshTopoChanger.
Definition at line 1545 of file fvMeshTopoChangersRefiner.C.
References NotImplemented.
|
virtual |
Update corresponding to the given distribution map.
Implements fvMeshTopoChanger.
Definition at line 1554 of file fvMeshTopoChangersRefiner.C.
|
virtual |
Write using given format, version and compression.
Reimplemented from fvMeshTopoChanger.
Definition at line 1564 of file fvMeshTopoChangersRefiner.C.
References IOobject::AUTO_WRITE, Foam::dimless, forAll, Foam::name(), IOobject::NO_READ, regIOobject::write(), hexRef8::write(), and Foam::vtkWriteOps::write().
|
delete |
Disallow default bitwise assignment.