blockMesh Class Reference

A multi-block mesh generator. More...

Inheritance diagram for blockMesh:
Collaboration diagram for blockMesh:

Public Types

enum  mergeStrategy { DEFAULT_MERGE, MERGE_TOPOLOGY, MERGE_POINTS }
 The block merging strategy. More...
 
typedef PtrList< blockblockList
 The list of blocks is stored as a PtrList. More...
 
- Public Types inherited from UPtrList< T >
typedef T value_type
 Type of values the list contains. More...
 
typedef Treference
 A non-const reference to the value_type. More...
 
typedef const Tconst_reference
 A const reference to the value_type. More...
 

Public Member Functions

 ClassName ("blockMesh")
 Runtime type information. More...
 
 blockMesh (const IOdictionary &dict, const word &regionName=polyMesh::defaultRegion, mergeStrategy strategy=mergeStrategy::DEFAULT_MERGE, int verbosity=0)
 Construct from IOdictionary for given region. More...
 
 ~blockMesh ()=default
 Destructor. More...
 
const dictionarymeshDict () const noexcept
 Access to input dictionary. More...
 
const searchableSurfacesgeometry () const noexcept
 Optional searchable geometry to project face-points to. More...
 
const blockEdgeListedges () const noexcept
 The curved edges. More...
 
const blockFaceListfaces () const noexcept
 The curved faces. More...
 
bool good () const noexcept
 True if the blockMesh topology exists. More...
 
bool valid () const noexcept
 Same as good() More...
 
wordList patchNames () const
 Return the patch names. More...
 
label numZonedBlocks () const
 Number of blocks with specified zones. More...
 
bool hasPointTransforms () const noexcept
 True if scaling and/or transformations are needed. More...
 
bool inplacePointTransforms (pointField &pts) const
 Apply coordinate transforms and scaling. More...
 
tmp< pointFieldglobalPosition (const pointField &localPoints) const
 Apply coordinate transforms and scaling. More...
 
const pointFieldvertices () const noexcept
 Reference to point field defining the blocks, these points are unscaled and non-transformed. More...
 
tmp< pointFieldvertices (bool applyTransform) const
 Point field defining the blocks, optionally transformed and scaled. More...
 
const polyMeshtopology () const
 The blockMesh topology as a polyMesh unscaled and non-transformed. More...
 
refPtr< polyMeshtopology (bool applyTransform) const
 The blockMesh topology as a polyMesh optionally transformed and scaled. More...
 
const pointFieldpoints () const
 The points for the entire mesh. These points are scaled and transformed. More...
 
const cellShapeListcells () const
 Return cell shapes list. More...
 
const faceListListpatches () const
 Return the patch face lists. More...
 
PtrList< dictionarypatchDicts () const
 Patch information from the topology mesh. More...
 
int verbose () const noexcept
 Output verbosity level. More...
 
int verbose (const int level) noexcept
 Change the output verbosity level. More...
 
autoPtr< polyMeshmesh (const IOobject &io) const
 Create polyMesh, with cell zones. More...
 
scalar scaleFactor () const
 Old (v2106 and earlier) uniform scaling factor. More...
 
- Public Member Functions inherited from PtrList< block >
constexpr PtrList () noexcept
 Default construct. More...
 
 PtrList (const label len)
 Construct with specified size, each element initialized to nullptr. More...
 
 PtrList (const PtrList< block > &list)
 Copy construct using 'clone()' method on each element. More...
 
 PtrList (PtrList< block > &&list) noexcept
 Move construct. More...
 
 PtrList (UList< block * > &list)
 Take ownership of pointers in the list, set old pointers to null. More...
 
 PtrList (const PtrList< block > &list, const CloneArg &cloneArgs)
 Copy construct using 'clone()' method on each element. More...
 
 PtrList (PtrList< block > &list, bool reuse)
 Construct as copy or re-use as specified. More...
 
 PtrList (const SLPtrList< block > &list)
 Copy construct using 'clone()' on each element of SLPtrList<T> More...
 
 PtrList (Istream &is, const INew &inew)
 Construct from Istream using given Istream constructor class. More...
 
 PtrList (Istream &is)
 Construct from Istream using default Istream constructor class. More...
 
 ~PtrList ()
 Destructor. Frees all pointers. More...
 
PtrList< blockclone (Args &&... args) const
 Make a copy by cloning each of the list elements. More...
 
Foam::PtrList< blockclone (Args &&... args) const
 
const blockset (const label i) const
 Return const pointer to element (can be nullptr), or nullptr for out-of-range access (ie, with bounds checking). More...
 
autoPtr< blockset (const label i, block *ptr)
 Set element to given pointer and return old element (can be null) More...
 
autoPtr< blockset (const label i, std::unique_ptr< block > &&ptr)
 Set element to given unique_ptr and return old element. More...
 
autoPtr< blockset (const label i, autoPtr< block > &&ptr)
 Set element to given autoPtr and return old element. More...
 
autoPtr< blockset (const label i, const refPtr< block > &ptr)
 Set element to given refPtr and return old element. More...
 
autoPtr< blockset (const label i, const tmp< block > &ptr)
 Set element to given tmp and return old element. More...
 
autoPtr< blockset (const label i, autoPtr< block > &ptr)
 Set element to given autoPtr and return old element. More...
 
void clear ()
 Clear the PtrList. Delete allocated entries and set size to zero. More...
 
void free ()
 Free memory and nullify all entries. Does not change the list size. More...
 
void resize (const label newLen)
 Adjust size of PtrList. More...
 
void resize_null (const label newLen)
 Set the addressed list to the given size, deleting all existing entries. Afterwards the list contains all nullptr entries. More...
 
blockemplace_back (Args &&... args)
 Construct and append an element to the end of the list, return reference to the new list element. More...
 
void push_back (block *ptr)
 Append an element to the end of the list. More...
 
void push_back (std::unique_ptr< block > &&ptr)
 Move append an element to the end of the list. More...
 
void push_back (autoPtr< block > &&ptr)
 Move append an element to the end of the list. More...
 
void push_back (const refPtr< block > &ptr)
 Move or clone append a refPtr to the end of the list. More...
 
void push_back (const tmp< block > &ptr)
 Move or clone append a tmp to the end of the list. More...
 
void push_back (PtrList< block > &&other)
 Move append another list to the end of this list. More...
 
void push_back (autoPtr< block > &ptr)=delete
 Disallow push_back with autoPtr without std::move. More...
 
blockemplace_set (const label i, Args &&... args)
 Construct and set a new element at given position, (discard old element at that location). More...
 
blockemplace (const label i, Args &&... args)
 Same as emplace_set() More...
 
blocktry_emplace (const label i, Args &&... args)
 Like emplace_set() but will not overwrite an occupied (non-null) location. More...
 
autoPtr< blockrelease (const label i)
 Release ownership of the pointer at the given position. More...
 
void transfer (PtrList< block > &list)
 Transfer into this list and annul the argument list. More...
 
void operator= (const PtrList< block > &list)
 Copy assignment. More...
 
void operator= (PtrList< block > &&list)
 Move assignment. More...
 
void setSize (const label newLen)
 Same as resize() More...
 
void append (autoPtr< block > &ptr)
 Move append an element to the end of the list. More...
 
void append (block *ptr)
 Append an element to the end of the list. More...
 
void append (std::unique_ptr< block > &&ptr)
 Move append an element to the end of the list. More...
 
void append (autoPtr< block > &&ptr)
 Move append an element to the end of the list. More...
 
void append (const refPtr< block > &ptr)
 Move or clone append a tmp to the end of the list. More...
 
void append (const tmp< block > &ptr)
 Move or clone append a tmp to the end of the list. More...
 
void append (PtrList< block > &&other)
 Move append another list to the end of this list. More...
 
- Public Member Functions inherited from UPtrList< T >
constexpr UPtrList () noexcept=default
 Default construct. More...
 
 UPtrList (const label len)
 Construct with specified size and set all entries to nullptr. More...
 
 UPtrList (const UPtrList< T > &list)
 Copy construct (shallow copies addresses) More...
 
 UPtrList (UPtrList< T > &&list) noexcept
 Move construct. More...
 
 UPtrList (UPtrList< T > &list, bool reuse)
 Construct as shallow copy or re-use as specified. More...
 
 UPtrList (PtrList< T > &list)
 Shallow copy from PtrList. More...
 
 UPtrList (const UList< T *> &list)
 Construct from UList of pointers (shallow copy) More...
 
 UPtrList (UList< T > &list)
 Construct from UList, taking the address of each list element. More...
 
bool empty () const noexcept
 True if the list is empty (ie, size() is zero) More...
 
label size () const noexcept
 The number of entries in the list. More...
 
label capacity () const noexcept
 Size of the underlying storage. More...
 
label count () const noexcept
 The number of non-null entries in the list. More...
 
Tfront ()
 Reference to the first element of the list. More...
 
const Tfront () const
 Reference to first element of the list. More...
 
Tback ()
 Reference to the last element of the list. More...
 
const Tback () const
 Reference to the last element of the list. More...
 
const Ttest (const label i) const
 Return const pointer to element (can be nullptr), or nullptr for out-of-range access (ie, with bounds checking). More...
 
const Tget (const label i) const
 Return const pointer to element (can be nullptr), or nullptr for out-of-range access (ie, with bounds checking). More...
 
Tget (const label i)
 Return pointer to element (can be nullptr), or nullptr for out-of-range access (ie, with bounds checking). More...
 
const Tset (const label i) const
 Return const pointer to element (can be nullptr), or nullptr for out-of-range access (ie, with bounds checking). More...
 
void clear ()
 Set list size to zero. More...
 
void free ()
 Nullify all entries. Does not change the list size. More...
 
void resize (const label newLen)
 Change the size of the list. Any new entries are nullptr. More...
 
void resize_null (const label newLen)
 Set the list to the given size and set all entries to nullptr. More...
 
label squeezeNull ()
 Squeeze out nullptr entries in the list of pointers after which any null pointers will be at the end of the list. More...
 
void trimTrailingNull ()
 Reduce addressable list size to ignore any trailing null pointers. More...
 
void push_back (T *ptr)
 Append an element to the end of the list. More...
 
void push_back (UPtrList< T > &&other)
 Move append another list to the end of this list. More...
 
void swap (UPtrList< T > &list) noexcept
 Swap content. More...
 
void transfer (UPtrList< T > &list)
 Transfer contents into this list and annul the argument. More...
 
Tset (const label i, T *ptr)
 Set element to specified pointer and return the old list element, which can be a nullptr. More...
 
void reorder (const labelUList &oldToNew, const bool check=false)
 Reorder elements. Reordering must be unique (ie, shuffle). More...
 
void sortOrder (const labelUList &order, const bool check=false)
 Reorder elements according to new order mapping (newToOld). Reordering must be unique (ie, shuffle). More...
 
void checkNonNull () const
 Check and raise FatalError if any nullptr exists in the list. More...
 
const Tat (const label i) const
 Return const reference to the element at given position. FatalError for bounds problem or nullptr. More...
 
Tat (const label i)
 Return reference to the element at given position. FatalError for bounds problem or nullptr. More...
 
const Toperator[] (const label i) const
 Return const reference to the element at given position. FatalError for bounds problem or nullptr. Same as at(). More...
 
Toperator[] (const label i)
 Return reference to the element at given position. FatalError for bounds problem or nullptr. Same as at(). More...
 
 FOAM_DEPRECATED_FOR (2022-09, "get(), set() or test() methods") const T *operator()(const label i) const
 Deprecated(2022-09) - same as get() More...
 
void operator= (const UPtrList< T > &list)
 Copy assignment (shallow copies addresses) More...
 
void operator= (UPtrList< T > &&list)
 Move assignment. More...
 
T ** begin_ptr () noexcept
 Iterator to begin of raw pointers traversal (use with caution) More...
 
T ** end_ptr () noexcept
 Iterator beyond end of raw pointers traversal (use with caution) More...
 
iterator begin ()
 Return iterator to begin traversal of non-nullptr entries. More...
 
