Go to the documentation of this file.
51 const fvMesh&
mesh = vsf.mesh();
53 tmp<volVectorField> tGrad = basicGradScheme_().calcGrad(vsf,
name);
68 scalar rk = (1.0/k_ - 1.0);
72 label own = owner[facei];
73 label nei = neighbour[facei];
75 scalar vsfOwn = vsf[own];
76 scalar vsfNei = vsf[nei];
78 scalar maxFace =
max(vsfOwn, vsfNei);
79 scalar minFace =
min(vsfOwn, vsfNei);
83 scalar maxMinFace = rk*(maxFace - minFace);
84 maxFace += maxMinFace;
85 minFace -= maxMinFace;
89 cellMDLimitedGrad<scalar>::limitFace
98 cellMDLimitedGrad<scalar>::limitFace
107 const volScalarField::Boundary& bsf = vsf.boundaryField();
114 const vectorField& pCf = Cf.boundaryField()[patchi];
118 const scalarField psfNei(psf.patchNeighbourField());
122 label own = pOwner[pFacei];
124 scalar vsfOwn = vsf[own];
125 scalar vsfNei = psfNei[pFacei];
127 scalar maxFace =
max(vsfOwn, vsfNei);
128 scalar minFace =
min(vsfOwn, vsfNei);
132 scalar maxMinFace = rk*(maxFace - minFace);
133 maxFace += maxMinFace;
134 minFace -= maxMinFace;
137 cellMDLimitedGrad<scalar>::limitFace
146 else if (psf.fixesValue())
150 label own = pOwner[pFacei];
152 scalar vsfOwn = vsf[own];
153 scalar vsfNei = psf[pFacei];
155 scalar maxFace =
max(vsfOwn, vsfNei);
156 scalar minFace =
min(vsfOwn, vsfNei);
160 scalar maxMinFace = rk*(maxFace - minFace);
161 maxFace += maxMinFace;
162 minFace -= maxMinFace;
165 cellMDLimitedGrad<scalar>::limitFace
176 g.correctBoundaryConditions();
208 scalar rk = (1.0/k_ - 1.0);
212 label own = owner[facei];
213 label nei = neighbour[facei];
223 vector maxMinFace = rk*(maxFace - minFace);
224 maxFace += maxMinFace;
225 minFace -= maxMinFace;
264 label own = pOwner[pFacei];
267 vector vvfNei = psfNei[pFacei];
274 vector maxMinFace = rk*(maxFace - minFace);
275 maxFace += maxMinFace;
276 minFace -= maxMinFace;
282 maxFace - vvfOwn, minFace - vvfOwn,
291 label own = pOwner[pFacei];
294 vector vvfNei = psf[pFacei];
301 vector maxMinFace = rk*(maxFace - minFace);
302 maxFace += maxMinFace;
303 minFace -= maxMinFace;
317 g.correctBoundaryConditions();
fvPatchField< scalar > fvPatchScalarField
Field< scalar > scalarField
Specialisation of Field<T> for scalar.
A class for handling words, derived from Foam::string.
A class for managing temporary objects.
virtual bool fixesValue() const
Return true if this patch field fixes a value.
label min(const labelHashSet &set, label minValue=labelMax)
Find the min value in labelHashSet, optionally limited by second argument.
makeFvGradScheme(faceMDLimitedGrad)
#define forAll(list, i)
Loop across all elements in list.
Field< vector > vectorField
Specialisation of Field<T> for vector.
cellMask correctBoundaryConditions()
virtual bool coupled() const
Return true if this patch field is coupled.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
word name(const complex &c)
Return string representation of complex.
GeometricField< scalar, fvPatchField, volMesh > volScalarField
label max(const labelHashSet &set, label maxValue=labelMin)
Find the max value in labelHashSet, optionally limited by second argument.
Mesh data needed to do the Finite Volume discretisation.
const uniformDimensionedVectorField & g
virtual tmp< Field< Type > > patchNeighbourField() const
Return patchField on the opposite patch of a coupled patch.
GeometricField< vector, fvPatchField, volMesh > volVectorField
virtual tmp< GeometricField< typename outerProduct< vector, Type >::type, fvPatchField, volMesh > > calcGrad(const GeometricField< Type, fvPatchField, volMesh > &vsf, const word &name) const
Return the gradient of the given field to the gradScheme::grad.
cellMDLimitedGrad gradient scheme applied to a runTime selected base gradient scheme.
UList< label > labelUList
A UList of labels.
Graphite solid properties.
GeometricField< vector, fvsPatchField, surfaceMesh > surfaceVectorField
const Boundary & boundaryField() const
Return const-reference to the boundary field.