Base class for ray search engines. More...
#include <raySearchEngine.H>


Public Member Functions | |
| TypeName ("raySearchEngine") | |
| Run-time type information. | |
| declareRunTimeSelectionTable (autoPtr, raySearchEngine, mesh,(const fvMesh &mesh, const dictionary &dict),(mesh, dict)) | |
| Selection table. | |
| raySearchEngine (const raySearchEngine &)=delete | |
| No copy construct. | |
| void | operator= (const raySearchEngine &)=delete |
| No copy assignment. | |
| raySearchEngine (const fvMesh &mesh, const dictionary &dict) | |
| Constructor. | |
| virtual | ~raySearchEngine ()=default |
| Destructor. | |
| const fvMesh & | mesh () const noexcept |
| Reference to the mesh. | |
| const mapDistribute & | map () const |
| Parallel map. | |
| const labelList & | compactToGlobal () const noexcept |
| Compact to global addressing. | |
| const globalIndex & | globalNumbering () const noexcept |
| Global numbering. | |
| const labelList & | patchIDs () const noexcept |
| List of participating patch IDs. | |
| const scalarList & | patchAreas () const noexcept |
| Patch areas. | |
| label | nParticipatingFaces () const |
| Number of participating faces. | |
| const List< pointField > & | allCf () const noexcept |
| List of all face centres per processor. | |
| const List< vectorField > & | allSf () const noexcept |
| List of all face areas per processor. | |
| const List< labelField > & | allAgg () const noexcept |
| List of all face agglomeration index per processor. | |
| virtual void | shootRays (labelList &rayStartFaceOut, labelList &rayEndFaceOut) const =0 |
| Shoot rays; returns lists of ray start and end faces. | |
| virtual void | correct (labelListList &visibleFaceFaces) const |
| 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. | |
| template<class Type> | |
| void | interpolate (GeometricField< Type, fvPatchField, volMesh > &fld, const List< List< Type > > &values) const |
| Interpolate field. | |
Static Public Member Functions | |
| static autoPtr< raySearchEngine > | New (const fvMesh &mesh, const dictionary &dict) |
| Selector. | |
Static Public Attributes | |
| static const label | maxDynListLength |
Protected Member Functions | |
| void | createGeometry () |
| Create patch geometry based on the original mesh. | |
| void | createParallelAddressing (labelList &rayEndFace) const |
| Create parallel addressing - map, compact-to-global. | |
| coordSystem::cartesian | createCoordSystem (const point &origin, const vector &dir) const |
| Create Cartesian co-ordinate system. | |
| void | createAgglomeration (const IOobject &io) |
| Create patch geometry based on the agglomerated mesh. | |
| tmp< pointField > | createHemiPoints (const label nRayPerFace) const |
| Create a set of points describing a hemisphere. | |
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. | |
| autoPtr< mapDistribute > | mapPtr_ |
| Parallel map. | |
| labelList | compactToGlobal_ |
| Compact to global addressing. | |
| globalIndex | globalNumbering_ |
| Global numbering. | |
| const word | patchGroup_ |
| Name of patch group to identify participating patches. | |
| labelList | patchIDs_ |
| List of participating patch IDs. | |
| scalarList | patchAreas_ |
| Patch areas. | |
| bool | agglomerate_ |
| Agglomeration flag. | |
| autoPtr< singleCellFvMesh > | agglomMeshPtr_ |
| Agglomerated mesh representation. | |
| label | nFace_ |
| Number of original faces. | |
| label | nCoarseFace_ |
| Number of coarse faces. | |
| List< pointField > | allCf_ |
| List of all face centres per processor. | |
| List< vectorField > | allSf_ |
| List of all face areas per processor. | |
| List< labelField > | allAgg_ |
| List of all face agglomeration index per processor. | |
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.
References raySearchEngine().
Referenced by declareRunTimeSelectionTable(), operator=(), and raySearchEngine().