iterator end () noexcept
 Return iterator beyond end of UPtrList traversal. More...
 
const_iterator cbegin () const
 Return const_iterator to begin traversal of non-nullptr entries. More...
 
const_iterator cend () const noexcept
 Return const_iterator beyond end of UPtrList traversal. More...
 
const_iterator begin () const
 Return const_iterator to begin traversal of non-nullptr entries. More...
 
const_iterator end () const noexcept
 Return const_iterator beyond end of UPtrList traversal. More...
 
void setSize (const label n)
 Alias for resize() More...
 
Tfirst ()
 Reference to the first element of the list. More...
 
const Tfirst () const
 Return reference to first element of the list. More...
 
Tlast ()
 Return reference to the last element of the list. More...
 
const Tlast () const
 Return reference to the last element of the list. More...
 
void append (T *ptr)
 Append an element to the end of the list. More...
 
void append (UPtrList< T > &&other)
 Move append another list to the end of this list. More...
 

Static Public Attributes

static bool verboseOutput = true
 The default verbosity (true) More...
 

Additional Inherited Members

- Protected Member Functions inherited from PtrList< block >
void readIstream (Istream &is, const INew &inew)
 Read from Istream using Istream constructor class. More...
 
- Protected Member Functions inherited from UPtrList< T >
void setAddressableSize (const label n) noexcept
 Adjust addressable size. More...
 
label find_next (label pos) const
 The next non-null entry after the specified position. More...
 
 UPtrList (Detail::PtrListDetail< T > &&ptrs) noexcept
 Low-level move construct. More...
 
- Protected Attributes inherited from UPtrList< T >
Detail::PtrListDetail< Tptrs_
 The list of pointers. More...
 

Detailed Description

A multi-block mesh generator.

Dictionary controls

Property Description Required Default
prescale Point scaling before transform no 1.0
scale Point scaling after transform no 1.0
transform Point transform (origin, rotation) no
vertices yes
blocks yes
edges no
faces no
boundary Boundary definition no
patches Alternate version for "boundary" no
namedBlocks no
namedVertices no
mergeType Merging "points" or "topology" no topology
checkFaceCorrespondence no true
verbose no true
Note
The prescale and scale can be a single scalar or a vector of values.

The vertices, cells and patches for filling the blocks are demand-driven.

Source files

Definition at line 161 of file blockMesh.H.

Member Typedef Documentation

◆ blockList

The list of blocks is stored as a PtrList.

Definition at line 172 of file blockMesh.H.

Member Enumeration Documentation

◆ mergeStrategy

The block merging strategy.

Enumerator
DEFAULT_MERGE 

Default (TOPOLOGY), not selectable.

MERGE_TOPOLOGY 

"topology" merge by block topology (default)

MERGE_POINTS 

"points" merge by point geometry

Definition at line 180 of file blockMesh.H.

Constructor & Destructor Documentation

◆ blockMesh()

blockMesh ( const IOdictionary dict,
const word regionName = polyMesh::defaultRegion,
mergeStrategy  strategy = mergeStrategy::DEFAULT_MERGE,
int  verbosity = 0 
)
explicit

Construct from IOdictionary for given region.

Default is topological merging.

Definition at line 222 of file blockMesh.C.

References Foam::endl(), Foam::Info, and Foam::nl.

Here is the call graph for this function:

◆ ~blockMesh()

~blockMesh ( )
default

Destructor.

Member Function Documentation

◆ ClassName()

ClassName ( "blockMesh"  )

Runtime type information.

◆ meshDict()

const dictionary& meshDict ( ) const
inlinenoexcept

Access to input dictionary.

Definition at line 434 of file blockMesh.H.

◆ geometry()

const searchableSurfaces& geometry ( ) const
inlinenoexcept

Optional searchable geometry to project face-points to.

Definition at line 442 of file blockMesh.H.

◆ edges()

const blockEdgeList& edges ( ) const
inlinenoexcept

The curved edges.

Definition at line 450 of file blockMesh.H.

◆ faces()

const blockFaceList& faces ( ) const
inlinenoexcept

The curved faces.

