Base class for ray search engines. More...
Public Member Functions | |
TypeName ("raySearchEngine") | |
Run-time type information. More... | |
declareRunTimeSelectionTable (autoPtr, raySearchEngine, mesh,(const fvMesh &mesh, const dictionary &dict),(mesh, dict)) | |
Selection table. More... | |
raySearchEngine (const raySearchEngine &)=delete | |
No copy construct. More... | |
void | operator= (const raySearchEngine &)=delete |
No copy assignment. More... | |
raySearchEngine (const fvMesh &mesh, const dictionary &dict) | |
Constructor. More... | |
virtual | ~raySearchEngine ()=default |
Destructor. More... | |
const fvMesh & | mesh () const noexcept |
Reference to the mesh. More... | |
const mapDistribute & | map () const |
Parallel map. More... | |
const labelList & | compactToGlobal () const noexcept |
Compact to global addressing. More... | |
const globalIndex & | globalNumbering () const noexcept |
Global numbering. More... | |
const labelList & | patchIDs () const noexcept |
List of participating patch IDs. More... | |
const scalarList & | patchAreas () const noexcept |
Patch areas. More... | |
label | nParticipatingFaces () const |
Number of participating faces. More... | |
const List< pointField > & | allCf () const noexcept |
List of all face centres per processor. More... | |
const List< vectorField > & | allSf () const noexcept |
List of all face areas per processor. More... | |
const List< labelField > & | allAgg () const noexcept |
List of all face agglomeration index per processor. More... | |
virtual void | shootRays (labelList &rayStartFaceOut, labelList &rayEndFaceOut) const =0 |
Shoot rays; returns lists of ray start and end faces. More... | |
virtual void | correct (labelListList &visibleFaceFaces) const |
Correct. More... | |
void | compactAddressing (const mapDistribute &map, pointField &compactCf, vectorField &compactSf, List< List< vector >> &compactFineSf, List< List< point >> &compactFineCf, DynamicList< List< point >> &compactPoints, DynamicList< label > &compactPatchId) const |
Create compact addressing. More... | |
template<class Type > | |
void | interpolate (GeometricField< Type, fvPatchField, volMesh > &fld, const List< List< Type >> &values) const |
Interpolate field. More... | |
Static Public Member Functions | |
static autoPtr< raySearchEngine > | New (const fvMesh &mesh, const dictionary &dict) |
Selector. More... | |
Static Public Attributes | |
static const label | maxDynListLength |
Protected Member Functions | |
void | createGeometry () |
Create patch geometry based on the original mesh. More... | |
void | createParallelAddressing (labelList &rayEndFace) const |
Create parallel addressing - map, compact-to-global. More... | |
coordSystem::cartesian | createCoordSystem (const point &origin, const vector &dir) const |
Create Cartesian co-ordinate system. More... | |
void | createAgglomeration (const IOobject &io) |
Create patch geometry based on the agglomerated mesh. More... | |
tmp< pointField > | createHemiPoints (const label nRayPerFace) const |
Create a set of points describing a hemisphere. More... | |
Static Protected Member Functions | |
static void | check (const labelList &nVisibleFaceFaces) |
static label | closestPointIndex (const point &p0, const List< point > &pts) |
Protected Attributes | |
const fvMesh & | mesh_ |
Reference to the mesh. More... | |
autoPtr< mapDistribute > | mapPtr_ |
Parallel map. More... | |
labelList | compactToGlobal_ |
Compact to global addressing. More... | |
globalIndex | globalNumbering_ |
Global numbering. More... | |
const word | patchGroup_ |
Name of patch group to identify participating patches. More... | |
labelList | patchIDs_ |
List of participating patch IDs. More... | |
scalarList | patchAreas_ |
Patch areas. More... | |
bool | agglomerate_ |
Agglomeration flag. More... | |
autoPtr< singleCellFvMesh > | agglomMeshPtr_ |
Agglomerated mesh representation. More... | |
label | nFace_ |
Number of original faces. More... | |
label | nCoarseFace_ |
Number of coarse faces. More... | |
List< pointField > | allCf_ |
List of all face centres per processor. More... | |
List< vectorField > | allSf_ |
List of all face areas per processor. More... | |
List< labelField > | allAgg_ |
List of all face agglomeration index per processor. More... | |
Base class for ray search engines.
Participating patches must be in the viewFactorWall
group, i.e. using the inGroups
entry of the "\<case\>/polyMesh/boundary" file.
myPatch { type wall; inGroups 2(wall viewFactorWall); ... }
Face agglomeration can be employed, created using the faceAgglomerate
utility. The file name to be read can be user-defined:
// Name of agglomeration file; default = finalAgglom agglom finalAgglom;
Definition at line 72 of file raySearchEngine.H.
|
delete |
No copy construct.
raySearchEngine | ( | const fvMesh & | mesh, |
const dictionary & | dict | ||
) |
Constructor.
|
virtualdefault |
Destructor.
|
staticprotected |
|
protected |
Create patch geometry based on the original mesh.
|
protected |
Create parallel addressing - map, compact-to-global.
|
protected |
Create Cartesian co-ordinate system.
|
protected |
Create patch geometry based on the agglomerated mesh.
|
protected |
Create a set of points describing a hemisphere.
Note: origin is (0 0 0)
TypeName | ( | "raySearchEngine" | ) |
Run-time type information.
declareRunTimeSelectionTable | ( | autoPtr | , |
raySearchEngine | , | ||
mesh | , | ||
(const fvMesh &mesh, const dictionary &dict) | , | ||
(mesh, dict) | |||
) |
Selection table.
|
static |
Selector.
|
delete |
No copy assignment.
|
inlinenoexcept |
Reference to the mesh.
Definition at line 21 of file raySearchEngineI.H.
References raySearchEngine::mesh_.
|
inline |
Parallel map.
Definition at line 27 of file raySearchEngineI.H.
References Foam::abort(), Foam::FatalError, and FatalErrorInFunction.
|
inlinenoexcept |
Compact to global addressing.
Definition at line 41 of file raySearchEngineI.H.
|
inlinenoexcept |
Global numbering.
Definition at line 48 of file raySearchEngineI.H.
|
inlinenoexcept |
List of participating patch IDs.
Definition at line 54 of file raySearchEngineI.H.
|
inlinenoexcept |
Patch areas.
Definition at line 60 of file raySearchEngineI.H.
|
inline |
Number of participating faces.
Definition at line 66 of file raySearchEngineI.H.
|
inlinenoexcept |
List of all face centres per processor.
Definition at line 74 of file raySearchEngineI.H.
|
inlinenoexcept |
List of all face areas per processor.
Definition at line 81 of file raySearchEngineI.H.
|
inlinenoexcept |
List of all face agglomeration index per processor.
Definition at line 88 of file raySearchEngineI.H.
|
pure virtual |
Shoot rays; returns lists of ray start and end faces.
Implemented in voxel.
|
virtual |
Correct.
void compactAddressing | ( | const mapDistribute & | map, |
pointField & | compactCf, | ||
vectorField & | compactSf, | ||
List< List< vector >> & | compactFineSf, | ||
List< List< point >> & | compactFineCf, | ||
DynamicList< List< point >> & | compactPoints, | ||
DynamicList< label > & | compactPatchId | ||
) | const |
Create compact addressing.
void interpolate | ( | GeometricField< Type, fvPatchField, volMesh > & | fld, |
const List< List< Type >> & | values | ||
) | const |
Interpolate field.
|
protected |
Reference to the mesh.
Definition at line 81 of file raySearchEngine.H.
Referenced by raySearchEngine::mesh().
|
mutableprotected |
Parallel map.
Definition at line 86 of file raySearchEngine.H.
|
mutableprotected |
Compact to global addressing.
Definition at line 91 of file raySearchEngine.H.
|
protected |
Global numbering.
Definition at line 96 of file raySearchEngine.H.
|
protected |
Name of patch group to identify participating patches.
Definition at line 101 of file raySearchEngine.H.
|
protected |
List of participating patch IDs.
Definition at line 106 of file raySearchEngine.H.
|
protected |
Patch areas.
Definition at line 111 of file raySearchEngine.H.
|
protected |
Agglomeration flag.
Definition at line 116 of file raySearchEngine.H.
|
protected |
Agglomerated mesh representation.
Definition at line 121 of file raySearchEngine.H.
|
protected |
Number of original faces.
Definition at line 126 of file raySearchEngine.H.
|
protected |
Number of coarse faces.
Definition at line 131 of file raySearchEngine.H.
|
protected |
List of all face centres per processor.
Definition at line 136 of file raySearchEngine.H.
|
protected |
List of all face areas per processor.
Definition at line 141 of file raySearchEngine.H.
|
protected |
List of all face agglomeration index per processor.
Definition at line 146 of file raySearchEngine.H.
|
static |
Definition at line 193 of file raySearchEngine.H.