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... | |
Fast, non-parallel searching in mesh without use of octree.
Definition at line 57 of file voxelMeshSearch.H.
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().
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().
ClassName | ( | "voxelMeshSearch" | ) |
|
inline |
Number of voxels for local mesh.
Definition at line 109 of file voxelMeshSearch.H.
Referenced by voxelMeshSearch::fill(), voxelMeshSearch::offset(), and voxelMeshSearch::voxelMeshSearch().
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().
Foam::label findCell | ( | const point & | p | ) | const |
Find a cell.
Definition at line 409 of file voxelMeshSearch.C.
References Foam::max(), and p.
|
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().
|
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().
|
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().
|
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().
|
static |
Voxel index to voxel centre.
Definition at line 144 of file voxelMeshSearch.C.
References Foam::cmptDivide(), g, boundBox::min(), s(), and boundBox::span().
|
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().
|
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().
|
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().
|
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().
|
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().
|
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().
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().