refiner Class Reference

Dynamic mesh refinement/unrefinement based on volScalarField values. More...

Inheritance diagram for refiner:
Collaboration diagram for refiner:

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 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...
 
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...
 
virtual bool write (const bool write=true) const
 Write the mover state. 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...
 

Detailed 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:
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;
}
Source files

Definition at line 175 of file refiner_fvMeshTopoChanger.H.

Constructor & Destructor Documentation

◆ refiner() [1/2]

refiner ( fvMesh &  mesh,
const dictionary &  dict 
)

Construct from fvMesh and dictionary.

Definition at line 1252 of file refiner_fvMeshTopoChanger.C.

References PackedList< nBits >::clear(), Foam::endl(), Foam::Info, fvMeshTopoChanger::mesh(), Foam::returnReduce(), List< T >::size(), PackedBoolList::used(), and regIOobject::write().

Here is the call graph for this function:

◆ refiner() [2/2]

refiner ( const refiner &  )
delete

Disallow default bitwise copy construction.

◆ ~refiner()

~refiner ( )
virtual

Destructor.

Definition at line 1289 of file refiner_fvMeshTopoChanger.C.

Member Function Documentation

◆ TypeName()

TypeName ( "refiner"  )

Runtime type information.

◆ protectedCell() [1/2]

const PackedBoolList& protectedCell ( ) const
inline

Cells which should not be refined/unrefined.

Definition at line 356 of file refiner_fvMeshTopoChanger.H.

◆ protectedCell() [2/2]

PackedBoolList& protectedCell ( )
inline

Cells which should not be refined/unrefined.

Definition at line 362 of file refiner_fvMeshTopoChanger.H.

◆ update()

bool update ( )
virtual

◆ topoChange()

void topoChange ( const polyTopoChangeMap &  map)
virtual

Update corresponding to the given map.

Implements fvMeshTopoChanger.

Definition at line 1468 of file refiner_fvMeshTopoChanger.C.

◆ mapMesh()

void mapMesh ( const polyMeshMap &  map)
virtual

Update from another mesh using the given map.

Implements fvMeshTopoChanger.

Definition at line 1472 of file refiner_fvMeshTopoChanger.C.

◆ distribute()

void distribute ( const polyDistributionMap &  map)
virtual

Update corresponding to the given distribution map.

Implements fvMeshTopoChanger.

Definition at line 1476 of file refiner_fvMeshTopoChanger.C.

◆ operator=()

void operator= ( const refiner &  )
delete

Disallow default bitwise assignment.


The documentation for this class was generated from the following files: