38#ifndef Foam_lduPrimitiveMesh_H
39#define Foam_lduPrimitiveMesh_H
85 label findConnectedInterface
97 lduPrimitiveMesh(
const lduPrimitiveMesh&) =
delete;
100 void operator=(
const lduPrimitiveMesh&) =
delete;
114 explicit lduPrimitiveMesh(
const label nCells);
193 virtual bool hasDb()
const
227 return primitiveInterfaces_;
271 return interfaces_[i].faceCells();
277 return patchSchedule_;
295 const label agglomComm,
301 template<
class ProcPatch>
A list of pointers to objects of type <T>, with allocation/deallocation management of the pointers....
Calculates a non-overlapping list of offsets based on an input size (eg, number of cells) from differ...
The class contains the addressing required by the lduMatrix: upper, lower and losort.
lduAddressing(const lduAddressing &)=delete
No copy construct.
label size() const noexcept
Return number of equations.
Abstract base class for meshes which provide LDU addressing for the construction of lduMatrix and LDU...
virtual const labelUList & upperAddr() const
Return Upper addressing.
static void checkUpperTriangular(const label size, const labelUList &l, const labelUList &u)
Check if in upper-triangular ordering.
const lduInterfacePtrsList & rawInterfaces() const
Return a list of pointers for each patch.
ClassName("lduPrimitiveMesh")
static labelListList globalCellCells(const lduMesh &mesh, const globalIndex &globalNumbering)
Calculate global cell-cells.
void addInterfaces(lduInterfacePtrsList &interfaces, const lduSchedule &ps)
Add interfaces to a mesh constructed without.
virtual ~lduPrimitiveMesh()=default
Destructor.
static void gather(const label agglomComm, const lduMesh &mesh, PtrList< lduPrimitiveMesh > &otherMeshes)
Gather meshes from other processors using agglomComm.
PtrList< const lduInterface > & primitiveInterfaces()
Return a non-const list of primitive interfaces.
virtual labelList & upperAddr()
Return non-const Upper addressing.
static labelList upperTriOrder(const label nCells, const labelUList &lower, const labelUList &upper)
Calculate upper-triangular order.
virtual lduInterfacePtrsList & interfaces()
Return a non-const list of pointers for each patch with only those pointing to interfaces being set.
virtual const lduSchedule & patchSchedule() const
Return patch evaluation schedule.
virtual const labelUList & patchAddr(const label i) const
Return patch addressing.
virtual label comm() const
Return communicator used for parallel communication.
static lduSchedule nonBlockingSchedule(const lduInterfacePtrsList &)
Get non-scheduled send/receive schedule.
static const lduMesh & mesh(const lduMesh &mesh0, const PtrList< lduPrimitiveMesh > &otherMeshes, const label meshI)
Select either mesh0 (meshI is 0) or otherMeshes[meshI-1].
virtual lduInterfacePtrsList interfaces() const
Return a list of pointers for each patch with only those pointing to interfaces being set.
virtual bool hasDb() const
Return true if thisDb() is a valid DB.
virtual const lduAddressing & lduAddr() const
Return ldu addressing.
virtual lduAddressing & lduAddr()
Return non-const ldu addressing.
virtual const labelUList & lowerAddr() const
Return Lower addressing.
virtual labelList & lowerAddr()
Return non-const Lower addressing.
#define ClassName(TypeNameString)
Add typeName information from argument TypeNameString to a class.
Pair< int > faceMap(const label facePi, const face &faceP, const label faceNi, const face &faceN)
List< labelPair > labelPairList
List of labelPair.
List< labelList > labelListList
List of labelList.
List< label > labelList
A List of labels.
List< labelListList > labelListListList
List of labelListList.
UPtrList< const lduInterface > lduInterfacePtrsList
Store lists of lduInterface as a UPtrList.
List< lduScheduleEntry > lduSchedule
A List of lduSchedule entries.
UList< label > labelUList
A UList of labels.