Definition at line 458 of file blockMesh.H.

◆ good()

bool good ( ) const
noexcept

True if the blockMesh topology exists.

Definition at line 300 of file blockMesh.C.

Referenced by blockMesh::valid().

Here is the caller graph for this function:

◆ valid()

bool valid ( ) const
inlinenoexcept

Same as good()

Definition at line 471 of file blockMesh.H.

References blockMesh::good().

Here is the call graph for this function:

◆ patchNames()

Foam::wordList patchNames ( ) const

Return the patch names.

Definition at line 392 of file blockMesh.C.

Referenced by blockMesh::mesh().

Here is the caller graph for this function:

◆ numZonedBlocks()

Foam::label numZonedBlocks ( ) const

Number of blocks with specified zones.

Definition at line 410 of file blockMesh.C.

References Foam::BitOps::count().

Referenced by blockMesh::mesh().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ hasPointTransforms()

bool hasPointTransforms ( ) const
noexcept

True if scaling and/or transformations are needed.

Definition at line 428 of file blockMesh.C.

◆ inplacePointTransforms()

bool inplacePointTransforms ( pointField pts) const

Apply coordinate transforms and scaling.

Definition at line 434 of file blockMesh.C.

References Foam::cmptMultiply(), p, pts, and Foam::transform().

Here is the call graph for this function:

◆ globalPosition()

Foam::tmp< Foam::pointField > globalPosition ( const pointField localPoints) const

Apply coordinate transforms and scaling.

Definition at line 507 of file blockMesh.C.

References tmp< T >::New().

Here is the call graph for this function:

◆ vertices() [1/2]

const Foam::pointField & vertices ( ) const
noexcept

Reference to point field defining the blocks, these points are unscaled and non-transformed.

Definition at line 320 of file blockMesh.C.

◆ vertices() [2/2]

Foam::tmp< Foam::pointField > vertices ( bool  applyTransform) const

Point field defining the blocks, optionally transformed and scaled.

Definition at line 327 of file blockMesh.C.

References tmp< T >::New().

Here is the call graph for this function:

◆ topology() [1/2]

const Foam::polyMesh & topology ( ) const

The blockMesh topology as a polyMesh unscaled and non-transformed.

Definition at line 287 of file blockMeshCreate.C.

References Foam::exit(), Foam::FatalError, and FatalErrorInFunction.

Here is the call graph for this function:

◆ topology() [2/2]

◆ points()

const Foam::pointField & points ( ) const

The points for the entire mesh. These points are scaled and transformed.

Definition at line 359 of file blockMesh.C.

Referenced by blockMesh::mesh().

Here is the caller graph for this function:

◆ cells()

const Foam::cellShapeList & cells ( ) const

Return cell shapes list.

Definition at line 370 of file blockMesh.C.

Referenced by blockMesh::mesh().

Here is the caller graph for this function:

◆ patches()

const Foam::faceListList & patches ( ) const

Return the patch face lists.

Definition at line 381 of file blockMesh.C.

Referenced by blockMesh::mesh().

Here is the caller graph for this function:

◆ patchDicts()

Foam::PtrList< Foam::dictionary > patchDicts ( ) const

Patch information from the topology mesh.

Definition at line 342 of file blockMesh.C.

References forAll, os(), patchDicts, and UPtrList< T >::size().

Referenced by blockMesh::mesh().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ verbose() [1/2]

int verbose ( ) const
noexcept

Output verbosity level.

Definition at line 306 of file blockMesh.C.

◆ verbose() [2/2]

int verbose ( const int  level)
noexcept

Change the output verbosity level.

Returns
old level

Definition at line 312 of file blockMesh.C.

◆ mesh()

◆ scaleFactor()

scalar scaleFactor ( ) const
inline

Old (v2106 and earlier) uniform scaling factor.

Deprecated:
use inplacePointTransforms or globalPosition instead

Definition at line 583 of file blockMesh.H.

Member Data Documentation

◆ verboseOutput

bool verboseOutput = true
static

The default verbosity (true)

Definition at line 396 of file blockMesh.H.

Referenced by Foam::getVerbosity().


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