Go to the documentation of this file.
50 "linearUpwindV::correction(" + vf.name() +
')',
51 mesh.time().timeName(),
81 > tgradVf = gradScheme_().grad(vf, gradSchemeName_);
88 >& gradVf = tgradVf();
94 if (faceFlux[facei] > 0.0)
97 (1.0 - w[facei])*(vf[nei[facei]] - vf[own[facei]]);
100 (Cf[facei] -
C[own[facei]]) & gradVf[own[facei]];
105 w[facei]*(vf[own[facei]] - vf[nei[facei]]);
108 (Cf[facei] -
C[nei[facei]]) & gradVf[nei[facei]];
111 scalar sfCorrs =
magSqr(sfCorr[facei]);
112 scalar maxCorrs = sfCorr[facei] & maxCorr;
118 sfCorr[facei] =
Zero;
120 else if (sfCorrs > maxCorrs)
122 sfCorr[facei] *= maxCorrs/(sfCorrs + VSMALL);
129 Boundary& bSfCorr = sfCorr.boundaryFieldRef();
138 mesh.boundary()[patchi].faceCells();
147 gradVf.boundaryField()[patchi].patchNeighbourField()
160 label own = pOwner[facei];
164 if (pFaceFlux[facei] > 0)
166 pSfCorr[facei] = (pCf[facei] -
C[own]) & gradVf[own];
168 maxCorr = (1.0 - pW[facei])*(pVfNei[facei] - vf[own]);
173 (pCf[facei] - pd[facei] -
C[own]) & pGradVfNei[facei];
175 maxCorr = pW[facei]*(vf[own] - pVfNei[facei]);
178 scalar pSfCorrs =
magSqr(pSfCorr[facei]);
179 scalar maxCorrs = pSfCorr[facei] & maxCorr;
185 pSfCorr[facei] =
Zero;
187 else if (pSfCorrs > maxCorrs)
189 pSfCorr[facei] *= maxCorrs/(pSfCorrs + VSMALL);
Abstract base class with a fat-interface to all derived classes covering all possible ways in which t...
Defines the attributes of an object for which implicit objectRegistry management is supported,...
A class for managing temporary objects.
static constexpr const zero Zero
Global zero.
Mesh data needed to do the Finite Volume discretisation.
typeOfRank< typename pTraits< arg1 >::cmptType, direction(pTraits< arg1 >::rank)+direction(pTraits< arg2 >::rank) >::type type
An abstract base class with a fat-interface to all derived classes covering all possible ways in whic...
#define forAll(list, i)
Loop across all elements in list.
dimensioned< typename typeOfMag< Type >::type > magSqr(const dimensioned< Type > &dt)
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
#define makelimitedSurfaceInterpolationTypeScheme(SS, Type)
Generic dimensioned Type class.
Mesh data needed to do the Finite Volume discretisation.
Internal & ref(const bool updateAccessTime=true)
Return a reference to the dimensioned internal field.
linearUpwindV interpolation scheme class derived from upwind and returns upwind weighting factors but...
virtual tmp< GeometricField< Type, fvsPatchField, surfaceMesh > > correction(const GeometricField< Type, fvPatchField, volMesh > &) const
Return the explicit correction to the face-interpolate.
Graphite solid properties.
virtual bool coupled() const
Return true if this patch field is coupled.
const Boundary & boundaryField() const
Return const-reference to the boundary field.