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 labelVector & nDivs () 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< fvMesh > makeMesh (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 287 of file voxelMeshSearch.C.

References Foam::cbrt(), Foam::expressions::patchExpr::debug, Foam::constant::electromagnetic::e, Foam::endl(), forAll, Foam::max(), OSstream::name(), Foam::Pout, Foam::sqrt(), and 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 345 of file voxelMeshSearch.C.

References 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.

◆ update()

bool update ( )

Update lookup tables for geometry changes.

Definition at line 365 of file voxelMeshSearch.C.

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

Here is the call 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 57 of file voxelMeshSearch.C.

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

Here is the call graph for this function:

◆ offset()

Foam::labelVector offset ( const labelVector &  nDivs)
static

Change in combined voxel index for change in components.

Definition at line 48 of file voxelMeshSearch.C.

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

Here is the call 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 67 of file voxelMeshSearch.C.

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

Here is the call 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 85 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 145 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 105 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 35 of file voxelMeshSearchTemplates.C.

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

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 79 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 124 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 184 of file voxelMeshSearchTemplates.C.

References Foam::cmptProduct(), Foam::exit(), Foam::FatalError, FatalErrorInFunction, k, 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 158 of file voxelMeshSearch.C.

References Foam::cmptDivide(), g, k, boundBox::min(), 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 495 of file voxelMeshSearch.C.

References dictionary::add(), Foam::constant::physicoChemical::b, bCells(), boundary, boundaryDicts, cellShapes, fvMeshTools::createDummyFvMeshFiles(), IOobject::db(), patchIdentifier::defaultName(), forAll, cellModel::HEX, Foam::hex(), Foam::identity(), mesh, IOobject::MUST_READ, IOobject::name(), autoPtr< T >::New(), IOobject::NO_READ, patchNames(), points, cellShape::points(), IOobject::readOpt(), cellModel::ref(), List< T >::setSize(), List< T >::transfer(), and fvMesh::write().

Here is the call graph for this function:

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