43 skewCorrectionVectors_
47 "skewCorrectionVectors",
48 mesh_.pointsInstance(),
58 calcSkewCorrectionVectors();
66 void Foam::skewCorrectionVectors::calcSkewCorrectionVectors()
70 Info<<
"surfaceInterpolation::calcSkewCorrectionVectors() : " 71 <<
"Calculating skew correction vectors" 85 label own = owner[facei];
86 label nei = neighbour[facei];
88 vector d = C[nei] - C[own];
89 vector Cpf = Cf[facei] - C[own];
91 skewCorrectionVectors_[facei] =
92 Cpf - ((Sf[facei] & Cpf)/(Sf[facei] & d))*d;
101 if (!patchSkewCorrVecs.
coupled())
116 patchFaceCentres[patchFaceI] - C[faceCells[patchFaceI]];
118 patchSkewCorrVecs[patchFaceI] =
121 (patchSf[patchFaceI] & Cpf)/
122 (patchSf[patchFaceI] & patchD[patchFaceI])
123 )*patchD[patchFaceI];
128 scalar skewCoeff = 0.0;
138 Info<<
"surfaceInterpolation::calcSkewCorrectionVectors() : " 139 <<
"skew coefficient = " << skewCoeff <<
endl;
142 if (skewCoeff < 1
e-5)
153 Info<<
"surfaceInterpolation::calcSkewCorrectionVectors() : " 154 <<
"Finished constructing skew correction vectors" 162 calcSkewCorrectionVectors();
virtual bool coupled() const
Return true if this patch field is coupled.
Mesh data needed to do the Finite Volume discretisation.
dimensioned< scalar > mag(const dimensioned< Type > &)
GeometricBoundaryField & boundaryField()
Return reference to GeometricBoundaryField.
const surfaceVectorField & Sf() const
Return cell face area vectors.
const fvPatch & patch() const
Return patch.
virtual tmp< vectorField > delta() const
Return cell-centre to face-centre vector.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
void size(const label)
Override size to be inconsistent with allocated storage.
InternalField & internalField()
Return internal field.
const labelUList & owner() const
Internal face owner.
const surfaceScalarField & deltaCoeffs() const
Return reference to cell-centre difference coefficients.
Graphite solid properties.
virtual const labelUList & faceCells() const
Return faceCells.
const surfaceVectorField & Cf() const
Return face centres as surfaceVectorField.
const double e
Elementary charge.
Ostream & endl(Ostream &os)
Add newline and flush stream.
IOobject defines the attributes of an object for which implicit objectRegistry management is supporte...
const volVectorField & C() const
Return cell centres as volVectorField.
skewCorrectionVectors(const fvMesh &mesh)
dimensioned< Type > max(const dimensioned< Type > &, const dimensioned< Type > &)
Templated abstract base-class for optional mesh objects used to automate their allocation to the mesh...
Skew-correction vectors for the skewness-corrected interpolation scheme.
A 1D vector of objects of type <T>, where the size of the vector is known and can be used for subscri...
const dimensionSet dimless(0, 0, 0, 0, 0, 0, 0)
A finiteVolume patch using a polyPatch and a fvBoundaryMesh.
const labelUList & neighbour() const
Internal face neighbour.
virtual ~skewCorrectionVectors()
Destructor.
An abstract base class with a fat-interface to all derived classes covering all possible ways in whic...
virtual bool movePoints()
Update the correction vectors when the mesh moves.
defineTypeNameAndDebug(combustionModel, 0)