Loading...
Searching...
No Matches
fvMatrixRefWrap< Matrix > Class Template Reference

Expression wrap of non-const reference to fvMatrix. More...

#include <fvMatrixExpression.H>

Inheritance diagram for fvMatrixRefWrap< Matrix >:
Collaboration diagram for fvMatrixRefWrap< Matrix >:

Public Types

typedef Matrix this_type
 The fvMatrix type.
typedef Matrix::psiFieldType::value_type value_type
 Type to return for internal field.
typedef ListRefWrap< value_typeDiagExpr
 Type to return for containers.
typedef ListRefWrap< value_typeUpperExpr
typedef ListRefWrap< value_typeLowerExpr
typedef GeometricFieldRefWrap< typename Matrix::faceFluxFieldType > FaceFluxExpr
typedef ListRefWrap< value_typeSourceExpr

Public Member Functions

 fvMatrixRefWrap (this_type &elems)
 Copy construct.
 fvMatrixRefWrap (this_type &&elems)
 Move construct.
template<typename E>
 fvMatrixRefWrap (this_type &elems, const fvMatrixExpression< E, typename E::DiagExpr, typename E::UpperExpr, typename E::LowerExpr, typename E::FaceFluxExpr, typename E::SourceExpr > &expr)
template<typename E>
void operator= (const fvMatrixExpression< E, typename E::DiagExpr, typename E::UpperExpr, typename E::LowerExpr, typename E::FaceFluxExpr, typename E::SourceExpr > &expr)
 Assignment.
template<typename E>
this_typeevaluate (const fvMatrixExpression< E, typename E::DiagExpr, typename E::UpperExpr, typename E::LowerExpr, typename E::FaceFluxExpr, typename E::SourceExpr > &expr)
 Evaluate and return as GeoField. Rename to evaluate to make it clear it takes time? Or leave as indexing for convenience?
DiagExpr diag () const
DiagExpr diag ()
UpperExpr upper () const
UpperExpr upper ()
LowerExpr lower () const
LowerExpr lower ()
SourceExpr source () const
SourceExpr source ()
UpperExpr internalCoeffs (const label i)
UpperExpr internalCoeffs (const label i) const
UpperExpr boundaryCoeffs (const label i)
UpperExpr boundaryCoeffs (const label i) const
FaceFluxExpr faceFluxCorrection () const
FaceFluxExpr faceFluxCorrection ()
Public Member Functions inherited from fvMatrixExpression< fvMatrixRefWrap< Matrix >, ListRefWrap< Matrix::psiFieldType::value_type >, ListRefWrap< Matrix::psiFieldType::value_type >, ListRefWrap< Matrix::psiFieldType::value_type >, GeometricFieldRefWrap< Matrix::faceFluxFieldType >, ListRefWrap< Matrix::psiFieldType::value_type > >
 fvMatrixExpression (const bool hasDiag, const bool hasUpper, const bool hasLower, const bool hasFaceFluxCorrection, const dimensionSet &dimensions)
ListRefWrap< Matrix::psiFieldType::value_type > diag () const
ListRefWrap< Matrix::psiFieldType::value_type > upper () const
ListRefWrap< Matrix::psiFieldType::value_type > lower () const
bool hasDiag () const
bool hasUpper () const
bool hasLower () const
bool diagonal () const
bool symmetric () const
bool asymmetric () const
bool hasFaceFluxCorrection () const
ListRefWrap< Matrix::psiFieldType::value_type > source ()
ListRefWrap< Matrix::psiFieldType::value_type > internalCoeffs (const label i)
ListRefWrap< Matrix::psiFieldType::value_type > boundaryCoeffs (const label i)
GeometricFieldRefWrap< Matrix::faceFluxFieldType > faceFluxCorrection () const
const dimensionSetdimensions () const noexcept
Matrixevaluate (Matrix &m) const
 Helper to evaluate (=construct) an fvMatrix.

Static Public Attributes

static constexpr bool is_leaf = false
Static Public Attributes inherited from fvMatrixExpression< fvMatrixRefWrap< Matrix >, ListRefWrap< Matrix::psiFieldType::value_type >, ListRefWrap< Matrix::psiFieldType::value_type >, ListRefWrap< Matrix::psiFieldType::value_type >, GeometricFieldRefWrap< Matrix::faceFluxFieldType >, ListRefWrap< Matrix::psiFieldType::value_type > >
static constexpr bool is_leaf

Additional Inherited Members

