63 label firstFullySubmergedPoint = -1;
69 scalar value = (mesh_.
points()[
f[i]] - base) & normal;
70 if (
mag(value) < SMALL)
75 pointStatus_.
append(value);
76 if (pointStatus_[i] > 0)
79 if (firstFullySubmergedPoint == -1)
81 firstFullySubmergedPoint = i;
86 if (inLiquid ==
f.size())
89 subFaceCentre_ = mesh_.faceCentres()[faceI];
90 subFaceArea_ = mesh_.faceAreas()[faceI];
93 else if (inLiquid == 0)
96 subFaceCentre_ =
Zero;
106 firstFullySubmergedPoint,
120 subFaceCentre_ =
Zero;
122 subFacePoints_.clear();
123 surfacePoints_.clear();
124 pointStatus_.clear();
void append(const T &val)
Copy append an element to the end of this list.
cutFacePLIC(const fvMesh &mesh)
Construct from fvMesh and a scalarField.
label calcSubFace(const label faceI, const vector &normal, const vector &base)
Calculate cut points along edges of faceI.
void clearStorage()
Resets internal variables.
void calcSubFace(const label faceI, const scalarList &pointStatus, label firstFullySubmergedPoint, DynamicList< point > &subFacePoints, DynamicList< point > &surfacePoints, label &faceStatus, vector &subFaceCentre, vector &subFaceArea)
Calculate cut points along edges of face with pointStatus, pointfield and computes geometric informat...
cutFace(const fvMesh &mesh)
Construct from fvMesh.
A face is a list of labels corresponding to mesh vertices.
Mesh data needed to do the Finite Volume discretisation.
virtual const faceList & faces() const
Return raw faces.
virtual const pointField & points() const
Return raw points.
dimensioned< typename typeOfMag< Type >::type > mag(const dimensioned< Type > &dt)
static constexpr const zero Zero
Global zero (0).
#define forAll(list, i)
Loop across all elements in list.