Loading...
Searching...
No Matches
raySearchEngine Class Referenceabstract

Base class for ray search engines. More...

#include <raySearchEngine.H>

Inheritance diagram for raySearchEngine:
Collaboration diagram for raySearchEngine:

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 fvMeshmesh () const noexcept
 Reference to the mesh.
const mapDistributemap () const
 Parallel map.
const labelListcompactToGlobal () const noexcept
 Compact to global addressing.
const globalIndexglobalNumbering () const noexcept
 Global numbering.
const labelListpatchIDs () const noexcept
 List of participating patch IDs.
const scalarListpatchAreas () 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< raySearchEngineNew (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< pointFieldcreateHemiPoints (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 fvMeshmesh_
 Reference to the mesh.
autoPtr< mapDistributemapPtr_
 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< singleCellFvMeshagglomMeshPtr_
 Agglomerated mesh representation.
label nFace_
 Number of original faces.
label nCoarseFace_
 Number of coarse faces.
List< pointFieldallCf_
 List of all face centres per processor.
List< vectorFieldallSf_
 List of all face areas per processor.
List< labelFieldallAgg_
 List of all face agglomeration index per processor.

Detailed Description

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;
Source files

Definition at line 72 of file raySearchEngine.H.

Constructor & Destructor Documentation

◆ raySearchEngine() [1/2]

raySearchEngine ( const raySearchEngine & )
delete

No copy construct.

References raySearchEngine().

Referenced by declareRunTimeSelectionTable(), operator=(), and raySearchEngine().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ raySearchEngine() [2/2]

raySearchEngine ( const fvMesh & mesh,
const dictionary & dict )

Constructor.

References dict, and mesh().

Here is the call graph for this function:

◆ ~raySearchEngine()

virtual ~raySearchEngine ( )
virtualdefault

Destructor.

References allAgg(), allCf(), allSf(), compactToGlobal(), globalNumbering(), map(), Foam::noexcept, nParticipatingFaces(), patchAreas(), and patchIDs().

Here is the call graph for this function:

Member Function Documentation

◆ check()

void check ( const labelList & nVisibleFaceFaces)
staticprotected

◆ closestPointIndex()

label closestPointIndex ( const point & p0,
const List< point > & pts )
staticprotected

References p0, and pts.

◆ createGeometry()

void createGeometry ( )
protected

Create patch geometry based on the original mesh.

◆ createParallelAddressing()

void createParallelAddressing ( labelList & rayEndFace) const
protected

Create parallel addressing - map, compact-to-global.

◆ createCoordSystem()

coordSystem::cartesian createCoordSystem ( const point & origin,
const vector & dir ) const
protected

Create Cartesian co-ordinate system.

◆ createAgglomeration()

void createAgglomeration ( const IOobject & io)
protected

Create patch geometry based on the agglomerated mesh.

References io.

◆ createHemiPoints()

tmp< pointField > createHemiPoints ( const label nRayPerFace) const
protected

Create a set of points describing a hemisphere.

Note: origin is (0 0 0)

◆ TypeName()

TypeName ( "raySearchEngine" )

Run-time type information.

◆ declareRunTimeSelectionTable()

declareRunTimeSelectionTable ( autoPtr ,
raySearchEngine ,
mesh ,
(const fvMesh &mesh, const dictionary &dict) ,
(mesh, dict)  )

Selection table.

References dict, mesh(), and raySearchEngine().

Here is the call graph for this function:

◆ New()

autoPtr< raySearchEngine > New ( const fvMesh & mesh,
const dictionary & dict )
static

Selector.

References dict, and mesh().

Here is the call graph for this function:

◆ operator=()

void operator= ( const raySearchEngine & )
delete

No copy assignment.

References raySearchEngine().

Here is the call graph for this function:

◆ mesh()

const Foam::fvMesh & mesh ( ) const
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().

Here is the caller graph for this function:

◆ map()

const Foam::mapDistribute & map ( ) const
inline

Parallel map.

Definition at line 27 of file raySearchEngineI.H.

References Foam::abort(), Foam::FatalError, FatalErrorInFunction, and mapPtr_.

Referenced by compactAddressing(), and ~raySearchEngine().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ compactToGlobal()

const Foam::labelList & compactToGlobal ( ) const
inlinenoexcept

Compact to global addressing.

Definition at line 41 of file raySearchEngineI.H.

References compactToGlobal_, and Foam::noexcept.

Referenced by ~raySearchEngine().

Here is the caller graph for this function:

◆ globalNumbering()

const Foam::globalIndex & globalNumbering ( ) const
inlinenoexcept

Global numbering.

Definition at line 48 of file raySearchEngineI.H.

References globalNumbering_, and Foam::noexcept.

Referenced by ~raySearchEngine().

Here is the caller graph for this function:

◆ patchIDs()

const Foam::labelList & patchIDs ( ) const
inlinenoexcept

List of participating patch IDs.

Definition at line 54 of file raySearchEngineI.H.

References Foam::noexcept, and patchIDs_.

Referenced by ~raySearchEngine().

Here is the caller graph for this function:

◆ patchAreas()

const Foam::scalarList & patchAreas ( ) const
inlinenoexcept

Patch areas.

Definition at line 60 of file raySearchEngineI.H.

References Foam::noexcept, and patchAreas_.

Referenced by ~raySearchEngine().

Here is the caller graph for this function:

◆ nParticipatingFaces()

Foam::label nParticipatingFaces ( ) const
inline

Number of participating faces.

Definition at line 66 of file raySearchEngineI.H.

References nCoarseFace_, and nFace_.

Referenced by ~raySearchEngine().

Here is the caller graph for this function:

◆ allCf()

const Foam::List< Foam::pointField > & allCf ( ) const
inlinenoexcept

List of all face centres per processor.

Definition at line 74 of file raySearchEngineI.H.

References allCf_, and Foam::noexcept.

Referenced by ~raySearchEngine().

Here is the caller graph for this function:

◆ allSf()

const Foam::List< Foam::vectorField > & allSf ( ) const
inlinenoexcept

List of all face areas per processor.

Definition at line 81 of file raySearchEngineI.H.

References allSf_, and Foam::noexcept.

Referenced by ~raySearchEngine().

Here is the caller graph for this function:

◆ allAgg()

const Foam::List< Foam::labelField > & allAgg ( ) const
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().

Here is the caller graph for this function:

◆ shootRays()

virtual void shootRays ( labelList & rayStartFaceOut,
labelList & rayEndFaceOut ) const
pure virtual

Shoot rays; returns lists of ray start and end faces.

Implemented in voxel.

References shootRays().

Referenced by shootRays().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ correct()

virtual void correct ( labelListList & visibleFaceFaces) const
virtual

Correct.

References correct().

Referenced by correct().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ compactAddressing()

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().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ interpolate()

template<class Type>
void interpolate ( GeometricField< Type, fvPatchField, volMesh > & fld,
const List< List< Type > > & values ) const

Interpolate field.

References fld(), and interpolate().

Referenced by interpolate().

Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ mesh_

const fvMesh& mesh_
protected

Reference to the mesh.

Definition at line 81 of file raySearchEngine.H.

Referenced by mesh().

◆ mapPtr_

autoPtr<mapDistribute> mapPtr_
mutableprotected

Parallel map.

Definition at line 86 of file raySearchEngine.H.

Referenced by map().

◆ compactToGlobal_

labelList compactToGlobal_
mutableprotected

Compact to global addressing.

Definition at line 91 of file raySearchEngine.H.

Referenced by compactToGlobal().

◆ globalNumbering_

globalIndex globalNumbering_
protected

Global numbering.

Definition at line 96 of file raySearchEngine.H.

Referenced by globalNumbering().

◆ patchGroup_

const word patchGroup_
protected

Name of patch group to identify participating patches.

Definition at line 101 of file raySearchEngine.H.

◆ patchIDs_

labelList patchIDs_
protected

List of participating patch IDs.

Definition at line 106 of file raySearchEngine.H.

Referenced by patchIDs().

◆ patchAreas_

scalarList patchAreas_
protected

Patch areas.

Definition at line 111 of file raySearchEngine.H.

Referenced by patchAreas().

◆ agglomerate_

bool agglomerate_
protected

Agglomeration flag.

Definition at line 116 of file raySearchEngine.H.

◆ agglomMeshPtr_

autoPtr<singleCellFvMesh> agglomMeshPtr_
protected

Agglomerated mesh representation.

Definition at line 121 of file raySearchEngine.H.

◆ nFace_

label nFace_
protected

Number of original faces.

Definition at line 126 of file raySearchEngine.H.

Referenced by nParticipatingFaces().

◆ nCoarseFace_

label nCoarseFace_
protected

Number of coarse faces.

Definition at line 131 of file raySearchEngine.H.

Referenced by nParticipatingFaces().

◆ allCf_

List<pointField> allCf_
protected

List of all face centres per processor.

Definition at line 136 of file raySearchEngine.H.

Referenced by allCf().

◆ allSf_

List<vectorField> allSf_
protected

List of all face areas per processor.

Definition at line 141 of file raySearchEngine.H.

Referenced by allSf().

◆ allAgg_

List<labelField> allAgg_
protected

List of all face agglomeration index per processor.

Definition at line 146 of file raySearchEngine.H.

Referenced by allAgg().

◆ maxDynListLength

const label maxDynListLength
static

Definition at line 193 of file raySearchEngine.H.


The documentation for this class was generated from the following files:
  • applications/utilities/preProcessing/createViewFactors/viewFactorModels/raySearchEngine/raySearchEngine/raySearchEngine.H
  • applications/utilities/preProcessing/createViewFactors/viewFactorModels/raySearchEngine/raySearchEngine/raySearchEngineI.H