| raySearchEngine | ( | const fvMesh & | mesh, |
| const dictionary & | dict ) |
|
virtualdefault |
Destructor.
References allAgg(), allCf(), allSf(), compactToGlobal(), globalNumbering(), map(), Foam::noexcept, nParticipatingFaces(), patchAreas(), and patchIDs().

|
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.
References io.
|
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.
References dict, mesh(), and raySearchEngine().

|
static |
|
delete |
|
inlinenoexcept |
Reference to the mesh.
Definition at line 21 of file raySearchEngineI.H.
References mesh_, and Foam::noexcept.
Referenced by declareRunTimeSelectionTable(), New(), raySearchEngine(), and voxel::voxel().

|
inline |
Parallel map.
Definition at line 27 of file raySearchEngineI.H.
References Foam::abort(), Foam::FatalError, FatalErrorInFunction, and mapPtr_.
Referenced by compactAddressing(), and ~raySearchEngine().


|
inlinenoexcept |
Compact to global addressing.
Definition at line 41 of file raySearchEngineI.H.
References compactToGlobal_, and Foam::noexcept.
Referenced by ~raySearchEngine().

|
inlinenoexcept |
Global numbering.
Definition at line 48 of file raySearchEngineI.H.
References globalNumbering_, and Foam::noexcept.
Referenced by ~raySearchEngine().

|
inlinenoexcept |
List of participating patch IDs.
Definition at line 54 of file raySearchEngineI.H.
References Foam::noexcept, and patchIDs_.
Referenced by ~raySearchEngine().

|
inlinenoexcept |
Patch areas.
Definition at line 60 of file raySearchEngineI.H.
References Foam::noexcept, and patchAreas_.
Referenced by ~raySearchEngine().

|
inline |
Number of participating faces.
Definition at line 66 of file raySearchEngineI.H.
References nCoarseFace_, and nFace_.
Referenced by ~raySearchEngine().

|
inlinenoexcept |
List of all face centres per processor.
Definition at line 74 of file raySearchEngineI.H.
References allCf_, and Foam::noexcept.
Referenced by ~raySearchEngine().

|
inlinenoexcept |
List of all face areas per processor.
Definition at line 81 of file raySearchEngineI.H.
References allSf_, and Foam::noexcept.
Referenced by ~raySearchEngine().

|
inlinenoexcept |
List of all face agglomeration index per processor.
Definition at line 88 of file raySearchEngineI.H.
References allAgg_, and Foam::noexcept.
Referenced by ~raySearchEngine().

|
pure virtual |
Shoot rays; returns lists of ray start and end faces.
Implemented in voxel.
References shootRays().
Referenced by shootRays().


|
virtual |
| 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.
References compactAddressing(), and map().
Referenced by compactAddressing().


| void interpolate | ( | GeometricField< Type, fvPatchField, volMesh > & | fld, |
| const List< List< Type > > & | values ) const |
Interpolate field.
References fld(), and interpolate().
Referenced by interpolate().


|
protected |
|
mutableprotected |
|
mutableprotected |
Compact to global addressing.
Definition at line 91 of file raySearchEngine.H.
Referenced by compactToGlobal().
|
protected |
|
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.
Referenced by patchIDs().
|
protected |
|
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.
Referenced by nParticipatingFaces().
|
protected |
Number of coarse faces.
Definition at line 131 of file raySearchEngine.H.
Referenced by nParticipatingFaces().
|
protected |
List of all face centres per processor.
Definition at line 136 of file raySearchEngine.H.
Referenced by allCf().
|
protected |
List of all face areas per processor.
Definition at line 141 of file raySearchEngine.H.
Referenced by allSf().
|
protected |
List of all face agglomeration index per processor.
Definition at line 146 of file raySearchEngine.H.
Referenced by allAgg().
|
static |
Definition at line 193 of file raySearchEngine.H.