fvMeshPrimitiveLduAddressing Class Reference

Variant of fvMeshLduAddressing that contains addressing instead of slices. More...

Inheritance diagram for fvMeshPrimitiveLduAddressing:
[legend]
Collaboration diagram for fvMeshPrimitiveLduAddressing:
[legend]

Public Member Functions

 fvMeshPrimitiveLduAddressing (const fvMesh &mesh)
 Construct from mesh. More...
 
 fvMeshPrimitiveLduAddressing (const label nCells, labelList &&lowerAddr, labelList &&upperAddr, const UPtrList< const labelUList > &patchAddr, const lduSchedule &ps)
 Construct from components. More...
 
virtual ~fvMeshPrimitiveLduAddressing ()=default
 Destructor. More...
 
virtual const labelUListlowerAddr () const noexcept
 Return lower addressing (i.e. lower label = upper triangle) More...
 
virtual const labelUListupperAddr () const noexcept
 Return upper addressing (i.e. upper label) More...
 
virtual const labelUListpatchAddr (const label patchi) const
 Return patch addressing for given patch. More...
 
virtual const lduSchedulepatchSchedule () const noexcept
 Return patch field evaluation schedule. More...
 
- Public Member Functions inherited from lduAddressing
 lduAddressing (const label nEqns)
 Construct with size (number of equations) More...
 
virtual ~lduAddressing ()
 Destructor. More...
 
label size () const
 Return number of equations. More...
 
void clearOut ()
 Clear additional addressing. More...
 
const labelUListlosortAddr () const
 Return losort addressing. More...
 
const labelUListownerStartAddr () const
 Return owner start addressing. More...
 
const labelUListlosortStartAddr () const
 Return losort start addressing. More...
 
label triIndex (const label a, const label b) const
 Return off-diagonal index given owner and neighbour label. More...
 
Tuple2< label, scalar > band () const
 Calculate bandwidth and profile of addressing. More...
 

Static Public Member Functions

static labelList addAddressing (const lduAddressing &addr, const labelListList &nbrCells, label &nExtraFaces, labelList &lower, labelList &upper, labelListList &nbrCellFaces, const globalIndex &, const labelList &globalCellIDs, labelListList &localFaceCells, labelListList &remoteFaceCells)
 
static label triIndex (const lduAddressing &, const label, const label)
 Return off-diagonal index given owner and neighbour label. More...
 

Detailed Description

Variant of fvMeshLduAddressing that contains addressing instead of slices.

Alternatively use lduPrimitiveMesh but that assumes there are only lduInterfaces and not also generic patches.

Source files

Definition at line 57 of file fvMeshPrimitiveLduAddressing.H.

Constructor & Destructor Documentation

◆ fvMeshPrimitiveLduAddressing() [1/2]

fvMeshPrimitiveLduAddressing ( const fvMesh mesh)
explicit

Construct from mesh.

Definition at line 36 of file fvMeshPrimitiveLduAddressing.C.

◆ fvMeshPrimitiveLduAddressing() [2/2]

fvMeshPrimitiveLduAddressing ( const label  nCells,
labelList &&  lowerAddr,
labelList &&  upperAddr,
const UPtrList< const labelUList > &  patchAddr,
const lduSchedule ps 
)

Construct from components.

Definition at line 56 of file fvMeshPrimitiveLduAddressing.C.

◆ ~fvMeshPrimitiveLduAddressing()

virtual ~fvMeshPrimitiveLduAddressing ( )
virtualdefault

Destructor.

Member Function Documentation

◆ lowerAddr()

virtual const labelUList& lowerAddr ( ) const
inlinevirtualnoexcept

Return lower addressing (i.e. lower label = upper triangle)

Implements lduAddressing.

Definition at line 113 of file fvMeshPrimitiveLduAddressing.H.

Referenced by dynamicOversetFvMesh::active().

Here is the caller graph for this function:

◆ upperAddr()

virtual const labelUList& upperAddr ( ) const
inlinevirtualnoexcept

Return upper addressing (i.e. upper label)

Implements lduAddressing.

Definition at line 119 of file fvMeshPrimitiveLduAddressing.H.

◆ patchAddr()

virtual const labelUList& patchAddr ( const label  patchi) const
inlinevirtual

Return patch addressing for given patch.

Implements lduAddressing.

Definition at line 125 of file fvMeshPrimitiveLduAddressing.H.

◆ patchSchedule()

virtual const lduSchedule& patchSchedule ( ) const
inlinevirtualnoexcept

Return patch field evaluation schedule.

Implements lduAddressing.

Definition at line 131 of file fvMeshPrimitiveLduAddressing.H.

◆ addAddressing()

Foam::labelList addAddressing ( const lduAddressing addr,
const labelListList nbrCells,
label &  nExtraFaces,
labelList lower,
labelList upper,
labelListList nbrCellFaces,
const globalIndex globalNumbering,
const labelList globalCellIDs,
labelListList localFaceCells,
labelListList remoteFaceCells 
)
static

Given additional addressing (in the form of additional neighbour cells, i.e. like cellCells)

  • add any additional faces
  • sort in upper-triangular order
  • construct cell-faces equivalent of given nbrCells (so e.g. nbrCellFaces[cellI][0] is the face corresponding to the cell nbrCells[cellI][0]) (note: face in nbrCellFaces is -1 if the nbrCell is not local)
  • construct additional processor interface addressing: per processor the local and the remote cell.
  • return old-to-new face mapping

Definition at line 101 of file fvMeshPrimitiveLduAddressing.C.

References forAll, Foam::ListListOps::inplaceRenumber(), Foam::inplaceReorder(), lduAddressing::lowerAddr(), Foam::max(), Foam::min(), List< T >::setSize(), UList< T >::size(), lduAddressing::size(), globalIndex::toLocal(), lduAddressing::upperAddr(), globalIndex::whichProcID(), and Foam::Zero.

Referenced by dynamicOversetFvMesh::updateAddressing().

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

◆ triIndex()

Foam::label triIndex ( const lduAddressing addr,
const label  a,
const label  b 
)
static

Return off-diagonal index given owner and neighbour label.

Returns
-1 if not found

Definition at line 75 of file fvMeshPrimitiveLduAddressing.C.

References Foam::constant::physicoChemical::b, Foam::max(), Foam::min(), lduAddressing::ownerStartAddr(), and lduAddressing::upperAddr().

Here is the call graph for this function:

The documentation for this class was generated from the following files: