33 void Foam::faPatchMapper::calcAddressing()
const 38 <<
"Addressing already calculated" 45 directAddrPtr_ = std::make_unique<labelList>(patch_.
size(),
Foam::zero{});
46 auto& addr = *directAddrPtr_;
52 Map<label> edgeIndexLookup;
56 forAll(oldEdgeFaces_, oefI)
58 if (reverseFaceMap[oldEdgeFaces_[oefI]] > -1)
61 edgeIndexLookup.insert(reverseFaceMap[oldEdgeFaces_[oefI]], oefI);
70 const auto iter = edgeIndexLookup.cfind(ef[efI]);
74 addr[efI] = iter.val();
105 sizeBeforeMapping_(
patch.size()),
126 return *directAddrPtr_;
133 <<
"Requested interpolative addressing for a direct mapper." 143 <<
"Requested interpolative weights for a direct mapper." faPatchMapper(const faPatchMapper &)=delete
No copy construct.
virtual ~faPatchMapper()
Destructor.
error FatalError
Error stream (stdout output on all processes), with additional 'FOAM FATAL ERROR' header text and sta...
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
virtual label size() const
Patch size is the number of edge labels, but can be overloaded.
Class containing mesh-to-mesh mapping information after a change in polyMesh topology.
#define forAll(list, i)
Loop across all elements in list.
const labelList & reverseFaceMap() const noexcept
Reverse face map.
virtual const labelUList & directAddressing() const
Return direct addressing.
const labelUList & edgeFaces() const
Return edge-face addressing.
errorManip< error > abort(error &err)
Finite area patch class. Used for 2-D non-Euclidian finite area method.
const std::string patch
OpenFOAM patch number as a std::string.
A class representing the concept of 0 (zero) that can be used to avoid manipulating objects known to ...
List< label > labelList
A List of labels.
virtual const scalarListList & weights() const
Return interpolation weights.
static const List< labelList > & null() noexcept
Return a null List (reference to a nullObject). Behaves like an empty List.
virtual const labelListList & addressing() const
Return interpolated addressing.