Loading...
Searching...
No Matches
fvMatrixExpression< E, DiagExpr, UpperExpr, LowerExpr, FaceFluxExpr, SourceExpr > Class Template Reference

Expression of fvMatrix. More...

#include <fvMatrixExpression.H>

Inheritance diagram for fvMatrixExpression< E, DiagExpr, UpperExpr, LowerExpr, FaceFluxExpr, SourceExpr >:
Collaboration diagram for fvMatrixExpression< E, DiagExpr, UpperExpr, LowerExpr, FaceFluxExpr, SourceExpr >:

Public Member Functions

 fvMatrixExpression (const bool hasDiag, const bool hasUpper, const bool hasLower, const bool hasFaceFluxCorrection, const dimensionSet &dimensions)
DiagExpr diag () const
DiagExpr diag ()
UpperExpr upper () const
UpperExpr upper ()
LowerExpr lower () const
LowerExpr lower ()
bool hasDiag () const
bool hasUpper () const
bool hasLower () const
bool diagonal () const
bool symmetric () const
bool asymmetric () const
bool hasFaceFluxCorrection () const
SourceExpr source ()
SourceExpr source () const
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 ()
const dimensionSetdimensions () const noexcept
template<class Matrix>
Matrixevaluate (Matrix &m) const
 Helper to evaluate (=construct) an fvMatrix.

Static Public Attributes

static constexpr bool is_leaf = false

Protected Attributes

const bool hasDiag_
const bool hasUpper_
const bool hasLower_
const bool hasFaceFluxCorrection_
dimensionSet dimensions_

Detailed Description

template<typename E, typename DiagExpr, typename UpperExpr, typename LowerExpr, typename FaceFluxExpr, typename SourceExpr>
class Foam::Expression::fvMatrixExpression< E, DiagExpr, UpperExpr, LowerExpr, FaceFluxExpr, SourceExpr >

Expression of fvMatrix.

Bit different:

  • immediately stores state (hasDiag, hasUpper etc.)
  • delays execution of building coefficients
  • big problem: individual components can be built differently so different template argument ... Needs to be templated on all outputs separately!

Definition at line 77 of file fvMatrixExpression.H.

Constructor & Destructor Documentation

◆ fvMatrixExpression()

template<typename E, typename DiagExpr, typename UpperExpr, typename LowerExpr, typename FaceFluxExpr, typename SourceExpr>
fvMatrixExpression ( const bool hasDiag,
const bool hasUpper,
const bool hasLower,
const bool hasFaceFluxCorrection,
const dimensionSet & dimensions )
inline

Definition at line 92 of file fvMatrixExpression.H.

References dimensions(), dimensions_, hasDiag(), hasDiag_, hasFaceFluxCorrection(), hasFaceFluxCorrection_, hasLower(), hasLower_, hasUpper(), and hasUpper_.

Here is the call graph for this function:

Member Function Documentation

◆ diag() [1/2]

template<typename E, typename DiagExpr, typename UpperExpr, typename LowerExpr, typename FaceFluxExpr, typename SourceExpr>
DiagExpr diag ( ) const
inline

Definition at line 119 of file fvMatrixExpression.H.

Referenced by evaluate().

Here is the caller graph for this function:

◆ diag() [2/2]

template<typename E, typename DiagExpr, typename UpperExpr, typename LowerExpr, typename FaceFluxExpr, typename SourceExpr>
DiagExpr diag ( )
inline

Definition at line 124 of file fvMatrixExpression.H.

◆ upper() [1/2]

template<typename E, typename DiagExpr, typename UpperExpr, typename LowerExpr, typename FaceFluxExpr, typename SourceExpr>
UpperExpr upper ( ) const
inline

Definition at line 129 of file fvMatrixExpression.H.

Referenced by evaluate().

Here is the caller graph for this function:

◆ upper() [2/2]

template<typename E, typename DiagExpr, typename UpperExpr, typename LowerExpr, typename FaceFluxExpr, typename SourceExpr>
UpperExpr upper ( )
inline

Definition at line 134 of file fvMatrixExpression.H.

◆ lower() [1/2]

template<typename E, typename DiagExpr, typename UpperExpr, typename LowerExpr, typename FaceFluxExpr, typename SourceExpr>
LowerExpr lower ( ) const
inline