Protected Attributes inherited from fvMatrixExpression< fvMatrixRefWrap< Matrix >, ListRefWrap< Matrix::psiFieldType::value_type >, ListRefWrap< Matrix::psiFieldType::value_type >, ListRefWrap< Matrix::psiFieldType::value_type >, GeometricFieldRefWrap< Matrix::faceFluxFieldType >, ListRefWrap< Matrix::psiFieldType::value_type > >
const bool hasDiag_
const bool hasUpper_
const bool hasLower_
const bool hasFaceFluxCorrection_
dimensionSet dimensions_

Detailed Description

template<class Matrix>
class Foam::Expression::fvMatrixRefWrap< Matrix >

Expression wrap of non-const reference to fvMatrix.

Definition at line 286 of file fvMatrixExpression.H.

Member Typedef Documentation

◆ this_type

template<class Matrix>
typedef Matrix this_type

The fvMatrix type.

Definition at line 306 of file fvMatrixExpression.H.

◆ value_type

template<class Matrix>
typedef Matrix::psiFieldType::value_type value_type

Type to return for internal field.

Definition at line 311 of file fvMatrixExpression.H.

◆ DiagExpr

template<class Matrix>
typedef ListRefWrap<value_type> DiagExpr

Type to return for containers.

Definition at line 316 of file fvMatrixExpression.H.

◆ UpperExpr

template<class Matrix>
typedef ListRefWrap<value_type> UpperExpr

Definition at line 317 of file fvMatrixExpression.H.

◆ LowerExpr

template<class Matrix>
typedef ListRefWrap<value_type> LowerExpr

Definition at line 318 of file fvMatrixExpression.H.

◆ FaceFluxExpr

template<class Matrix>
typedef GeometricFieldRefWrap< typename Matrix::faceFluxFieldType > FaceFluxExpr

Definition at line 323 of file fvMatrixExpression.H.

◆ SourceExpr

template<class Matrix>
typedef ListRefWrap<value_type> SourceExpr

Definition at line 324 of file fvMatrixExpression.H.

Constructor & Destructor Documentation

◆ fvMatrixRefWrap() [1/3]

template<class Matrix>
fvMatrixRefWrap ( this_type & elems)
inline

Copy construct.

Definition at line 337 of file fvMatrixExpression.H.

References fvMatrixExpression< fvMatrixRefWrap< Matrix >, ListRefWrap< Matrix::psiFieldType::value_type >, ListRefWrap< Matrix::psiFieldType::value_type >, ListRefWrap< Matrix::psiFieldType::value_type >, GeometricFieldRefWrap< Matrix::faceFluxFieldType >, ListRefWrap< Matrix::psiFieldType::value_type > >::dimensions(), fvMatrixExpression< fvMatrixRefWrap< Matrix >, ListRefWrap< Matrix::psiFieldType::value_type >, ListRefWrap< Matrix::psiFieldType::value_type >, ListRefWrap< Matrix::psiFieldType::value_type >, GeometricFieldRefWrap< Matrix::faceFluxFieldType >, ListRefWrap< Matrix::psiFieldType::value_type > >::fvMatrixExpression(), fvMatrixRefWrap(), fvMatrixExpression< fvMatrixRefWrap< Matrix >, ListRefWrap< Matrix::psiFieldType::value_type >, ListRefWrap< Matrix::psiFieldType::value_type >, ListRefWrap< Matrix::psiFieldType::value_type >, GeometricFieldRefWrap< Matrix::faceFluxFieldType >, ListRefWrap< Matrix::psiFieldType::value_type > >::hasDiag(), fvMatrixExpression< fvMatrixRefWrap< Matrix >, ListRefWrap< Matrix::psiFieldType::value_type >, ListRefWrap< Matrix::psiFieldType::value_type >, ListRefWrap< Matrix::psiFieldType::value_type >, GeometricFieldRefWrap< Matrix::faceFluxFieldType >, ListRefWrap< Matrix::psiFieldType::value_type > >::hasFaceFluxCorrection(), fvMatrixExpression< fvMatrixRefWrap< Matrix >, ListRefWrap< Matrix::psiFieldType::value_type >, ListRefWrap< Matrix::psiFieldType::value_type >, ListRefWrap< Matrix::psiFieldType::value_type >, GeometricFieldRefWrap< Matrix::faceFluxFieldType >, ListRefWrap< Matrix::psiFieldType::value_type > >::hasLower(), and fvMatrixExpression< fvMatrixRefWrap< Matrix >, ListRefWrap< Matrix::psiFieldType::value_type >, ListRefWrap< Matrix::psiFieldType::value_type >, ListRefWrap< Matrix::psiFieldType::value_type >, GeometricFieldRefWrap< Matrix::faceFluxFieldType >, ListRefWrap< Matrix::psiFieldType::value_type > >::hasUpper().

