PDRblock Class Reference

A single block x-y-z rectilinear mesh addressable as i,j,k with simplified creation. Some of the input is similar to blockMeshDict, but since this specialization is for a single-block that is aligned with the x-y-z directions, it provides a different means of specifying the mesh. More...

Inheritance diagram for PDRblock:
[legend]
Collaboration diagram for PDRblock:
[legend]

Classes

class  location
 Grid locations in an axis direction. More...
 

Public Member Functions

 PDRblock ()
 Construct zero-size. More...
 
 PDRblock (const UList< scalar > &xgrid, const UList< scalar > &ygrid, const UList< scalar > &zgrid)
 Construct from components. More...
 
 PDRblock (const dictionary &dict, bool verbose=false)
 Construct from dictionary. More...
 
bool read (const dictionary &dict)
 Read dictionary. More...
 
void reset (const UList< scalar > &xgrid, const UList< scalar > &ygrid, const UList< scalar > &zgrid)
 Reset grid locations and mesh i-j-k sizing. More...
 
const Vector< location > & grid () const
 The grid point locations in the i,j,k (x,y,z) directions. More...
 
const boundBoxbounds () const
 The mesh bounding box. More...
 
const scalar & minEdgeLen () const
 The min edge length. More...
 
scalar dx (const label i) const
 Cell size in x-direction at i position. More...
 
scalar dx (const labelVector &ijk) const
 Cell size in x-direction at i position. More...
 
scalar dy (const label j) const
 Cell size in y-direction at j position. More...
 
scalar dy (const labelVector &ijk) const
 Cell size in y-direction at j position. More...
 
scalar dz (const label k) const
 Cell size in z-direction at k position. More...
 
scalar dz (const labelVector &ijk) const
 Cell size in z-direction at k position. More...
 
vector span (const label i, const label j, const label k) const
 Cell dimensions at i,j,k position. More...
 
vector span (const labelVector &ijk) const
 Cell dimensions at i,j,k position. More...
 
point grid (const label i, const label j, const label k) const
 Grid point at i,j,k position. More...
 
point grid (const labelVector &ijk) const
 Grid point at i,j,k position. More...
 
point C (const label i, const label j, const label k) const
 Cell centre at i,j,k position. More...
 
point C (const labelVector &ijk) const
 Cell centre at i,j,k position. More...
 
scalar V (const label i, const label j, const label k) const
 Cell volume at i,j,k position. More...
 
scalar V (const labelVector &ijk) const
 Cell volume at i,j,k position. More...
 
scalar width (const label i, const label j, const label k) const
 Characteristic cell size at i,j,k position. More...
 
scalar width (const labelVector &ijk) const
 Characteristic cell size at i,j,k position. More...
 
labelVector findCell (const point &pt) const
 Return i,j,k index for cell enclosing this location. More...
 
labelVector gridIndex (const point &pt, const scalar relTol=0.01) const
 Obtain i,j,k grid index for point location within specified. More...
 
autoPtr< polyMeshmesh (const IOobject &io) const
 Create polyMesh for grid definition and patch information. More...
 
- Public Member Functions inherited from ijkMesh
 ijkMesh ()
 Construct zero-sized. More...
 
 ijkMesh (const labelVector &ijk)
 Construct with addressing. More...
 
 ijkMesh (const label nx, const label ny, const label nz)
 Construct with addressing. More...
 
label nPoints () const
 The number of mesh points (nx+1)*(ny+1)*(nz+1) in the i-j-k mesh. More...
 
label nCells () const
 The number of mesh cells (nx*ny*nz) in the i-j-k mesh. More...
 
label nFaces () const
 The total number of mesh faces in the i-j-k mesh. More...
 
label nInternalFaces () const
 The number of internal faces in the i-j-k mesh. More...
 
label nBoundaryFaces () const
 The number of boundary faces in the i-j-k mesh. More...
 
label nBoundaryFaces (const direction shapeFacei) const
 The number of boundary faces on the box face. More...
 
label cellLabel (const label i, const label j, const label k) const
 The linear cell index for an i-j-k position - same as index() More...
 
label cellLabel (const labelVector &ijk) const
 The linear cell index for an i-j-k position - same as index() More...
 
label pointLabel (const label i, const label j, const label k) const
 The linear point index for an i-j-k position. More...
 
label pointLabel (const labelVector &ijk) const
 The linear point index for an i-j-k position. More...
 
- Public Member Functions inherited from ijkAddressing
 ijkAddressing ()
 Construct zero-size addressing. More...
 
 ijkAddressing (const labelVector &ijk)
 Construct with addressing. More...
 
 ijkAddressing (const label ni, const label nj, const label nk)
 Construct with addressing components. More...
 
