35 void meshToMesh::calculateInverseDistanceWeights()
const
39 Info<<
"meshToMesh::calculateInverseDistanceWeights() : "
40 <<
"calculating inverse distance weighting factors" <<
endl;
43 if (inverseDistanceWeightsPtr_)
45 FatalErrorIn(
"meshToMesh::calculateInverseDistanceWeights()")
46 <<
"weighting factors already calculated"
58 forAll (cellAddressing_, celli)
60 if (cellAddressing_[celli] != -1)
62 const vector& target = centreTo[celli];
63 scalar m =
mag(target - centreFrom[cellAddressing_[celli]]);
65 const labelList& neighbours = cc[cellAddressing_[celli]];
75 invDistCoeffs[celli].
setSize(1);
76 invDistCoeffs[celli][0] = 1.0;
80 invDistCoeffs[celli].setSize(neighbours.size() + 1);
84 scalar invDist = 1.0/m;
85 invDistCoeffs[celli][0] = invDist;
86 scalar sumInvDist = invDist;
91 invDist = 1.0/
mag(target - centreFrom[neighbours[ni]]);
92 invDistCoeffs[celli][ni + 1] = invDist;
93 sumInvDist += invDist;
97 forAll (invDistCoeffs[celli], i)
99 invDistCoeffs[celli][i] /= sumInvDist;
111 if (!inverseDistanceWeightsPtr_)
113 calculateInverseDistanceWeights();
116 return *inverseDistanceWeightsPtr_;