Referenced by fvMatrixRefWrap(), fvMatrixRefWrap(), and fvMatrixRefWrap().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ fvMatrixRefWrap() [2/3]

template<class Matrix>
fvMatrixRefWrap ( this_type && elems)
inline

Move construct.

Definition at line 361 of file fvMatrixExpression.H.

References fvMatrixExpression< fvMatrixRefWrap< Matrix >, ListRefWrap< Matrix::psiFieldType::value_type >, ListRefWrap< Matrix::psiFieldType::value_type >, ListRefWrap< Matrix::psiFieldType::value_type >, GeometricFieldRefWrap< Matrix::faceFluxFieldType >, ListRefWrap< Matrix::psiFieldType::value_type > >::dimensions(), fvMatrixExpression< fvMatrixRefWrap< Matrix >, ListRefWrap< Matrix::psiFieldType::value_type >, ListRefWrap< Matrix::psiFieldType::value_type >, ListRefWrap< Matrix::psiFieldType::value_type >, GeometricFieldRefWrap< Matrix::faceFluxFieldType >, ListRefWrap< Matrix::psiFieldType::value_type > >::fvMatrixExpression(), fvMatrixRefWrap(), fvMatrixExpression< fvMatrixRefWrap< Matrix >, ListRefWrap< Matrix::psiFieldType::value_type >, ListRefWrap< Matrix::psiFieldType::value_type >, ListRefWrap< Matrix::psiFieldType::value_type >, GeometricFieldRefWrap< Matrix::faceFluxFieldType >, ListRefWrap< Matrix::psiFieldType::value_type > >::hasDiag(), fvMatrixExpression< fvMatrixRefWrap< Matrix >, ListRefWrap< Matrix::psiFieldType::value_type >, ListRefWrap< Matrix::psiFieldType::value_type >, ListRefWrap< Matrix::psiFieldType::value_type >, GeometricFieldRefWrap< Matrix::faceFluxFieldType >, ListRefWrap< Matrix::psiFieldType::value_type > >::hasFaceFluxCorrection(), fvMatrixExpression< fvMatrixRefWrap< Matrix >, ListRefWrap< Matrix::psiFieldType::value_type >, ListRefWrap< Matrix::psiFieldType::value_type >, ListRefWrap< Matrix::psiFieldType::value_type >, GeometricFieldRefWrap< Matrix::faceFluxFieldType >, ListRefWrap< Matrix::psiFieldType::value_type > >::hasLower(), and fvMatrixExpression< fvMatrixRefWrap< Matrix >, ListRefWrap< Matrix::psiFieldType::value_type >, ListRefWrap< Matrix::psiFieldType::value_type >, ListRefWrap< Matrix::psiFieldType::value_type >, GeometricFieldRefWrap< Matrix::faceFluxFieldType >, ListRefWrap< Matrix::psiFieldType::value_type > >::hasUpper().

Here is the call graph for this function:

◆ fvMatrixRefWrap() [3/3]

template<class Matrix>
template<typename E>
fvMatrixRefWrap ( this_type & elems,
const fvMatrixExpression< E, typename E::DiagExpr, typename E::UpperExpr, typename E::LowerExpr, typename E::FaceFluxExpr, typename E::SourceExpr > & expr )
inline

Definition at line 384 of file fvMatrixExpression.H.

References fvMatrixExpression< fvMatrixRefWrap< Matrix >, ListRefWrap< Matrix::psiFieldType::value_type >, ListRefWrap< Matrix::psiFieldType::value_type >, ListRefWrap< Matrix::psiFieldType::value_type >, GeometricFieldRefWrap< Matrix::faceFluxFieldType >, ListRefWrap< Matrix::psiFieldType::value_type > >::dimensions(), fvMatrixExpression< fvMatrixRefWrap< Matrix >, ListRefWrap< Matrix::psiFieldType::value_type >, ListRefWrap< Matrix::psiFieldType::value_type >, ListRefWrap< Matrix::psiFieldType::value_type >, GeometricFieldRefWrap< Matrix::faceFluxFieldType >, ListRefWrap< Matrix::psiFieldType::value_type > >::fvMatrixExpression(), fvMatrixRefWrap(), fvMatrixExpression< fvMatrixRefWrap< Matrix >, ListRefWrap< Matrix::psiFieldType::value_type >, ListRefWrap< Matrix::psiFieldType::value_type >, ListRefWrap< Matrix::psiFieldType::value_type >, GeometricFieldRefWrap< Matrix::faceFluxFieldType >, ListRefWrap< Matrix::psiFieldType::value_type > >::hasDiag(), fvMatrixExpression< fvMatrixRefWrap< Matrix >, ListRefWrap< Matrix::psiFieldType::value_type >, ListRefWrap< Matrix::psiFieldType::value_type >, ListRefWrap< Matrix::psiFieldType::value_type >, GeometricFieldRefWrap< Matrix::faceFluxFieldType >, ListRefWrap< Matrix::psiFieldType::value_type > >::hasFaceFluxCorrection(), fvMatrixExpression< fvMatrixRefWrap< Matrix >, ListRefWrap< Matrix::psiFieldType::value_type >, ListRefWrap< Matrix::psiFieldType::value_type >, ListRefWrap< Matrix::psiFieldType::value_type >, GeometricFieldRefWrap< Matrix::faceFluxFieldType >, ListRefWrap< Matrix::psiFieldType::value_type > >::hasLower(), and fvMatrixExpression< fvMatrixRefWrap< Matrix >, ListRefWrap< Matrix::psiFieldType::value_type >, ListRefWrap< Matrix::psiFieldType::value_type >, ListRefWrap< Matrix::psiFieldType::value_type >, GeometricFieldRefWrap< Matrix::faceFluxFieldType >, ListRefWrap< Matrix::psiFieldType::value_type > >::hasUpper().

