voxelMeshSearch Class Reference

Fast, non-parallel searching in mesh without use of octree. More...

Public Member Functions

 ClassName ("voxelMeshSearch")
 
 voxelMeshSearch (const polyMesh &, const bool doUpdate=true)
 Construct from mesh; voxels estimated from local number of cells. More...
 
 voxelMeshSearch (const polyMesh &, const boundBox &bb, const labelVector &nDivs, const bool doUpdate=true)
 Construct from mesh and voxel discretisation. More...
 
const labelVectornDivs () const
 Number of voxels for local mesh. More...
 
bool update ()
 Update lookup tables for geometry changes. More...
 
label findCell (const point &) const
 Find a cell. More...
 
autoPtr< fvMeshmakeMesh (const IOobject &) const
 Debug: construct fvMesh. Note: writes a dummy mesh to. More...
 

Static Public Member Functions

static label index (const labelVector &nDivs, const labelVector &voxel)
 Find cells. Returns number of cells found. More...
 
static labelVector offset (const labelVector &nDivs)
 Change in combined voxel index for change in components. More...
 
static labelVector index3 (const labelVector &nDivs, const label voxeli)
 Combined voxel index to individual indices. More...
 
static labelVector index3 (const boundBox &bb, const labelVector &nDivs, const point &p)
 Coordinate to voxel indices. More...
 
static point centre (const boundBox &bb, const labelVector &nDivs, const labelVector &voxel)
 Voxel index to voxel centre. More...
 
static label index (const boundBox &bb, const labelVector &nDivs, const point &p, const bool clip)
 Coordinate to combined voxel index. If clip makes sure. More...
 
template<class Container , class Type >
static void fill (Container &elems, const boundBox &bb, const labelVector &nDivs, const boundBox &subBb, const Type val)
 Fill voxels indicated by bounding box. More...
 
template<class Container , class Type , class CombineOp >
static void fill (Container &elems, const boundBox &bb, const labelVector &nDivs, const boundBox &subBb, const Type val, const CombineOp &cop=eqOp< Type >())
 Fill voxels indicated by bounding box. More...
 
template<class Container , class Type >
static bool overlaps (const boundBox &bb, const labelVector &nDivs, const boundBox &subBb, const Container &elems, const Type val, const bool isNot=false)
 Check if any voxel inside bounding box is set to val or. More...
 
template<class Container , class Type >
static void write (OBJstream &, const boundBox &bb, const labelVector &nDivs, const Container &elems, const Type val, const bool isNot=false)
 Debug: write points for every set element. More...
 
static void writeGrid (OBJstream &, const boundBox &, const labelVector &)
 Debug: write all edges. More...
 

Detailed Description

Fast, non-parallel searching in mesh without use of octree.

Source files

Definition at line 57 of file voxelMeshSearch.H.

Constructor & Destructor Documentation

◆ voxelMeshSearch() [1/2]

voxelMeshSearch ( const polyMesh mesh,
const bool  doUpdate = true 
)

Construct from mesh; voxels estimated from local number of cells.

Definition at line 286 of file voxelMeshSearch.C.

References Foam::cbrt(), e, Foam::endl(), forAll, polyMesh::geometricD(), boundBox::max(), Foam::max(), boundBox::min(), IOobject::name(), primitiveMesh::nCells(), voxelMeshSearch::nDivs(), polyMesh::nGeometricD(), polyMesh::points(), Foam::Pout, Foam::sqrt(), and voxelMeshSearch::update().

Here is the call graph for this function:

◆ voxelMeshSearch() [2/2]

voxelMeshSearch ( const polyMesh mesh,
const boundBox bb,
const labelVector nDivs,
const bool  doUpdate = true 
)

Construct from mesh and voxel discretisation.

Definition at line 344 of file voxelMeshSearch.C.

References voxelMeshSearch::update().

Here is the call graph for this function:

Member Function Documentation

◆ ClassName()

ClassName ( "voxelMeshSearch"  )

◆ nDivs()

const labelVector & nDivs ( ) const
inline

Number of voxels for local mesh.

Definition at line 109 of file voxelMeshSearch.H.

Referenced by voxelMeshSearch::fill(), voxelMeshSearch::offset(), and voxelMeshSearch::voxelMeshSearch().

Here is the caller graph for this function:

◆ update()

bool update ( )

Update lookup tables for geometry changes.

Definition at line 365 of file voxelMeshSearch.C.

References Foam::cmptProduct(), Foam::endl(), forAll, OSstream::name(), points, and Foam::Pout.

Referenced by voxelMeshSearch::voxelMeshSearch().

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

◆ findCell()

Foam::label findCell ( const point p) const

Find a cell.

Definition at line 409 of file voxelMeshSearch.C.

References Foam::max(), and p.

Here is the call graph for this function:

◆ index() [1/2]

Foam::label index ( const labelVector nDivs,
const labelVector voxel 
)
static

Find cells. Returns number of cells found.

label findCells(const UList<point>&, labelList&) const; Voxel indices to combined voxel index

Definition at line 56 of file voxelMeshSearch.C.

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

Referenced by voxelMeshSearch::fill().

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

