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... | |
Public Member Functions inherited from fvMeshTopoChanger | |
| 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 Public Member Functions inherited from fvMeshTopoChanger | |
| 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 refiner_fvMeshTopoChanger.H.
| refiner | ( | fvMesh & | mesh, |
| const dictionary & | dict | ||
| ) |
Construct from fvMesh and dictionary.
Definition at line 1164 of file refiner_fvMeshTopoChanger.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 1359 of file refiner_fvMeshTopoChanger.C.
| TypeName | ( | "refiner" | ) |
Runtime type information.
|
inline |
Direct access to the refinement engine.
Definition at line 358 of file refiner_fvMeshTopoChanger.H.
|
inline |
Cells which should not be refined/unrefined.
Definition at line 364 of file refiner_fvMeshTopoChanger.H.
|
inline |
Cells which should not be refined/unrefined.
Definition at line 370 of file refiner_fvMeshTopoChanger.H.
|
virtual |
Update the mesh for both mesh motion and topology change.
Implements fvMeshTopoChanger.
Definition at line 1365 of file refiner_fvMeshTopoChanger.C.
References forAll, forAllConstIter, PackedList< nBits >::get(), Foam::max(), mesh, Foam::returnReduce(), PackedBoolList::set(), List< T >::size(), fvMesh::time(), timeIndex, TimeState::timeIndex(), PackedBoolList::transfer(), and PackedBoolList::unset().

|
virtual |
Update corresponding to the given map.
Implements fvMeshTopoChanger.
Definition at line 1543 of file refiner_fvMeshTopoChanger.C.
|
virtual |
Update from another mesh using the given map.
Implements fvMeshTopoChanger.
Definition at line 1550 of file refiner_fvMeshTopoChanger.C.
References NotImplemented.
|
virtual |
Update corresponding to the given distribution map.
Implements fvMeshTopoChanger.
Definition at line 1559 of file refiner_fvMeshTopoChanger.C.
|
virtual |
Write using given format, version and compression.
Reimplemented from fvMeshTopoChanger.
Definition at line 1569 of file refiner_fvMeshTopoChanger.C.
References IOobject::AUTO_WRITE, Foam::dimless, forAll, mesh, dimensioned< Type >::name(), Foam::name(), IOobject::NO_READ, fvMesh::time(), regIOobject::write(), hexRef8::write(), and Foam::vtkWriteOps::write().

|
delete |
Disallow default bitwise assignment.