bool empty () const
 Addressing is considered empty if any component is zero. More...
 
const labelVectorsizes () const
 The (i,j,k) addressing dimensions. More...
 
labelVectorsizes ()
 Return the (i,j,k) dimensions for modification. More...
 
label size () const
 Return the total i*j*k size. More...
 
const labelsize (const vector::components cmpt) const
 The addressing dimension in the given direction. More...
 
void clear ()
 Reset to (0,0,0) sizing. More...
 
void reset (const label ni, const label nj, const label nk)
 Change the sizing parameters. More...
 
void reset (const labelVector &newSizes)
 Change the sizing parameters. More...
 
label index (const label i, const label j, const label k) const
 Linear addressing index (offset) for an (i,j,k) position. More...
 
label index (const labelVector &ijk) const
 Linear addressing index (offset) for an (i,j,k) position. More...
 
labelVector index (const label idx) const
 The (i,j,k) indexing from linear addressing. More...
 
void checkIndex (const label i, const label j, const label k, const bool allowExtra=false) const
 Check indices are within ni,nj,nk range. More...
 
void checkIndex (const labelVector &ijk, const bool allowExtra=false) const
 Check indices are within ni,nj,nk range. More...
 
void checkSizes () const
 Check that all components of sizes() are non-negative. More...
 
void checkSizes (const labelVector &other) const
 Check that all components of sizes() match. More...
 
void checkSizes (const label nTotal) const
 Check that the total size matches. More...
 

Static Public Member Functions

static const PDRblocknull ()
 Return a PDRblock reference to a nullObject. More...
 

Detailed Description

A single block x-y-z rectilinear mesh addressable as i,j,k with simplified creation. Some of the input is similar to blockMeshDict, but since this specialization is for a single-block that is aligned with the x-y-z directions, it provides a different means of specifying the mesh.

Dictionary controls

Property Description Required Default
x X-direction grid specification yes
y Y-direction grid specification yes
z Z-direction grid specification yes
scale Point scaling no 1.0
boundary Boundary patches yes
defaultPatch Default patch specification no

Grid coordinate controls

Property Description Required Default
points Locations defining the mesh segment yes
nCells Divisions per mesh segment yes
ratios Expansion ratio (end/start) per segment no uniform

The expansion ratios are defined as per blockMesh and represent the ratio of end-size / start-size for the section. A negative value is trapped and treated as its reciprocal.

Source files

Definition at line 141 of file PDRblock.H.

Constructor & Destructor Documentation

◆ PDRblock() [1/3]

PDRblock ( )
inline

Construct zero-size.

Definition at line 30 of file PDRblockI.H.

◆ PDRblock() [2/3]

PDRblock ( const UList< scalar > &  xgrid,
const UList< scalar > &  ygrid,
const UList< scalar > &  zgrid 
)

Construct from components.

Definition at line 470 of file PDRblock.C.

References Foam::name().

Here is the call graph for this function:

◆ PDRblock() [3/3]

PDRblock ( const dictionary dict,
bool  verbose = false 
)
explicit

Construct from dictionary.

Definition at line 496 of file PDRblock.C.

References dict, and PDRblock::read().

Here is the call graph for this function:

Member Function Documentation

◆ null()

const Foam::PDRblock & null ( )
static

Return a PDRblock reference to a nullObject.

Definition at line 77 of file PDRblock.C.

◆ read()

bool read ( const dictionary dict)

Read dictionary.

Definition at line 508 of file PDRblock.C.

References dict, dictionary::lookupOrDefault(), and dictionary::subDict().

Referenced by PDRblock::PDRblock().

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

◆ reset()

void reset ( const UList< scalar > &  xgrid,
const UList< scalar > &  ygrid,
const UList< scalar > &  zgrid 
)

Reset grid locations and mesh i-j-k sizing.

Definition at line 526 of file PDRblock.C.

References VectorSpace< Vector< scalar >, scalar, 3 >::nComponents.

◆ grid() [1/3]

const Foam::Vector< Foam::PDRblock::location > & grid ( ) const
inline

The grid point locations in the i,j,k (x,y,z) directions.

Definition at line 152 of file PDRblockI.H.

◆ bounds()

const Foam::boundBox & bounds ( ) const
inline

The mesh bounding box.

Definition at line 164 of file PDRblockI.H.

◆ minEdgeLen()

const Foam::scalar & minEdgeLen ( ) const
inline

The min edge length.

Definition at line 158 of file PDRblockI.H.

◆ dx() [1/2]

Foam::scalar dx ( const label  i) const
inline

Cell size in x-direction at i position.

Definition at line 170 of file PDRblockI.H.

◆ dx() [2/2]

