Go to the documentation of this file.
43 skewCorrectionVectors_
47 "skewCorrectionVectors",
48 mesh_.pointsInstance(),
70 Info<<
"surfaceInterpolation::calcSkewCorrectionVectors() : "
71 <<
"Calculating skew correction vectors"
81 const labelUList& neighbour = mesh_.neighbour();
85 label own = owner[facei];
86 label nei = neighbour[facei];
89 vector Cpf = Cf[facei] -
C[own];
91 skewCorrectionVectors_[facei] =
92 Cpf - ((Sf[facei] & Cpf)/(Sf[facei] & d))*d;
96 forAll(skewCorrectionVectors_.boundaryField(), patchI)
99 skewCorrectionVectors_.boundaryField()[patchI];
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;
133 max(
mag(skewCorrectionVectors_)*mesh_.deltaCoeffs()).
value();
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();
IOobject defines the attributes of an object for which implicit objectRegistry management is supporte...
const dimensionSet dimless(0, 0, 0, 0, 0, 0, 0)
virtual ~skewCorrectionVectors()
Destructor.
#define forAll(list, i)
Loop across all elements in list.
void calcSkewCorrectionVectors()
Calculate skewness correction vectors.
An abstract base class with a fat-interface to all derived classes covering all possible ways in whic...
GeometricBoundaryField & boundaryField()
Return reference to GeometricBoundaryField.
Ostream & endl(Ostream &os)
Add newline and flush stream.
const Type & value() const
Return const reference to value.
dimensioned< scalar > mag(const dimensioned< Type > &)
skewCorrectionVectors(const fvMesh &mesh)
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
Pre-declare SubField and related Field type.
A finiteVolume patch using a polyPatch and a fvBoundaryMesh.
InternalField & internalField()
Return internal field.
Mesh data needed to do the Finite Volume discretisation.
Skew-correction vectors for the skewness-corrected interpolation scheme.
const double e
Elementary charge.
dimensioned< Type > max(const dimensioned< Type > &, const dimensioned< Type > &)
virtual bool movePoints()
Update the correction vectors when the mesh moves.
const fvPatch & patch() const
Return patch.
A 1D vector of objects of type <T>, where the size of the vector is known and can be used for subscri...
Templated abstract base-class for optional mesh objects used to automate their allocation to the mesh...
Graphite solid properties.
Generic GeometricField class.
virtual bool coupled() const
Return true if this patch field is coupled.
defineTypeNameAndDebug(combustionModel, 0)