Simplest contrete lduMesh which stores the addressing needed by lduMatrix. More...
Public Member Functions | |
ClassName ("lduPrimitiveMesh") | |
lduPrimitiveMesh (const label nCells, labelList &l, labelList &u, const label comm, bool reuse) | |
Construct from components but without interfaces. Add interfaces. More... | |
void | addInterfaces (lduInterfacePtrsList &interfaces, const lduSchedule &ps) |
Add interfaces to a mesh constructed without. More... | |
lduPrimitiveMesh (const label nCells, labelList &l, labelList &u, PtrList< const lduInterface > &primitiveInterfaces, const lduSchedule &ps, const label comm) | |
Construct from components and re-use storage. More... | |
lduPrimitiveMesh (const label comm, const labelList &procAgglomMap, const labelList &procIDs, const lduMesh &myMesh, const PtrList< lduPrimitiveMesh > &otherMeshes, labelList &cellOffsets, labelList &faceOffsets, labelListList &faceMap, labelListList &boundaryMap, labelListListList &boundaryFaceMap) | |
Construct by combining multiple meshes. The meshes come from. More... | |
lduPrimitiveMesh (const lduPrimitiveMesh &)=delete | |
Disallow default bitwise copy construction. More... | |
virtual | ~lduPrimitiveMesh () |
Destructor. More... | |
virtual const lduAddressing & | lduAddr () const |
Return ldu addressing. More... | |
virtual lduInterfacePtrsList | interfaces () const |
Return a list of pointers for each patch. More... | |
const lduInterfacePtrsList & | rawInterfaces () const |
Return a list of pointers for each patch. More... | |
virtual label | comm () const |
Return communicator used for parallel communication. More... | |
virtual const labelUList & | lowerAddr () const |
Return Lower addressing. More... | |
virtual const labelUList & | upperAddr () const |
Return Upper addressing. More... | |
virtual const labelUList & | patchAddr (const label i) const |
Return patch addressing. More... | |
virtual const lduSchedule & | patchSchedule () const |
Return patch evaluation schedule. More... | |
void | operator= (const lduPrimitiveMesh &)=delete |
Disallow default bitwise assignment. More... | |
template<class ProcPatch > | |
Foam::lduSchedule | nonBlockingSchedule (const lduInterfacePtrsList &interfaces) |
Public Member Functions inherited from lduMesh | |
TypeName ("lduMesh") | |
Runtime type information. More... | |
virtual | ~lduMesh () |
Destructor. More... | |
virtual const objectRegistry & | thisDb () const |
Return the object registry. More... | |
template<class T , class BinaryOp > | |
void | reduce (T &Value, const BinaryOp &bop) const |
Helper: reduce with current communicator. More... | |
InfoProxy< lduMesh > | info () const |
Return info proxy. More... | |
Public Member Functions inherited from lduAddressing | |
lduAddressing (const label nEqns) | |
lduAddressing (const lduAddressing &)=delete | |
Disallow default bitwise copy construction. More... | |
virtual | ~lduAddressing () |
Destructor. More... | |
label | size () const |
Return number of equations. More... | |
const labelUList & | losortAddr () const |
Return losort addressing. More... | |
const labelUList & | ownerStartAddr () const |
Return owner start addressing. More... | |
const labelUList & | losortStartAddr () 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... | |
void | operator= (const lduAddressing &)=delete |
Disallow default bitwise assignment. More... | |
Static Public Member Functions | |
static const lduMesh & | mesh (const lduMesh &mesh0, const PtrList< lduPrimitiveMesh > &otherMeshes, const label meshI) |
Select either mesh0 (meshI is 0) or otherMeshes[meshI-1]. More... | |
static void | gather (const label comm, const lduMesh &mesh, const labelList &procIDs, PtrList< lduPrimitiveMesh > &otherMeshes) |
Gather meshes from other processors onto procIDs[0]. More... | |
template<class ProcPatch > | |
static lduSchedule | nonBlockingSchedule (const lduInterfacePtrsList &) |
Get non-scheduled send/receive schedule. More... | |
Simplest contrete lduMesh which stores the addressing needed by lduMatrix.
Definition at line 49 of file lduPrimitiveMesh.H.
lduPrimitiveMesh | ( | const label | nCells, |
labelList & | l, | ||
labelList & | u, | ||
const label | comm, | ||
bool | reuse | ||
) |
Construct from components but without interfaces. Add interfaces.
separately using addInterfaces
Definition at line 204 of file lduPrimitiveMesh.C.
References lduPrimitiveMesh::addInterfaces().
Referenced by lduPrimitiveMesh::addInterfaces(), lduPrimitiveMesh::lduPrimitiveMesh(), and procLess::operator()().
lduPrimitiveMesh | ( | const label | nCells, |
labelList & | l, | ||
labelList & | u, | ||
PtrList< const lduInterface > & | primitiveInterfaces, | ||
const lduSchedule & | ps, | ||
const label | comm | ||
) |
Construct from components and re-use storage.
Definition at line 241 of file lduPrimitiveMesh.C.
References forAll, and lduPrimitiveMesh::lduPrimitiveMesh().
lduPrimitiveMesh | ( | const label | comm, |
const labelList & | procAgglomMap, | ||
const labelList & | procIDs, | ||
const lduMesh & | myMesh, | ||
const PtrList< lduPrimitiveMesh > & | otherMeshes, | ||
labelList & | cellOffsets, | ||
labelList & | faceOffsets, | ||
labelListList & | faceMap, | ||
labelListList & | boundaryMap, | ||
labelListListList & | boundaryFaceMap | ||
) |
Construct by combining multiple meshes. The meshes come from.
processors procIDs: procIDs[0] : local processor (myMesh) procIDs[i] : processor where otherMeshes[i-1] comes from procAgglomMap : for every processor which processor it agglomerates onto. The new processor numbers are in compact numbering (so ranks in communicator comm), i.e. similar to cell-restrict-addressing. We need this information to be able to map inter-processor interfaces cellOffsets : for every processor the offset it gets in the mesh faceMap : for every processor, for every face, the destination face. Negative for flipped faces. boundaryMap : for every processor, for every patch, -1 or the new patch index in the mesh. boundaryFaceMap : for every processor, for every patch, for every patch face:
Definition at line 272 of file lduPrimitiveMesh.C.
References Foam::abort(), lduMesh::comm(), HashTableCore::end(), Foam::endl(), Foam::exit(), lduInterface::faceCells(), Foam::FatalError, FatalErrorInFunction, HashTable< T, Key, Hash >::find(), Foam::findIndex(), Foam::findIndices(), forAll, forAllConstIter(), Foam::inplaceReorder(), HashTable< T, edge, Hash< edge > >::insert(), lduMesh::interfaces(), UList< T >::last(), lduMesh::lduAddr(), lduAddressing::lowerAddr(), Foam::max(), mesh, lduPrimitiveMesh::mesh(), Foam::min(), UPstream::msgType(), processorLduInterface::myProcNo(), UPstream::myProcNo(), n, processorLduInterface::neighbProcNo(), Foam::Pout, UPtrList< T >::set(), List< T >::setSize(), UPtrList< T >::size(), List< T >::size(), lduAddressing::size(), UList< T >::size(), Foam::sortedOrder(), lduAddressing::upperAddr(), and WarningInFunction.
|
delete |
Disallow default bitwise copy construction.
|
inlinevirtual |
Destructor.
Definition at line 177 of file lduPrimitiveMesh.H.
ClassName | ( | "lduPrimitiveMesh" | ) |
void addInterfaces | ( | lduInterfacePtrsList & | interfaces, |
const lduSchedule & | ps | ||
) |
Add interfaces to a mesh constructed without.
Definition at line 220 of file lduPrimitiveMesh.C.
References forAll, lduPrimitiveMesh::lduPrimitiveMesh(), and List< T >::setSize().
Referenced by lduPrimitiveMesh::lduPrimitiveMesh().
|
inlinevirtual |
Return ldu addressing.
Implements lduMesh.
Definition at line 186 of file lduPrimitiveMesh.H.
References lduPrimitiveMesh::interfaces(), and lduPrimitiveMesh::rawInterfaces().
|
inlinevirtual |
Return a list of pointers for each patch.
with only those pointing to interfaces being set
Implements lduMesh.
Definition at line 193 of file lduPrimitiveMesh.H.
Referenced by lduPrimitiveMesh::lduAddr().
|
inline |
Return a list of pointers for each patch.
with only those pointing to interfaces being set (reference to cached interfaces)
Definition at line 201 of file lduPrimitiveMesh.H.
Referenced by lduPrimitiveMesh::lduAddr().
|
inlinevirtual |
Return communicator used for parallel communication.
Implements lduMesh.
Definition at line 207 of file lduPrimitiveMesh.H.
|
inlinevirtual |
Return Lower addressing.
Implements lduAddressing.
Definition at line 213 of file lduPrimitiveMesh.H.
|
inlinevirtual |
Return Upper addressing.
Implements lduAddressing.
Definition at line 219 of file lduPrimitiveMesh.H.
|
inlinevirtual |
Return patch addressing.
Implements lduAddressing.
Definition at line 225 of file lduPrimitiveMesh.H.
|
inlinevirtual |
Return patch evaluation schedule.
Implements lduAddressing.
Definition at line 231 of file lduPrimitiveMesh.H.
References lduPrimitiveMesh::gather(), lduPrimitiveMesh::mesh(), lduPrimitiveMesh::nonBlockingSchedule(), and lduPrimitiveMesh::operator=().
|
static |
Select either mesh0 (meshI is 0) or otherMeshes[meshI-1].
Definition at line 963 of file lduPrimitiveMesh.C.
References lduPrimitiveMesh::gather().
Referenced by lduPrimitiveMesh::lduPrimitiveMesh(), and lduPrimitiveMesh::patchSchedule().
|
static |
Gather meshes from other processors onto procIDs[0].
Received meshes get GAMGInterface and communicator comm
Definition at line 974 of file lduPrimitiveMesh.C.
References Foam::findIndex(), forAll, lduMesh::interfaces(), lduMesh::lduAddr(), lduAddressing::lowerAddr(), UPstream::msgType(), UPstream::myProcNo(), GAMGInterface::New(), lduAddressing::patchSchedule(), Foam::readLabel(), Foam::refCast(), UPstream::scheduled, UPtrList< T >::set(), PtrList< T >::set(), PtrList< T >::setSize(), UPtrList< T >::size(), List< T >::size(), lduAddressing::size(), lduAddressing::upperAddr(), and UOPstream::write().
Referenced by lduPrimitiveMesh::mesh(), and lduPrimitiveMesh::patchSchedule().
|
static |
Get non-scheduled send/receive schedule.
Referenced by lduPrimitiveMesh::patchSchedule().
|
delete |
Disallow default bitwise assignment.
Referenced by lduPrimitiveMesh::patchSchedule().
Foam::lduSchedule nonBlockingSchedule | ( | const lduInterfacePtrsList & | interfaces | ) |
Definition at line 32 of file lduPrimitiveMeshTemplates.C.
References forAll, UPtrList< T >::set(), and UPtrList< T >::size().