48 "linearUpwind::correction(" + vf.
name() +
')',
49 mesh.time().timeName(),
64 const auto& owner =
mesh.owner();
65 const auto& neighbour =
mesh.neighbour();
75 mesh.gradScheme(gradSchemeName_)
79 for (
direction cmpt = 0; cmpt < pTraits<Type>::nComponents; cmpt++)
82 gradScheme_().grad(vf.
component(cmpt), gradSchemeName_);
89 (faceFlux[facei] > 0) ? owner[facei] : neighbour[facei];
92 (Cf[facei] -
C[celli]) & gradVf[celli];
121 label own = pOwner[facei];
123 if (pFaceFlux[facei] > 0)
126 (pCf[facei] -
C[own])
132 (pCf[facei] - pd[facei] -
C[own])
159 "linearUpwind::correction(" + vf.
name() +
')',
160 mesh.time().timeName(),
175 const auto& owner =
mesh.owner();
176 const auto& neighbour =
mesh.neighbour();
186 mesh.gradScheme(gradSchemeName_)
196 (faceFlux[facei] > 0) ? owner[facei] : neighbour[facei];
197 sfCorr[facei] = (Cf[facei] -
C[celli]) & gradVf[celli];
205 fvsPatchVectorField& pSfCorr = bSfCorr[patchi];
207 if (pSfCorr.coupled())
209 const labelUList& pOwner =
mesh.boundary()[patchi].faceCells();
211 const scalarField& pFaceFlux = faceFlux.
boundaryField()[patchi];
213 const tensorField pGradVfNei
223 label own = pOwner[facei];
225 if (pFaceFlux[facei] > 0)
227 pSfCorr[facei] = (pCf[facei] -
C[own]) & gradVf[own];
232 (pCf[facei] - pd[facei] -
C[own]) & pGradVfNei[facei];
static const Foam::dimensionedScalar C("", Foam::dimTemperature, 234.5)
Graphite solid properties.
const dimensionSet & dimensions() const noexcept
Return dimensions.
Generic GeometricField class.
Boundary & boundaryFieldRef(const bool updateAccessTime=true)
Return a reference to the boundary field.
GeometricBoundaryField< vector, fvsPatchField, surfaceMesh > Boundary
const Boundary & boundaryField() const noexcept
Return const-reference to the boundary field.
tmp< GeometricField< cmptType, PatchField, GeoMesh > > component(const direction) const
Return a component of the field.
@ NO_REGISTER
Do not request registration (bool: false).
@ NO_READ
Nothing to be read.
@ NO_WRITE
Ignore writing from objectRegistry::writeObject().
Defines the attributes of an object for which implicit objectRegistry management is supported,...
const word & name() const noexcept
Return the object name.
Generic dimensioned Type class.
Mesh data needed to do the Finite Volume discretisation.
static tmp< gradScheme< Type > > New(const fvMesh &mesh, Istream &schemeData)
Return a pointer to a new gradScheme created on freestore.
virtual bool coupled() const
True if the patch field is coupled.
An abstract base class with a fat-interface to all derived classes covering all possible ways in whic...
const surfaceScalarField & faceFlux_
linearUpwind interpolation scheme class derived from upwind and returns upwind weighting factors and ...
virtual tmp< GeometricField< Type, fvsPatchField, surfaceMesh > > correction(const GeometricField< Type, fvPatchField, volMesh > &) const
Return the explicit correction to the face-interpolate.
const fvMesh & mesh() const
Return mesh reference.
A class for managing temporary objects.
T & ref() const
Return non-const reference to the contents of a non-null managed pointer.
#define makelimitedSurfaceInterpolationScheme(SS)
GeometricField< vector, fvsPatchField, surfaceMesh > surfaceVectorField
GeometricField< vector, fvPatchField, volMesh > volVectorField
label & setComponent(label &val, const direction) noexcept
Non-const access to integer-type (has no components).
GeometricField< scalar, fvsPatchField, surfaceMesh > surfaceScalarField
Field< scalar > scalarField
Specialisation of Field<T> for scalar.
GeometricField< tensor, fvPatchField, volMesh > volTensorField
Field< vector > vectorField
Specialisation of Field<T> for vector.
static constexpr const zero Zero
Global zero (0).
Field< tensor > tensorField
Specialisation of Field<T> for tensor.
UList< label > labelUList
A UList of labels.
fvsPatchField< vector > fvsPatchVectorField
#define forAll(list, i)
Loop across all elements in list.