50 return tinterpScheme_();
62 return tinterpScheme_().interpolate(vf);
86 DebugPout<<
"fusedGaussConvectionScheme<Type>::fvmDiv on " << vf.
name()
87 <<
" with flux " << faceFlux.
name() <<
endl;
132 if (tinterpScheme_().corrected())
149 DebugPout<<
"fusedGaussConvectionScheme<Type>::fvcDiv on " << vf.
name()
150 <<
" with flux " << faceFlux.
name() <<
endl;
162 "convection(" + faceFlux.
name() +
',' + vf.
name() +
')',
180 if (this->tinterpScheme_().corrected())
182 const auto tfaceCorr(this->tinterpScheme_().
correction(vf));
183 auto& faceCorr = tfaceCorr();
185 const auto interpolator = [&]
193 const scalar& faceVal,
204 this->tinterpScheme_().weights(vf),
222 const auto interpolator = [&]
229 const scalar& faceVal
232 return faceVal*(
lambda*(ownVal - neiVal) + neiVal);
237 tinterpScheme_().weights(vf),
249 tConvection.
ref().primitiveFieldRef() /=
mesh.Vsc();
251 tConvection.
ref().correctBoundaryConditions();
tmp< fvMatrix< Type > > correction(const fvMatrix< Type > &)
Return the correction form of the given matrix by subtracting the matrix multiplied by the current fi...
Surface integrate surfaceField creating a volField. Surface sum a surfaceField creating a volField...
const Internal::FieldType & primitiveField() const noexcept
Return a const-reference to the internal field values.
void surfaceIntegrate(Field< Type > &ivf, const GeometricField< Type, fvsPatchField, surfaceMesh > &ssf)
tmp< fvMatrix< Type > > fvmDiv(const surfaceScalarField &, const GeometricField< Type, fvPatchField, volMesh > &) const
const word & name() const noexcept
Return the object name.
bool interpolate(const vector &p1, const vector &p2, const vector &o, vector &n, scalar l)
T & ref() const
Return non-const reference to the contents of a non-null managed pointer.
Ostream & endl(Ostream &os)
Add newline and flush stream.
Abstract base class with a fat-interface to all derived classes covering all possible ways in which t...
const dimensionSet dimVol(dimVolume)
Older spelling for dimVolume.
virtual tmp< Field< Type > > valueBoundaryCoeffs(const tmp< Field< scalar >> &) const
Return the matrix source coefficients corresponding to the.
Generic dimensioned Type class.
Ignore writing from objectRegistry::writeObject()
const surfaceInterpolationScheme< Type > & interpScheme() const
#define forAll(list, i)
Loop across all elements in list.
const wordList area
Standard area field types (scalar, vector, tensor, etc)
dimensionedScalar lambda("lambda", dimTime/sqr(dimLength), laminarTransport)
tmp< GeometricField< Type, fvsPatchField, surfaceMesh > > interpolate(const surfaceScalarField &, const GeometricField< Type, fvPatchField, volMesh > &) const
tmp< GeometricField< Type, fvPatchField, volMesh > > fvcDiv(const surfaceScalarField &, const GeometricField< Type, fvPatchField, volMesh > &) const
const scalarField & lower() const
A special matrix type and solver, designed for finite volume solutions of scalar equations. Face addressing is used to make all matrix assembly and solution loops vectorise.
virtual tmp< Field< Type > > valueInternalCoeffs(const tmp< Field< scalar >> &) const
Return the matrix diagonal coefficients corresponding to the.
void add(FieldField< Field1, typename typeOfSum< Type1, Type2 >::type > &f, const FieldField< Field1, Type1 > &f1, const FieldField< Field2, Type2 > &f2)
A Vector of values with scalar precision, where scalar is float/double depending on the compilation f...
const dimensionSet & dimensions() const noexcept
Return dimensions.
const fileName & instance() const noexcept
Read access to instance path component.
Surface integrate surfaceField creating a volField. Surface sum a surfaceField creating a volField...
void multiplySubtract(Field< typename outerProduct< Type1, Type2 >::type > &result, const UList< Type1 > &f1, const UList< Type2 > &f2)
const scalarField & upper() const
Mesh data needed to do the Finite Volume discretisation.
const Mesh & mesh() const noexcept
Return const reference to mesh.
A special matrix type and solver, designed for finite volume solutions of scalar equations.
#define DebugPout
Report an information message using Foam::Pout.
const FieldField< Field, Type > & internalCoeffs() const noexcept
fvBoundary scalar field containing pseudo-matrix coeffs for internal cells
tmp< GeometricField< Type, fvPatchField, volMesh > > surfaceSum(const GeometricField< Type, fvsPatchField, surfaceMesh > &ssf)
const FieldField< Field, Type > & boundaryCoeffs() const noexcept
fvBoundary scalar field containing pseudo-matrix coeffs for boundary cells
A class for managing temporary objects.
void multiply(DimensionedField< Type, GeoMesh > &result, const DimensionedField< Type, GeoMesh > &f1, const DimensionedField< scalar, GeoMesh > &f2)
static const word & extrapolatedCalculatedType() noexcept
The type name for extrapolatedCalculated patch fields combines zero-gradient and calculated.
Defines the attributes of an object for which implicit objectRegistry management is supported...
Abstract base class for surface interpolation schemes.
An abstract base class with a fat-interface to all derived classes covering all possible ways in whic...
const Boundary & boundaryField() const noexcept
Return const-reference to the boundary field.
tmp< GeometricField< Type, fvsPatchField, surfaceMesh > > flux(const surfaceScalarField &, const GeometricField< Type, fvPatchField, volMesh > &) const
static constexpr const zero Zero
Global zero (0)