45 stabilisation_(false),
46 localStabilisationCells_(),
47 stabilisationMapPtr_(nullptr)
66 stabilisation_ =
false;
67 forAll(faceCoupleds, facei)
69 if (!faceCoupleds[facei])
71 stabilisation_ =
true;
78 if (!stabilisation_)
return;
95 if (faceCoupleds[facei])
97 initialEdges.
append(edgei);
117 forAll(faceCoupleds, facei)
119 if (faceCoupleds[facei])
142 forAll(faceCoupleds, facei)
144 if (!faceCoupleds[facei] && !faceInfos[facei].
valid(
wave.data()))
147 <<
"Un-mapped face " << facei <<
" of patch " << patch.
name()
149 <<
"at " << patch.
faceCentres()[facei] <<
" was not connected "
150 <<
"to a mapped cell by the stabilisation wave. This "
151 <<
"indicates that an entire non-contiguous region of patch "
152 <<
"lies outside of the other patch being mapped to. This is "
159 localStabilisationCells_.resize(patch.
size());
160 forAll(faceCoupleds, facei)
163 localStabilisationCells_[facei] =
173 stabilisationMapPtr_.reset
178 localStabilisationCells_,
189 typeName +
"_" + patch.
name()
200 const point&
c = fcs[celli];
201 if (
magSqr(
c - fcs[celli]) == 0)
continue;
#define forAll(list, i)
Loop across all elements in list.
DynamicList< T, SizeInc, SizeMult, SizeDiv > & append(const T &)
Append an element at the end of the list.
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
OFstream which keeps track of vertices.
virtual Ostream & write(const char)
Write character.
Transport of nearest point location, plus data, for use in PatchEdgeFaceWave.
Wave propagation of information along patch. Every iteration information goes through one layer of fa...
label nEdges() const
Return number of edges in patch.
const edgeList & edges() const
Return list of edges, address into LOCAL point list.
const labelListList & edgeFaces() const
Return edge-face addressing.
const Field< PointType > & localPoints() const
Return pointField of points in patch.
label size() const
Return the number of elements in the UList.
T * data()
Return a pointer to the first data element,.
static bool & parRun()
Is this a parallel run?
static int myProcNo(const label communicator=0)
Number of this process (starting from masterNo() = 0)
Class containing processor-to-processor mapping information.
Calculates a unique integer (label so might not have enough room - 2G max) for processor + local inde...
label toGlobal(const label i) const
From local to global.
const word & name() const
Return name.
Stabilisation data and routines for patch-to-patch interpolations.
void update(const polyPatch &patch, const PackedBoolList &faceCoupleds)
Compute the stabilisation addressing if necessary.
virtual ~patchToPatchStabilisation()
Destructor.
patchToPatchStabilisation()
Construct null.
const polyMesh & mesh() const
Return the mesh reference.
A patch is a list of labels that address the faces in the global face list.
const polyBoundaryMesh & boundaryMesh() const
Return boundaryMesh reference.
const vectorField::subField faceCentres() const
Return face centres.
Struct for keeping processor, element (cell, face, point) index.
label elementi
Element index.
label proci
Processor index.
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
bool valid(const PtrList< ModelType > &l)
const dimensionedScalar c
Speed of light in a vacuum.
label wave(const fvMesh &mesh, const List< labelPair > &changedPatchAndFaces, const label nCorrections, GeometricField< scalar, PatchField, GeoMesh > &distance, TrackingData &td, GeometricField< DataType, PatchField, GeoMesh > &... data)
Wave distance (and maybe additional) data from faces. If nCorrections is.
errorManipArg< error, int > exit(error &err, const int errNo=1)
tmp< DimensionedField< scalar, GeoMesh > > stabilise(const DimensionedField< scalar, GeoMesh > &dsf, const dimensioned< scalar > &ds)
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
line< point, const point & > linePointRef
Line using referred points.
word name(const bool)
Return a word representation of a bool.
void reduce(const List< UPstream::commsStruct > &comms, T &Value, const BinaryOp &bop, const int tag, const label comm)
T returnReduce(const T &Value, const BinaryOp &bop, const int tag=Pstream::msgType(), const label comm=UPstream::worldComm)
defineTypeNameAndDebug(combustionModel, 0)
dimensioned< scalar > magSqr(const dimensioned< Type > &)