Here is the call graph for this function:

Member Function Documentation

◆ operator=()

template<class Matrix>
template<typename E>
void operator= ( const fvMatrixExpression< E, typename E::DiagExpr, typename E::UpperExpr, typename E::LowerExpr, typename E::FaceFluxExpr, typename E::SourceExpr > & expr)
inline

◆ evaluate()

template<class Matrix>
template<typename E>
this_type & evaluate ( const fvMatrixExpression< E, typename E::DiagExpr, typename E::UpperExpr, typename E::LowerExpr, typename E::FaceFluxExpr, typename E::SourceExpr > & expr)
inline

◆ diag() [1/2]

template<class Matrix>
DiagExpr diag ( ) const
inline

Definition at line 463 of file fvMatrixExpression.H.

◆ diag() [2/2]

template<class Matrix>
DiagExpr diag ( )
inline

Definition at line 468 of file fvMatrixExpression.H.

◆ upper() [1/2]

template<class Matrix>
UpperExpr upper ( ) const
inline

Definition at line 473 of file fvMatrixExpression.H.

◆ upper() [2/2]

template<class Matrix>
UpperExpr upper ( )
inline

Definition at line 478 of file fvMatrixExpression.H.

◆ lower() [1/2]

template<class Matrix>
LowerExpr lower ( ) const
inline

Definition at line 483 of file fvMatrixExpression.H.

◆ lower() [2/2]

template<class Matrix>
LowerExpr lower ( )
inline

Definition at line 488 of file fvMatrixExpression.H.

◆ source() [1/2]

template<class Matrix>
SourceExpr source ( ) const
inline

Definition at line 496 of file fvMatrixExpression.H.

◆ source() [2/2]

template<class Matrix>
SourceExpr source ( )
inline

Definition at line 501 of file fvMatrixExpression.H.

◆ internalCoeffs() [1/2]

template<class Matrix>
UpperExpr internalCoeffs ( const label i)
inline

Definition at line 506 of file fvMatrixExpression.H.

References List< T >::null().

Here is the call graph for this function:

◆ internalCoeffs() [2/2]

template<class Matrix>
UpperExpr internalCoeffs ( const label i) const
inline

Definition at line 516 of file fvMatrixExpression.H.

References List< T >::null().

Here is the call graph for this function:

◆ boundaryCoeffs() [1/2]

template<class Matrix>
UpperExpr boundaryCoeffs ( const label i)
inline

Definition at line 526 of file fvMatrixExpression.H.

References List< T >::null().

Here is the call graph for this function:

◆ boundaryCoeffs() [2/2]

template<class Matrix>
UpperExpr boundaryCoeffs ( const label i) const
inline

Definition at line 536 of file fvMatrixExpression.H.

References List< T >::null().

Here is the call graph for this function:

◆ faceFluxCorrection() [1/2]

template<class Matrix>
FaceFluxExpr faceFluxCorrection ( ) const
inline

Definition at line 546 of file fvMatrixExpression.H.

◆ faceFluxCorrection() [2/2]

template<class Matrix>
FaceFluxExpr faceFluxCorrection ( )
inline

Definition at line 554 of file fvMatrixExpression.H.

Member Data Documentation

◆ is_leaf

template<class Matrix>
bool is_leaf = false
staticconstexpr

Definition at line 301 of file fvMatrixExpression.H.


The documentation for this class was generated from the following file: