103#ifndef lduAddressing_H
104#define lduAddressing_H
130 mutable std::unique_ptr<labelList> losortPtr_;
133 mutable std::unique_ptr<labelList> ownerStartPtr_;
136 mutable std::unique_ptr<labelList> losortStartPtr_;
139 mutable std::unique_ptr<labelList> lowerCSRAddrPtr_;
145 void calcLosort()
const;
148 void calcOwnerStart()
const;
151 void calcLosortStart()
const;
154 void calcLoCSR()
const;
220 label
triIndex(
const label a,
const label
b)
const;
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
A 2-tuple for storing two objects of dissimilar types. The container is similar in purpose to std::pa...
A 1D vector of objects of type <T>, where the size of the vector is known and can be used for subscri...
void map(const UList< Type > &faceVals, List< Type > &vals) const
Helper to convert lower addressing & data into CSR format.
const labelUList & ownerStartAddr() const
Return owner start addressing.
virtual const lduSchedule & patchSchedule() const =0
Return patch field evaluation schedule.
lduAddressing(const label nEqns) noexcept
Construct with size (number of equations).
const labelUList & losortStartAddr() const
Return losort start addressing.
void operator=(const lduAddressing &)=delete
No copy assignment.
Tuple2< label, scalar > band() const
Calculate bandwidth and profile of addressing.
virtual const labelUList & upperAddr() const =0
Return upper addressing.
lduAddressing(const lduAddressing &)=delete
No copy construct.
virtual const labelUList & lowerAddr() const =0
Return lower addressing.
const labelUList & lowerCSRAddr() const
Return CSR addressing.
virtual const labelUList & patchAddr(const label patchNo) const =0
Return patch to internal addressing given patch number.
label size() const noexcept
Return number of equations.
virtual ~lduAddressing()=default
Destructor.
const labelUList & losortAddr() const
Return losort addressing.
void clearOut()
Clear additional addressing.
label triIndex(const label a, const label b) const
Return off-diagonal index given owner and neighbour label.
List< lduScheduleEntry > lduSchedule
A List of lduSchedule entries.
UList< label > labelUList
A UList of labels.