Definition at line 139 of file fvMatrixExpression.H.

Referenced by evaluate().

Here is the caller graph for this function:

◆ lower() [2/2]

template<typename E, typename DiagExpr, typename UpperExpr, typename LowerExpr, typename FaceFluxExpr, typename SourceExpr>
LowerExpr lower ( )
inline

Definition at line 144 of file fvMatrixExpression.H.

◆ hasDiag()

template<typename E, typename DiagExpr, typename UpperExpr, typename LowerExpr, typename FaceFluxExpr, typename SourceExpr>
bool hasDiag ( ) const
inline

Definition at line 149 of file fvMatrixExpression.H.

References hasDiag_.

Referenced by asymmetric(), diagonal(), evaluate(), fvMatrixExpression(), and symmetric().

Here is the caller graph for this function:

◆ hasUpper()

template<typename E, typename DiagExpr, typename UpperExpr, typename LowerExpr, typename FaceFluxExpr, typename SourceExpr>
bool hasUpper ( ) const
inline

Definition at line 153 of file fvMatrixExpression.H.

References hasUpper_.

Referenced by asymmetric(), diagonal(), evaluate(), fvMatrixExpression(), and symmetric().

Here is the caller graph for this function:

◆ hasLower()

template<typename E, typename DiagExpr, typename UpperExpr, typename LowerExpr, typename FaceFluxExpr, typename SourceExpr>
bool hasLower ( ) const
inline

Definition at line 157 of file fvMatrixExpression.H.

References hasLower_.

Referenced by asymmetric(), diagonal(), evaluate(), fvMatrixExpression(), and symmetric().

Here is the caller graph for this function:

◆ diagonal()

template<typename E, typename DiagExpr, typename UpperExpr, typename LowerExpr, typename FaceFluxExpr, typename SourceExpr>
bool diagonal ( ) const
inline

Definition at line 161 of file fvMatrixExpression.H.

References hasDiag(), hasLower(), and hasUpper().

Here is the call graph for this function:

◆ symmetric()

template<typename E, typename DiagExpr, typename UpperExpr, typename LowerExpr, typename FaceFluxExpr, typename SourceExpr>
bool symmetric ( ) const
inline

Definition at line 165 of file fvMatrixExpression.H.

References hasDiag(), hasLower(), and hasUpper().

Here is the call graph for this function:

◆ asymmetric()

template<typename E, typename DiagExpr, typename UpperExpr, typename LowerExpr, typename FaceFluxExpr, typename SourceExpr>
bool asymmetric ( ) const
inline

Definition at line 169 of file fvMatrixExpression.H.

References hasDiag(), hasLower(), and hasUpper().

Here is the call graph for this function:

◆ hasFaceFluxCorrection()

template<typename E, typename DiagExpr, typename UpperExpr, typename LowerExpr, typename FaceFluxExpr, typename SourceExpr>
bool hasFaceFluxCorrection ( ) const
inline

Definition at line 173 of file fvMatrixExpression.H.

References hasFaceFluxCorrection_.

Referenced by evaluate(), and fvMatrixExpression().

Here is the caller graph for this function:

◆ source() [1/2]

template<typename E, typename DiagExpr, typename UpperExpr, typename LowerExpr, typename FaceFluxExpr, typename SourceExpr>
SourceExpr source ( )
inline

Definition at line 181 of file fvMatrixExpression.H.

◆ source() [2/2]

template<typename E, typename DiagExpr, typename UpperExpr, typename LowerExpr, typename FaceFluxExpr, typename SourceExpr>
SourceExpr source ( ) const
inline

Definition at line 186 of file fvMatrixExpression.H.

◆ internalCoeffs() [1/2]

template<typename E, typename DiagExpr, typename UpperExpr, typename LowerExpr, typename FaceFluxExpr, typename SourceExpr>
UpperExpr internalCoeffs ( const label i)
inline

Definition at line 191 of file fvMatrixExpression.H.

Referenced by evaluate().

Here is the caller graph for this function:

◆ internalCoeffs() [2/2]

template<typename E, typename DiagExpr, typename UpperExpr, typename LowerExpr, typename FaceFluxExpr, typename SourceExpr>
UpperExpr internalCoeffs ( const label i) const
inline

Definition at line 196 of file fvMatrixExpression.H.

◆ boundaryCoeffs() [1/2]