Foam::scalar dx ( const labelVector ijk) const
inline

Cell size in x-direction at i position.

Definition at line 176 of file PDRblockI.H.

References Vector< Cmpt >::x().

Here is the call graph for this function:

◆ dy() [1/2]

Foam::scalar dy ( const label  j) const
inline

Cell size in y-direction at j position.

Definition at line 182 of file PDRblockI.H.

◆ dy() [2/2]

Foam::scalar dy ( const labelVector ijk) const
inline

Cell size in y-direction at j position.

Definition at line 188 of file PDRblockI.H.

References Vector< Cmpt >::y().

Here is the call graph for this function:

◆ dz() [1/2]

Foam::scalar dz ( const label  k) const
inline

Cell size in z-direction at k position.

Definition at line 194 of file PDRblockI.H.

References k.

◆ dz() [2/2]

Foam::scalar dz ( const labelVector ijk) const
inline

Cell size in z-direction at k position.

Definition at line 200 of file PDRblockI.H.

References Vector< Cmpt >::z().

Here is the call graph for this function:

◆ span() [1/2]

Foam::vector span ( const label  i,
const label  j,
const label  k 
) const
inline

Cell dimensions at i,j,k position.

Definition at line 207 of file PDRblockI.H.

References k.

◆ span() [2/2]

Foam::vector span ( const labelVector ijk) const
inline

Cell dimensions at i,j,k position.

Definition at line 217 of file PDRblockI.H.

◆ grid() [2/3]

Foam::point grid ( const label  i,
const label  j,
const label  k 
) const
inline

Grid point at i,j,k position.

Definition at line 224 of file PDRblockI.H.

References k.

◆ grid() [3/3]

Foam::point grid ( const labelVector ijk) const
inline

Grid point at i,j,k position.

Definition at line 234 of file PDRblockI.H.

References Vector< Cmpt >::x(), Vector< Cmpt >::y(), and Vector< Cmpt >::z().

Here is the call graph for this function:

◆ C() [1/2]

Foam::point C ( const label  i,
const label  j,
const label  k 
) const
inline

Cell centre at i,j,k position.

Definition at line 247 of file PDRblockI.H.

References k.

◆ C() [2/2]

Foam::point C ( const labelVector ijk) const
inline

Cell centre at i,j,k position.

Definition at line 257 of file PDRblockI.H.

References Vector< Cmpt >::x(), Vector< Cmpt >::y(), and Vector< Cmpt >::z().

Here is the call graph for this function:

◆ V() [1/2]

Foam::scalar V ( const label  i,
const label  j,
const label  k 
) const
inline

Cell volume at i,j,k position.

Definition at line 270 of file PDRblockI.H.

References k.

◆ V() [2/2]

Foam::scalar V ( const labelVector ijk) const
inline

Cell volume at i,j,k position.

Definition at line 280 of file PDRblockI.H.

References Vector< Cmpt >::x(), Vector< Cmpt >::y(), and Vector< Cmpt >::z().

Here is the call graph for this function:

◆ width() [1/2]

Foam::scalar width ( const label  i,
const label  j,
const label  k 
) const
inline

Characteristic cell size at i,j,k position.

This is the cubic root of the volume

Definition at line 287 of file PDRblockI.H.

References Foam::cbrt(), and k.

Here is the call graph for this function:

◆ width() [2/2]

Foam::scalar width ( const labelVector ijk) const
inline

Characteristic cell size at i,j,k position.

This is the cubic root of the volume

Definition at line 297 of file PDRblockI.H.

References Foam::cbrt().

Here is the call graph for this function:

◆ findCell()

Foam::labelVector findCell ( const point pt) const

Return i,j,k index for cell enclosing this location.

The value (-1,-1,-1) is returned for out-of-bounds (not found).

Definition at line 604 of file PDRblock.C.

References Foam::pos().

Here is the call graph for this function:

◆ gridIndex()

Foam::labelVector gridIndex ( const point pt,
const scalar  relTol = 0.01 
) const

Obtain i,j,k grid index for point location within specified.

relative tolerance of the minEdgeLen. The value (-1,-1,-1) is returned for out-of-bounds (not found). and off-grid

Definition at line 618 of file PDRblock.C.

References Foam::pos().

Here is the call graph for this function:

◆ mesh()

Foam::autoPtr< Foam::polyMesh > mesh ( const IOobject io) const

Create polyMesh for grid definition and patch information.

Definition at line 303 of file PDRblockCreate.C.

References polyMesh::addPatches(), polyMesh::boundaryMesh(), meshPtr, autoPtr< T >::New(), polyPatch::New(), nPoints, patches, and PtrList< T >::set().

Here is the call graph for this function:

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