60 label jPlus1 =
f.fcIndex(j);
61 scalar l =
mag(u[j] - u[jPlus1]);
68 label
pid = toLocal[
f[j]];
69 label jMin1 =
f.rcIndex(j);
88 const Map<label>& toLocal,
96 DynamicList<scalar>
alpha(100);
97 DynamicList<scalar> theta(100);
98 DynamicList<point> u(100);
104 label facei = cFaces[iter];
114 u(j) = uVec[toLocal[
f[j]]];
123 vector temp = u[j] ^ u[jPlus1];
125 scalar magTemp =
mag(temp);
127 if (magTemp < VSMALL)
137 scalar l =
min(
mag(u[j] - u[jPlus1]), 2.0);
145 scalar vNorm =
mag(v);
164 scalar l =
min(
mag(n0 - n1), 2.0);
174 l =
min(
mag(u[j] - v), 2.0);
180 bool outlierFlag =
false;
183 if (
mag(theta[j]) < tol)
187 label
pid = toLocal[
f[j]];
188 weights[
pid] += vNorm / dist[
pid];
213 calcWeights(toLocal,
f, u, dist, weights);
221 label
pid = toLocal[
f[j]];
233 scalar sumWeight =
sum(weights);
235 if (
mag(sumWeight) < tol)
239 weights /= sumWeight;
249 const label cellIndex,
250 const label faceIndex
253 cellIndex_((cellIndex != -1) ? cellIndex :
mesh.faceOwner()[faceIndex])
260 toLocal.insert(toGlobal[i], i);
277 uVec[
pid] = pt-position;
309 DynamicList<point> u(100);
310 const face&
f =
mesh.faces()[faceIndex];
314 u(j) = uVec[toLocal[
f[j]]];
void size(const label n)
Older name for setAddressableSize.
A face is a list of labels corresponding to mesh vertices.
dimensioned< typename typeOfMag< Type >::type > mag(const dimensioned< Type > &dt)
defineDebugSwitchWithName(pointMVCWeight, "pointMVCWeight", 0)
label size() const noexcept
The number of elements in table.
const cellList & cells() const
quaternion normalised(const quaternion &q)
Return the normalised (unit) quaternion of the given quaternion.
static scalar tol
Tolerance used in calculating barycentric coordinates.
scalarField weights_
Weights applied to cell vertices.
dimensionedScalar asin(const dimensionedScalar &ds)
dimensioned< Type > sum(const DimensionedField< Type, GeoMesh > &df)
#define forAll(list, i)
Loop across all elements in list.
label fcIndex(const label i) const noexcept
The forward circular index. The next index in the list which returns to the first at the end of the l...
void setSize(const label n)
Alias for resize()
pointMVCWeight(const polyMesh &mesh, const vector &position, const label celli, const label facei=-1)
Construct from components.
Field< scalar > scalarField
Specialisation of Field<T> for scalar.
virtual const faceList & faces() const
Return raw faces.
label min(const labelHashSet &set, label minValue=labelMax)
Find the min value in labelHashSet, optionally limited by second argument.
pid_t pid()
Return the PID of this process.
dimensionedScalar sin(const dimensionedScalar &ds)
A Vector of values with scalar precision, where scalar is float/double depending on the compilation f...
const label cellIndex_
Cell index.
void calcWeights(const Map< label > &toLocal, const face &f, const DynamicList< point > &u, const scalarField &dist, scalarField &weights) const
Calculate weights from single face's vertices only.
vector point
Point is a vector.
A cell is defined as a list of faces with extra functionality.
Field< vector > vectorField
Specialisation of Field<T> for vector.
Mesh consisting of general polyhedral cells.
List< label > labelList
A List of labels.
label rcIndex(const label i) const noexcept
The reverse circular index. The previous index in the list which returns to the last at the beginning...
dimensionedScalar tan(const dimensionedScalar &ds)
const dimensionedScalar alpha
Fine-structure constant: default SI units: [].
const scalarField & weights() const noexcept
Interpolation weights (in order of cellPoints)
static constexpr const zero Zero
Global zero (0)