◆ offset()

Foam::labelVector offset ( const labelVector nDivs)
static

Change in combined voxel index for change in components.

Definition at line 47 of file voxelMeshSearch.C.

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

Referenced by voxelMeshSearch::fill().

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

◆ index3() [1/2]

Foam::labelVector index3 ( const labelVector nDivs,
const label  voxeli 
)
static

Combined voxel index to individual indices.

Definition at line 66 of file voxelMeshSearch.C.

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

Referenced by voxelMeshSearch::fill().

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

◆ index3() [2/2]

Foam::labelVector index3 ( const boundBox bb,
const labelVector nDivs,
const point p 
)
static

Coordinate to voxel indices.

Definition at line 84 of file voxelMeshSearch.C.

References Foam::cmptDivide(), g, boundBox::min(), s(), boundBox::span(), Vector< Cmpt >::x(), Vector< Cmpt >::y(), and Vector< Cmpt >::z().

Here is the call graph for this function:

◆ centre()

Foam::point centre ( const boundBox bb,
const labelVector nDivs,
const labelVector voxel 
)
static

Voxel index to voxel centre.

Definition at line 144 of file voxelMeshSearch.C.

References Foam::cmptDivide(), g, boundBox::min(), s(), and boundBox::span().

Here is the call graph for this function:

◆ index() [2/2]

Foam::label index ( const boundBox bb,
const labelVector nDivs,
const point p,
const bool  clip 
)
static

Coordinate to combined voxel index. If clip makes sure.

components are all inside. If not clip returns -1 if outside bb.

Definition at line 104 of file voxelMeshSearch.C.

References Foam::clip(), Foam::cmptDivide(), g, Foam::max(), boundBox::min(), Foam::min(), s(), boundBox::span(), Vector< Cmpt >::x(), Vector< Cmpt >::y(), and Vector< Cmpt >::z().

Here is the call graph for this function:

◆ fill() [1/2]

void fill ( Container &  elems,
const boundBox bb,
const labelVector nDivs,
const boundBox subBb,
const Type  val 
)
static

Fill voxels indicated by bounding box.

Definition at line 34 of file voxelMeshSearchTemplates.C.

References voxelMeshSearch::index(), voxelMeshSearch::index3(), k, boundBox::max(), Foam::max(), boundBox::min(), Foam::min(), voxelMeshSearch::nDivs(), and voxelMeshSearch::offset().

Here is the call graph for this function:

◆ fill() [2/2]

void fill ( Container &  elems,
const boundBox bb,
const labelVector nDivs,
const boundBox subBb,
const Type  val,
const CombineOp &  cop = eqOp<Type>() 
)
static

Fill voxels indicated by bounding box.

Definition at line 78 of file voxelMeshSearchTemplates.C.

References k, boundBox::max(), Foam::max(), boundBox::min(), and Foam::min().

Here is the call graph for this function:

◆ overlaps()

bool overlaps ( const boundBox bb,
const labelVector nDivs,
const boundBox subBb,
const Container &  elems,
const Type  val,
const bool  isNot = false 
)
static

Check if any voxel inside bounding box is set to val or.

not set to val (isNot = true)

Definition at line 123 of file voxelMeshSearchTemplates.C.

References Foam::cmptProduct(), Foam::exit(), Foam::FatalError, FatalErrorInFunction, k, boundBox::max(), Foam::max(), boundBox::min(), and Foam::min().

Here is the call graph for this function:

◆ write()

void write ( OBJstream os,
const boundBox bb,
const labelVector nDivs,
const Container &  elems,
const Type  val,
const bool  isNot = false 
)
static

Debug: write points for every set element.

Definition at line 183 of file voxelMeshSearchTemplates.C.

References Foam::cmptProduct(), Foam::exit(), Foam::FatalError, FatalErrorInFunction, k, os(), and OBJstream::write().

Here is the call graph for this function:

◆ writeGrid()

void writeGrid ( OBJstream os,
const boundBox bb,
const labelVector g 
)
static

Debug: write all edges.

Definition at line 157 of file voxelMeshSearch.C.

References Foam::cmptDivide(), g, k, boundBox::min(), os(), s(), boundBox::span(), and OBJstream::write().

Here is the call graph for this function:

◆ makeMesh()

Foam::autoPtr< Foam::fvMesh > makeMesh ( const IOobject io) const

Debug: construct fvMesh. Note: writes a dummy mesh to.

io.timeName()! TBD.

Definition at line 494 of file voxelMeshSearch.C.

References dictionary::add(), b, boundary, boundaryDicts(), cellShapes, fvMeshTools::createDummyFvMeshFiles(), IOobject::db(), cloud::defaultName, forAll, hex, cellModel::HEX, Foam::identity(), io(), mesh, IOobject::MUST_READ, IOobject::name(), Time::New(), IOobject::NO_READ, patchNames(), points, cellShape::points(), IOobject::readOpt(), dictionary::Searcher< Const >::ref(), List< T >::setSize(), UList< T >::size(), List< T >::transfer(), ensightPTraits< Type >::typeName, and fvMesh::write().

Here is the call graph for this function:

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