35 Info<<
"meshToMesh0::calculateInverseDistanceWeights() : "
36 <<
"calculating inverse distance weighting factors" <<
endl;
42 <<
"weighting factors already calculated"
61 const vector& target = centreTo[celli];
68 label directCelli = -1;
77 scalar nm =
mag(target - centreFrom[neighbours[ni]]);
80 directCelli = neighbours[ni];
87 if (directCelli != -1)
90 invDistCoeffs[directCelli].
setSize(1);
91 invDistCoeffs[directCelli][0] = 1.0;
96 invDistCoeffs[celli].
setSize(neighbours.
size() + 1);
100 scalar invDist = 1.0/m;
101 invDistCoeffs[celli][0] = invDist;
102 scalar sumInvDist = invDist;
107 invDist = 1.0/
mag(target - centreFrom[neighbours[ni]]);
108 invDistCoeffs[celli][ni + 1] = invDist;
109 sumInvDist += invDist;
113 forAll(invDistCoeffs[celli], i)
115 invDistCoeffs[celli][i] /= sumInvDist;
120 invDistCoeffs[celli][0]
122 for (
label i = 1; i < invDistCoeffs[celli].
size(); i++)
125 invDistCoeffs[celli][i]*
fromMesh_.
V()[neighbours[i-1]];
137 Info<<
"meshToMesh0::calculateInverseVolumeWeights() : "
138 <<
"calculating inverse volume weighting factors" <<
endl;
141 if (inverseVolumeWeightsPtr_)
144 <<
"weighting factors already calculated"
162 if (overlapCells.
size() > 0)
168 label cellFrom = overlapCells[j];
174 fromMesh_.cellPoints()[cellFrom]
187 invVolCoeffs[celli][j] = v/toMesh_.V()[celli];
200 Info<<
"meshToMesh0::calculateCellToCellAddressing() : "
201 <<
"calculating cell to cell addressing" <<
endl;
204 if (cellToCellAddressingPtr_)
207 <<
"addressing already calculated"
216 cellToCellAddressingPtr_ =
new labelListList(toMesh_.nCells());
224 if (overLapCells.
size() > 0)
233 V_ += fromMesh_.V()[overLapCells[j]];
243 if (!inverseDistanceWeightsPtr_)
245 calculateInverseDistanceWeights();
248 return *inverseDistanceWeightsPtr_;
254 if (!inverseVolumeWeightsPtr_)
256 calculateInverseVolumeWeights();
259 return *inverseVolumeWeightsPtr_;
265 if (!cellToCellAddressingPtr_)
267 calculateCellToCellAddressing();
270 return *cellToCellAddressingPtr_;