43 skewCorrectionVectors_
47 "skewCorrectionVectors",
48 mesh_.pointsInstance(),
58 calcSkewCorrectionVectors();
66 void Foam::skewCorrectionVectors::calcSkewCorrectionVectors()
83 label own = owner[facei];
84 label nei = neighbour[facei];
86 vector d = C[nei] - C[own];
87 vector Cpf = Cf[facei] - C[own];
89 skewCorrectionVectors_[facei] =
90 Cpf - ((Sf[facei] & Cpf)/(Sf[facei] & d))*d;
100 if (!patchSkewCorrVecs.
coupled())
102 patchSkewCorrVecs =
Zero;
115 patchFaceCentres[patchFacei] - C[faceCells[patchFacei]];
117 patchSkewCorrVecs[patchFacei] =
120 (patchSf[patchFacei] & Cpf)/
121 (patchSf[patchFacei] & patchD[patchFacei])
122 )*patchD[patchFacei];
127 scalar skewCoeff = 0.0;
140 if (skewCoeff < 1
e-5)
151 Info<<
" Finished constructing skew correction vectors" <<
endl;
158 calcSkewCorrectionVectors();
Graphite solid properties.
#define forAll(list, i)
Loop across all elements in list.
const surfaceVectorField & Sf() const
Return cell face area vectors.
layerAndWeight max(const layerAndWeight &a, const layerAndWeight &b)
const surfaceVectorField & Cf() const
Return face centres.
const Boundary & boundaryField() const
Return const-reference to the boundary field.
void size(const label)
Override size to be inconsistent with allocated storage.
skewCorrectionVectors(const fvMesh &mesh)
Ostream & endl(Ostream &os)
Add newline and flush stream.
A finiteVolume patch using a polyPatch and a fvBoundaryMesh.
const Internal::FieldType & primitiveField() const
Return a const-reference to the internal field.
const dimensionSet dimless
const labelUList & neighbour() const
Internal face neighbour.
Templated abstract base-class for optional mesh objects used to automate their allocation to the mesh...
virtual bool coupled() const
Return true if this patch field is coupled.
virtual const labelUList & faceCells() const
Return faceCells.
virtual bool movePoints()
Update the correction vectors when the mesh moves.
A 1D vector of objects of type <T>, where the size of the vector is known and can be used for subscri...
defineTypeNameAndDebug(combustionModel, 0)
const labelUList & owner() const
Internal face owner.
const fvPatch & patch() const
Return patch.
Boundary & boundaryFieldRef()
Return a reference to the boundary field.
Skew-correction vectors for the skewness-corrected interpolation scheme.
Mesh data needed to do the Finite Volume discretisation.
dimensioned< scalar > mag(const dimensioned< Type > &)
virtual ~skewCorrectionVectors()
Destructor.
const doubleScalar e
Elementary charge.
const volVectorField & C() const
Return cell centres.
IOobject defines the attributes of an object for which implicit objectRegistry management is supporte...
An abstract base class with a fat-interface to all derived classes covering all possible ways in whic...
virtual tmp< vectorField > delta() const
Return cell-centre to face-centre vector.
const surfaceScalarField & deltaCoeffs() const
Return reference to cell-centre difference coefficients.
#define InfoInFunction
Report an information message using Foam::Info.