51 "snGradCorr("+vf.
name()+
')',
60 auto& ssf = tssf.ref();
80 mesh.deltaCoeffs().internalField();
113 kPI -= Sf*(Sf&kPI)/
sqr(magSf);
116 kNI -= Sf*(Sf&kNI)/
sqr(magSf);
118 forAll(kP.boundaryField(), patchI)
120 if (kP.boundaryField()[patchI].coupled())
122 kP.boundaryFieldRef()[patchI] =
123 mesh.boundary()[patchI].Cf()
124 -
mesh.boundary()[patchI].Cn();
126 kP.boundaryFieldRef()[patchI] -=
127 mesh.boundary()[patchI].Sf()
129 mesh.boundary()[patchI].Sf()
130 & kP.boundaryField()[patchI]
132 /
sqr(
mesh.boundary()[patchI].magSf());
134 kN.boundaryFieldRef()[patchI] =
135 mesh.Cf().boundaryField()[patchI]
137 mesh.boundary()[patchI].Cn()
138 +
mesh.boundary()[patchI].delta()
141 kN.boundaryFieldRef()[patchI] -=
142 mesh.boundary()[patchI].Sf()
144 mesh.boundary()[patchI].Sf()
145 & kN.boundaryField()[patchI]
147 /
sqr(
mesh.boundary()[patchI].magSf());
158 mesh.gradScheme(
"grad(" + vf.
name() +
')')
167 ssf.primitiveFieldRef().replace
178 forAll(ssf.boundaryField(), patchI)
180 if (ssf.boundaryField()[patchI].coupled())
182 ssf.boundaryFieldRef()[patchI].replace
187 kN.boundaryField()[patchI]
189 .patchNeighbourField()
192 kP.boundaryField()[patchI]
194 .patchInternalField()
197 *
mesh.deltaCoeffs().boundaryField()[patchI]
234 "snGradCorr("+vf.
name()+
')',
243 auto& ssf = tssf.ref();
Graphite solid properties.
tmp< GeometricField< Type, fvsPatchField, surfaceMesh > > fullGradCorrection(const GeometricField< Type, fvPatchField, volMesh > &) const
Return the explicit correction to the skewCorrectedSnGrad for the given field using the gradient of t...
const word & name() const noexcept
Return the object name.
dimensionedSymmTensor sqr(const dimensionedVector &dv)
const Internal & internalField() const noexcept
Return a const-reference to the dimensioned internal field.
dimensioned< vector > dimensionedVector
Dimensioned vector obtained from generic dimensioned type.
tmp< GeometricField< cmptType, PatchField, GeoMesh > > component(const direction) const
Return a component of the field.
A traits class, which is primarily used for primitives and vector-space.
tmp< DimensionedField< TypeR, GeoMesh > > New(const tmp< DimensionedField< TypeR, GeoMesh >> &tf1, const word &name, const dimensionSet &dimensions, const bool initCopy=false)
Global function forwards to reuseTmpDimensionedField::New.
Generic GeometricField class.
::Foam::direction nComponents(const expressions::valueTypeCode) noexcept
The number of components associated with given valueTypeCode.
Generic dimensioned Type class.
#define forAll(list, i)
Loop across all elements in list.
Calculate the gradient of the given field.
virtual tmp< GeometricField< Type, fvsPatchField, surfaceMesh > > correction(const GeometricField< Type, fvPatchField, volMesh > &) const
Return the explicit correction to the skewCorrectedSnGrad for the given field using the gradients of ...
const fileName & instance() const noexcept
Read access to instance path component.
Abstract base class for gradient schemes.
const dimensionSet dimLength(0, 1, 0, 0, 0, 0, 0)
Mesh data needed to do the Finite Volume discretisation.
Field< vector > vectorField
Specialisation of Field<T> for vector.
A class for managing temporary objects.
Defines the attributes of an object for which implicit objectRegistry management is supported...
const Boundary & boundaryField() const noexcept
Return const-reference to the boundary field.
tmp< GeometricField< typename outerProduct< vector, Type >::type, faPatchField, areaMesh >> grad(const GeometricField< Type, faePatchField, edgeMesh > &ssf)
const dimensionSet & dimensions() const noexcept
Return dimensions.
Surface gradient scheme with skewness and full explicit non-orthogonal corrections.
static constexpr const zero Zero
Global zero (0)