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) |
![]() | |
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... | |
![]() | |
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.
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().