38 void Foam::primitiveMesh::calcFaceCentresAndAreas()
const
42 Pout<<
"primitiveMesh::calcFaceCentresAndAreas() : "
43 <<
"Calculating face centres and face areas"
49 if (faceCentresPtr_ || faceAreasPtr_)
51 FatalErrorIn(
"primitiveMesh::calcFaceCentresAndAreas() const")
52 <<
"Face centres or face areas already calculated"
62 makeFaceCentresAndAreas(
points(), fCtrs, fAreas);
66 Pout<<
"primitiveMesh::calcFaceCentresAndAreas() : "
67 <<
"Finished calculating face centres and face areas"
73 void Foam::primitiveMesh::makeFaceCentresAndAreas
91 fCtrs[facei] = (1.0/3.0)*(p[f[0]] + p[f[1]] + p[f[2]]);
92 fAreas[facei] = 0.5*((p[f[1]] - p[f[0]])^(p[f[2]] - p[f[0]]));
100 point fCentre = p[f[0]];
110 const point& nextPoint = p[f[(
pi + 1) % nPoints]];
112 vector c = p[f[
pi]] + nextPoint + fCentre;
113 vector n = (nextPoint - p[f[
pi]])^(fCentre - p[f[
pi]]);
121 fCtrs[facei] = (1.0/3.0)*sumAc/(sumA + VSMALL);
122 fAreas[facei] = 0.5*sumN;
132 if (!faceCentresPtr_)
134 calcFaceCentresAndAreas();
137 return *faceCentresPtr_;
145 calcFaceCentresAndAreas();
148 return *faceAreasPtr_;