44 Foam::basicFvGeometryScheme::basicFvGeometryScheme
60 Pout<<
"basicFvGeometryScheme::movePoints() : "
61 <<
"recalculating primitiveMesh centres" <<
endl;
72 Pout<<
"basicFvGeometryScheme::weights() : "
73 <<
"Constructing weighting factors for face interpolation"
84 mesh_.pointsInstance(),
95 weights.setOriented();
102 const labelUList& neighbour = mesh_.neighbour();
118 scalar SfdOwn =
mag(Sf[facei] & (Cf[facei] -
C[owner[facei]]));
119 scalar SfdNei =
mag(Sf[facei] & (
C[neighbour[facei]] - Cf[facei]));
121 if (
mag(SfdOwn + SfdNei) > ROOTVSMALL)
123 w[facei] = SfdNei/(SfdOwn + SfdNei);
131 surfaceScalarField::Boundary& wBf = weights.boundaryFieldRef();
133 forAll(mesh_.boundary(), patchi)
135 mesh_.boundary()[patchi].makeWeights(wBf[patchi]);
140 Pout<<
"basicFvGeometryScheme::weights : "
141 <<
"Finished constructing weighting factors for face interpolation"
153 Pout<<
"basicFvGeometryScheme::deltaCoeffs() : "
154 <<
"Constructing differencing factors array for face gradient"
160 (void)mesh_.weights();
169 mesh_.pointsInstance(),
180 deltaCoeffs.setOriented();
186 const labelUList& neighbour = mesh_.neighbour();
190 deltaCoeffs[facei] = 1.0/
mag(
C[neighbour[facei]] -
C[owner[facei]]);
193 surfaceScalarField::Boundary& deltaCoeffsBf =
194 deltaCoeffs.boundaryFieldRef();
196 forAll(deltaCoeffsBf, patchi)
198 const fvPatch&
p = mesh_.boundary()[patchi];
199 deltaCoeffsBf[patchi] = 1.0/
mag(
p.delta());
202 p.makeDeltaCoeffs(deltaCoeffsBf[patchi]);
214 Pout<<
"basicFvGeometryScheme::nonOrthDeltaCoeffs() : "
215 <<
"Constructing differencing factors array for face gradient"
229 "nonOrthDeltaCoeffs",
230 mesh_.pointsInstance(),
241 nonOrthDeltaCoeffs.setOriented();
247 const labelUList& neighbour = mesh_.neighbour();
254 vector unitArea = Sf[facei]/magSf[facei];
269 surfaceScalarField::Boundary& nonOrthDeltaCoeffsBf =
270 nonOrthDeltaCoeffs.boundaryFieldRef();
272 forAll(nonOrthDeltaCoeffsBf, patchi)
278 const vectorField patchDeltas(mesh_.boundary()[patchi].delta());
288 patchDeltaCoeffs[patchFacei] =
293 p.makeNonOrthoDeltaCoeffs(patchDeltaCoeffs);
295 return tnonOrthDeltaCoeffs;
304 Pout<<
"surfaceInterpolation::makeNonOrthCorrectionVectors() : "
305 <<
"Constructing non-orthogonal correction vectors"
315 "nonOrthCorrectionVectors",
316 mesh_.pointsInstance(),
327 corrVecs.setOriented();
332 const labelUList& neighbour = mesh_.neighbour();
340 vector unitArea = Sf[facei]/magSf[facei];
343 corrVecs[facei] = unitArea -
delta*NonOrthDeltaCoeffs[facei];
350 surfaceVectorField::Boundary& corrVecsBf = corrVecs.boundaryFieldRef();
352 forAll(corrVecsBf, patchi)
360 patchCorrVecs =
Zero;
367 const vectorField patchDeltas(mesh_.boundary()[patchi].delta());
377 patchCorrVecs[patchFacei] =
378 unitArea -
delta*patchNonOrthDeltaCoeffs[patchFacei];
383 p.makeNonOrthoCorrVectors(patchCorrVecs);
388 Pout<<
"surfaceInterpolation::makeNonOrthCorrectionVectors() : "
389 <<
"Finished constructing non-orthogonal correction vectors"
392 return tnonOrthCorrectionVectors;