Various (local, not parallel) searches on polyMesh; uses (demand driven) octree to search. More...
#include <meshTools/meshSearch.H>
Various (local, not parallel) searches on polyMesh; uses (demand driven) octree to search.
Definition at line 59 of file meshSearch.H.
Public Member Functions | |
ClassName ("meshSearch") | |
meshSearch (const polyMesh &mesh, const bool faceDecomp=true) | |
Construct from components.
| |
~meshSearch () | |
const polyMesh & | mesh () const |
const indexedOctree < treeDataFace > & | boundaryTree () const |
Get (demand driven) reference to octree holding all.
| |
const indexedOctree < treeDataCell > & | cellTree () const |
Get (demand driven) reference to octree holding all cells.
| |
const indexedOctree < treeDataPoint > & | cellCentreTree () const |
Get (demand driven) reference to octree holding all cell centres.
| |
bool | pointInCell (const point &p, const label celli) const |
test for point in cell. Does not handle cells with center
| |
label | findNearestCell (const point &location, const label seedCellI=-1, const bool useTreeSearch=true) const |
Find nearest cell in terms of cell centre.
| |
label | findNearestFace (const point &location, const label seedFaceI=-1, const bool useTreeSearch=true) const |
label | findCell (const point &location, const label seedCellI=-1, const bool useTreeSearch=true) const |
Find cell containing (using pointInCell) location.
| |
label | findNearestBoundaryFace (const point &location, const label seedFaceI=-1, const bool useTreeSearch=true) const |
Find nearest boundary face.
| |
pointIndexHit | intersection (const point &pStart, const point &pEnd) const |
Find first intersection of boundary in segment [pStart, pEnd].
| |
List< pointIndexHit > | intersections (const point &pStart, const point &pEnd) const |
Find all intersections of boundary within segment pStart .. pEnd.
| |
bool | isInside (const point &) const |
Determine inside/outside status.
| |
void | clearOut () |
delete all storage
| |
void | correct () |
Correct for mesh geom/topo changes.
| |
Static Public Attributes | |
static scalar | tol_ = 1E-3 |
tolerance on linear dimensions
|
meshSearch | ( | const polyMesh & | mesh, |
const bool | faceDecomp = true
|
||
) |
Construct from components.
Definition at line 426 of file meshSearch.C.
~meshSearch | ( | ) |
Definition at line 439 of file meshSearch.C.
ClassName | ( | "meshSearch" | ) |
const polyMesh& mesh | ( | ) | const [inline]
|
Definition at line 181 of file meshSearch.H.
const Foam::indexedOctree< Foam::treeDataFace > & boundaryTree | ( | ) | const |
Get (demand driven) reference to octree holding all.
boundary faces
Definition at line 447 of file meshSearch.C.
const Foam::indexedOctree< Foam::treeDataCell > & cellTree | ( | ) | const |
Get (demand driven) reference to octree holding all cells.
Definition at line 488 of file meshSearch.C.
References E().
const Foam::indexedOctree< Foam::treeDataPoint > & cellCentreTree | ( | ) | const |
Get (demand driven) reference to octree holding all cell centres.
Definition at line 523 of file meshSearch.C.
References E().
Referenced by sampledTriSurfaceMesh::update().
bool pointInCell | ( | const point & | p, |
const label | celli | ||
) | const |
test for point in cell. Does not handle cells with center
outside cell.
Definition at line 555 of file meshSearch.C.
References dist, PointHit< Point >::distance(), forAll, intersection::HALF_RAY, PointHit< Point >::hit(), Foam::mag(), intersection::setPlanarTol(), and intersection::VECTOR.
Foam::label findNearestCell | ( | const point & | location, |
const label | seedCellI = -1 ,
|
||
const bool | useTreeSearch = true
|
||
) | const |
Find nearest cell in terms of cell centre.
use linear search
Definition at line 638 of file meshSearch.C.
Foam::label findNearestFace | ( | const point & | location, |
const label | seedFaceI = -1 ,
|
||
const bool | useTreeSearch = true
|
||
) | const |
Definition at line 663 of file meshSearch.C.
Foam::label findCell | ( | const point & | location, |
const label | seedCellI = -1 ,
|
||
const bool | useTreeSearch = true
|
||
) | const |
Find cell containing (using pointInCell) location.
If seed provided walks and falls back to linear/tree search. (so handles holes correctly)s Returns -1 if not in domain.
Definition at line 688 of file meshSearch.C.
References Particle< ParticleType >::cell(), Foam::endl(), Particle< ParticleType >::face(), PointIndexHit< Point >::hit(), PointIndexHit< Point >::hitPoint(), PointIndexHit< Point >::index(), Foam::mag(), Particle< ParticleType >::onBoundary(), Particle< ParticleType >::position(), Foam::Pout, Foam::sqrt(), Particle< ParticleType >::track(), and PointIndexHit< Point >::write().
Foam::label findNearestBoundaryFace | ( | const point & | location, |
const label | seedFaceI = -1 ,
|
||
const bool | useTreeSearch = true
|
||
) | const |
Find nearest boundary face.
If seed provided walks but then does not pass local minima in distance. Also does not jump from one connected region to the next.
Definition at line 800 of file meshSearch.C.
References indexedOctree< Type >::bb(), PointHit< Point >::distance(), treeDataFace::faceLabels(), PointIndexHit< Point >::hit(), PointIndexHit< Point >::index(), boundBox::mag(), face::nearestPoint(), indexedOctree< Type >::shapes(), and Foam::sqr().
Foam::pointIndexHit intersection | ( | const point & | pStart, |
const point & | pEnd | ||
) | const |
Find first intersection of boundary in segment [pStart, pEnd].
(so inclusive of endpoints). Always octree for now
Definition at line 870 of file meshSearch.C.
References PointIndexHit< Point >::hit(), PointIndexHit< Point >::index(), and PointIndexHit< Point >::setIndex().
Foam::List< Foam::pointIndexHit > intersections | ( | const point & | pStart, |
const point & | pEnd | ||
) | const |
Find all intersections of boundary within segment pStart .. pEnd.
Always octree for now
Definition at line 887 of file meshSearch.C.
References DynamicList< T, SizeInc, SizeMult, SizeDiv >::append(), PointIndexHit< Point >::hit(), PointIndexHit< Point >::hitPoint(), PointIndexHit< Point >::index(), Foam::mag(), DynamicList< T, SizeInc, SizeMult, SizeDiv >::shrink(), and Foam::sqrt().
bool isInside | ( | const point & | p ) | const |
Determine inside/outside status.
Definition at line 934 of file meshSearch.C.
void clearOut | ( | ) |
delete all storage
Definition at line 943 of file meshSearch.C.
References Foam::deleteDemandDrivenData().
void correct | ( | ) |
Correct for mesh geom/topo changes.
Definition at line 951 of file meshSearch.C.
Foam::scalar tol_ = 1E-3 [static]
|
tolerance on linear dimensions
Definition at line 163 of file meshSearch.H.