59 scalar l =
mag(u[j] - u[jPlus1]);
67 label jMin1 = f.rcIndex(j);
72 sumWeight += weights[
pid];
102 label facei = cFaces[iter];
112 u(j) = uVec[toLocal[f[j]]];
121 vector temp = u[j] ^ u[jPlus1];
123 scalar magTemp =
mag(temp);
125 if (magTemp < VSMALL)
135 scalar l =
min(
mag(u[j] - u[jPlus1]), 2.0);
143 scalar vNorm =
mag(v);
164 scalar l =
min(
mag(n0 - n1), 2.0);
171 alpha[j] = -alpha[j];
174 l =
min(
mag(u[j] - v), 2.0);
180 bool outlierFlag =
false;
183 if (
mag(theta[j]) < tol)
188 weights[
pid] += vNorm / dist[
pid];
213 calcWeights(toLocal, f, u, dist, weights);
222 label jMin1 = f.rcIndex(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);
265 weights_.setSize(toGlobal.
size());
277 uVec[
pid] = pt-position;
314 u(j) = uVec[toLocal[f[j]]];
318 calcWeights(toLocal, f, u, dist, weights_);
#define forAll(list, i)
Loop across all elements in list.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
A face is a list of labels corresponding to mesh vertices.
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.
void size(const label)
Override size to be inconsistent with allocated storage.
const labelListList & cellPoints() const
label size() const
Return number of elements in table.
const cellList & cells() const
static scalar tol
Tolerance used in calculating barycentric co-ordinates.
dimensionedScalar asin(const dimensionedScalar &ds)
dimensioned< Type > sum(const DimensionedField< Type, GeoMesh > &df)
virtual const pointField & points() const
Return raw points.
label fcIndex(const label i) const
Return the forward circular index, i.e. the next index.
bool insert(const Key &, const T &newElmt)
Insert a new hashedEntry.
A 1D vector of objects of type <T> that resizes itself as necessary to accept the new objects...
pointMVCWeight(const polyMesh &mesh, const vector &position, const label celli, const label facei=-1)
Construct from components.
pid_t pid()
Return the PID of this process.
dimensionedScalar sin(const dimensionedScalar &ds)
label rcIndex(const label i) const
Return the reverse circular index, i.e. the previous index.
dimensioned< Type > min(const dimensioned< Type > &, const dimensioned< Type > &)
void setSize(const label)
Reset size of List.
A cell is defined as a list of faces with extra functionality.
defineDebugSwitchWithName(pointMVCWeight,"pointMVCWeight", 0)
dimensioned< scalar > mag(const dimensioned< Type > &)
Mesh consisting of general polyhedral cells.
static const Vector< scalar > zero
virtual const labelList & faceOwner() const
Return face owner.
dimensionedScalar tan(const dimensionedScalar &ds)
virtual const faceList & faces() const
Return raw faces.
const dimensionedScalar alpha
Fine-structure constant: default SI units: [].