Go to the documentation of this file.
61 nonOrthDeltaCoeffs_(NULL),
62 nonOrthCorrectionVectors_(NULL)
96 return (*deltaCoeffs_);
103 if (!nonOrthDeltaCoeffs_)
105 makeNonOrthDeltaCoeffs();
108 return (*nonOrthDeltaCoeffs_);
115 if (!nonOrthCorrectionVectors_)
117 makeNonOrthCorrectionVectors();
120 return (*nonOrthCorrectionVectors_);
140 Pout<<
"surfaceInterpolation::makeWeights() : "
141 <<
"Constructing weighting factors for face interpolation"
150 mesh_.pointsInstance(),
166 const labelUList& neighbour = mesh_.neighbour();
182 scalar SfdOwn =
mag(Sf[facei] & (Cf[facei] -
C[owner[facei]]));
183 scalar SfdNei =
mag(Sf[facei] & (
C[neighbour[facei]] - Cf[facei]));
184 w[facei] = SfdNei/(SfdOwn + SfdNei);
189 mesh_.boundary()[
patchi].makeWeights
197 Pout<<
"surfaceInterpolation::makeWeights() : "
198 <<
"Finished constructing weighting factors for face interpolation"
208 Pout<<
"surfaceInterpolation::makeDeltaCoeffs() : "
209 <<
"Constructing differencing factors array for face gradient"
222 mesh_.pointsInstance(),
237 const labelUList& neighbour = mesh_.neighbour();
241 DeltaCoeffs[facei] = 1.0/
mag(
C[neighbour[facei]] -
C[owner[facei]]);
247 1.0/
mag(mesh_.boundary()[
patchi].delta());
256 Pout<<
"surfaceInterpolation::makeNonOrthDeltaCoeffs() : "
257 <<
"Constructing differencing factors array for face gradient"
269 "nonOrthDeltaCoeffs",
270 mesh_.pointsInstance(),
285 const labelUList& neighbour = mesh_.neighbour();
292 vector unitArea = Sf[facei]/magSf[facei];
321 Pout<<
"surfaceInterpolation::makeNonOrthCorrectionVectors() : "
322 <<
"Constructing non-orthogonal correction vectors"
330 "nonOrthCorrectionVectors",
331 mesh_.pointsInstance(),
345 const labelUList& neighbour = mesh_.neighbour();
352 vector unitArea = Sf[facei]/magSf[facei];
355 corrVecs[facei] = unitArea -
delta*NonOrthDeltaCoeffs[facei];
387 patchCorrVecs[patchFacei] =
388 unitArea -
delta*patchNonOrthDeltaCoeffs[patchFacei];
395 Pout<<
"surfaceInterpolation::makeNonOrthCorrectionVectors() : "
396 <<
"Finished constructing non-orthogonal correction vectors"
void clearOut()
Clear all geometry and addressing.
IOobject defines the attributes of an object for which implicit objectRegistry management is supporte...
const dimensionSet dimless(0, 0, 0, 0, 0, 0, 0)
volScalarField w(IOobject("w", runTime.timeName(), mesh, IOobject::READ_IF_PRESENT, IOobject::NO_WRITE), mesh, dimensionedScalar("w", dimensionSet(0, 0, 0, 0, 0, 0, 0), 0.0))
const dimensionSet dimLength(0, 1, 0, 0, 0, 0, 0)
#define forAll(list, i)
Loop across all elements in list.
const surfaceScalarField & nonOrthDeltaCoeffs() const
Return reference to non-orthogonal cell-centre difference.
surfaceVectorField * nonOrthCorrectionVectors_
Non-orthogonality correction vectors.
Template functions to aid in the implementation of demand driven data.
An abstract base class with a fat-interface to all derived classes covering all possible ways in whic...
GeometricBoundaryField & boundaryField()
Return reference to GeometricBoundaryField.
void makeDeltaCoeffs() const
Construct face-gradient difference factors.
Ostream & endl(Ostream &os)
Add newline and flush stream.
dimensioned< scalar > mag(const dimensioned< Type > &)
const surfaceScalarField & deltaCoeffs() const
Return reference to cell-centre difference coefficients.
void deleteDemandDrivenData(DataPtr &dataPtr)
Pre-declare SubField and related Field type.
void makeNonOrthCorrectionVectors() const
Construct non-orthogonality correction vectors.
A finiteVolume patch using a polyPatch and a fvBoundaryMesh.
surfaceScalarField * deltaCoeffs_
Cell-centre difference coefficients.
InternalField & internalField()
Return internal field.
bool movePoints()
Do what is neccessary if the mesh has moved.
Mesh data needed to do the Finite Volume discretisation.
void makeNonOrthDeltaCoeffs() const
Construct face-gradient difference factors.
dimensioned< Type > max(const dimensioned< Type > &, const dimensioned< Type > &)
const surfaceVectorField & nonOrthCorrectionVectors() const
Return reference to non-orthogonality correction vectors.
const fvPatch & patch() const
Return patch.
prefixOSstream Pout(cout, "Pout")
GeometricField< scalar, fvsPatchField, surfaceMesh > surfaceScalarField
const surfaceScalarField & weights() const
Return reference to linear difference weighting factors.
A 1D vector of objects of type <T>, where the size of the vector is known and can be used for subscri...
surfaceInterpolation(const fvMesh &)
Construct given an fvMesh.
surfaceScalarField * weights_
Linear difference weighting factors.
~surfaceInterpolation()
Destructor.
void makeWeights() const
Construct central-differencing weighting factors.
Graphite solid properties.
GeometricField< vector, fvsPatchField, surfaceMesh > surfaceVectorField
Generic GeometricField class.
virtual bool coupled() const
Return true if this patch field is coupled.
defineTypeNameAndDebug(combustionModel, 0)
surfaceScalarField * nonOrthDeltaCoeffs_
Non-orthogonal cell-centre difference coefficients.