template<typename E, typename DiagExpr, typename UpperExpr, typename LowerExpr, typename FaceFluxExpr, typename SourceExpr>
UpperExpr boundaryCoeffs ( const label i)
inline

Definition at line 201 of file fvMatrixExpression.H.

Referenced by evaluate().

Here is the caller graph for this function:

◆ boundaryCoeffs() [2/2]

template<typename E, typename DiagExpr, typename UpperExpr, typename LowerExpr, typename FaceFluxExpr, typename SourceExpr>
UpperExpr boundaryCoeffs ( const label i) const
inline

Definition at line 206 of file fvMatrixExpression.H.

◆ faceFluxCorrection() [1/2]

template<typename E, typename DiagExpr, typename UpperExpr, typename LowerExpr, typename FaceFluxExpr, typename SourceExpr>
FaceFluxExpr faceFluxCorrection ( ) const
inline

Definition at line 211 of file fvMatrixExpression.H.

Referenced by evaluate().

Here is the caller graph for this function:

◆ faceFluxCorrection() [2/2]

template<typename E, typename DiagExpr, typename UpperExpr, typename LowerExpr, typename FaceFluxExpr, typename SourceExpr>
FaceFluxExpr faceFluxCorrection ( )
inline

Definition at line 216 of file fvMatrixExpression.H.

◆ dimensions()

template<typename E, typename DiagExpr, typename UpperExpr, typename LowerExpr, typename FaceFluxExpr, typename SourceExpr>
const dimensionSet & dimensions ( ) const
inlinenoexcept

Definition at line 221 of file fvMatrixExpression.H.

References dimensions_, and Foam::noexcept.

Referenced by evaluate(), and fvMatrixExpression().

Here is the caller graph for this function:

◆ evaluate()

template<typename E, typename DiagExpr, typename UpperExpr, typename LowerExpr, typename FaceFluxExpr, typename SourceExpr>
template<class Matrix>
Matrix & evaluate ( Matrix & m) const
inline

Helper to evaluate (=construct) an fvMatrix.

Definition at line 233 of file fvMatrixExpression.H.

References boundaryCoeffs(), diag(), Matrix< Form, Type >::diag(), dimensions(), faceFluxCorrection(), hasDiag(), hasFaceFluxCorrection(), hasLower(), hasUpper(), internalCoeffs(), lower(), n, and upper().

Here is the call graph for this function:

Member Data Documentation

◆ hasDiag_

template<typename E, typename DiagExpr, typename UpperExpr, typename LowerExpr, typename FaceFluxExpr, typename SourceExpr>
const bool hasDiag_
protected

Definition at line 81 of file fvMatrixExpression.H.

Referenced by fvMatrixExpression(), and hasDiag().

◆ hasUpper_

template<typename E, typename DiagExpr, typename UpperExpr, typename LowerExpr, typename FaceFluxExpr, typename SourceExpr>
const bool hasUpper_
protected

Definition at line 82 of file fvMatrixExpression.H.

Referenced by fvMatrixExpression(), and hasUpper().

◆ hasLower_

template<typename E, typename DiagExpr, typename UpperExpr, typename LowerExpr, typename FaceFluxExpr, typename SourceExpr>
const bool hasLower_
protected

Definition at line 83 of file fvMatrixExpression.H.

Referenced by fvMatrixExpression(), and hasLower().

◆ hasFaceFluxCorrection_

template<typename E, typename DiagExpr, typename UpperExpr, typename LowerExpr, typename FaceFluxExpr, typename SourceExpr>
const bool hasFaceFluxCorrection_
protected

Definition at line 84 of file fvMatrixExpression.H.

Referenced by fvMatrixExpression(), and hasFaceFluxCorrection().

◆ dimensions_

template<typename E, typename DiagExpr, typename UpperExpr, typename LowerExpr, typename FaceFluxExpr, typename SourceExpr>
dimensionSet dimensions_
protected

Definition at line 85 of file fvMatrixExpression.H.

Referenced by dimensions(), and fvMatrixExpression().

◆ is_leaf

template<typename E, typename DiagExpr, typename UpperExpr, typename LowerExpr, typename FaceFluxExpr, typename SourceExpr>
bool is_leaf = false
staticconstexpr

Definition at line 88 of file fvMatrixExpression.H.


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