fvMatrix< Type > Class Template Reference

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. More...

Inheritance diagram for fvMatrix< Type >:
Collaboration diagram for fvMatrix< Type >:

Classes

class  fvSolver
 Solver class returned by the solver function. More...
 

Public Types

typedef GeometricField< Type, fvsPatchField, surfaceMesh > * surfaceTypeFieldPtr
 Declare return type of the faceFluxCorrectionPtr() function. More...
 

Public Member Functions

 ClassName ("fvMatrix")
 
 fvMatrix (const GeometricField< Type, fvPatchField, volMesh > &, const dimensionSet &)
 Construct given a field to solve for. More...
 
 fvMatrix (const fvMatrix< Type > &)
 Copy constructor. More...
 
 fvMatrix (const tmp< fvMatrix< Type >> &)
 Copy constructor of tmp<fvMatrix<Type>> deleting argument. More...
 
 fvMatrix (const GeometricField< Type, fvPatchField, volMesh > &, Istream &)
 Construct from Istream given field to solve for. More...
 
tmp< fvMatrix< Type > > clone () const
 Clone. More...
 
virtual ~fvMatrix ()
 Destructor. More...
 
const GeometricField< Type, fvPatchField, volMesh > & psi () const
 
const dimensionSetdimensions () const
 
Field< Type > & source ()
 
const Field< Type > & source () const
 
FieldField< Field, Type > & internalCoeffs ()
 fvBoundary scalar field containing pseudo-matrix coeffs More...
 
FieldField< Field, Type > & boundaryCoeffs ()
 fvBoundary scalar field containing pseudo-matrix coeffs More...
 
surfaceTypeFieldPtrfaceFluxCorrectionPtr ()
 Return pointer to face-flux non-orthogonal correction field. More...
 
void setValues (const labelUList &cells, const UList< Type > &values)
 Set solution in given cells to the specified values. More...
 
void setValues (const labelUList &cells, const UIndirectList< Type > &values)
 Set solution in given cells to the specified values. More...
 
void setReference (const label celli, const Type &value, const bool forceReference=false)
 Set reference level for solution. More...
 
void setComponentReference (const label patchi, const label facei, const direction cmpt, const scalar value)
 Set reference level for a component of the solution. More...
 
void relax (const scalar alpha)
 Relax matrix (for steady-state solution). More...
 
void relax ()
 Relax matrix (for steady-state solution). More...
 
void boundaryManipulate (typename GeometricField< Type, fvPatchField, volMesh >::Boundary &values)
 Manipulate based on a boundary field. More...
 
autoPtr< fvSolversolver (const dictionary &)
 Construct and return the solver. More...
 
autoPtr< fvSolversolver ()
 Construct and return the solver. More...
 
SolverPerformance< Type > solve (const dictionary &)
 Solve segregated or coupled returning the solution statistics. More...
 
SolverPerformance< Type > solveSegregated (const dictionary &)
 Solve segregated returning the solution statistics. More...
 
SolverPerformance< Type > solveCoupled (const dictionary &)
 Solve coupled returning the solution statistics. More...
 
SolverPerformance< Type > solve (const word &name)
 Solve segregated or coupled returning the solution statistics. More...
 
SolverPerformance< Type > solve ()
 Solve returning the solution statistics. More...
 
tmp< Field< Type > > residual () const
 Return the matrix residual. More...
 
tmp< scalarFieldD () const
 Return the matrix scalar diagonal. More...
 
tmp< Field< Type > > DD () const
 Return the matrix Type diagonal. More...
 
tmp< volScalarFieldA () const
 Return the central coefficient. More...
 
tmp< GeometricField< Type, fvPatchField, volMesh > > H () const
 Return the H operation source. More...
 
tmp< volScalarFieldH1 () const
 Return H(1) More...
 
tmp< GeometricField< Type, fvsPatchField, surfaceMesh > > flux () const
 Return the face-flux field from the matrix. More...
 
void operator= (const fvMatrix< Type > &)
 
void operator= (const tmp< fvMatrix< Type >> &)
 
void negate ()
 
void operator+= (const fvMatrix< Type > &)
 
void operator+= (const tmp< fvMatrix< Type >> &)
 
void operator-= (const fvMatrix< Type > &)
 
void operator-= (const tmp< fvMatrix< Type >> &)
 
void operator+= (const DimensionedField< Type, volMesh > &)
 
void operator+= (const tmp< DimensionedField< Type, volMesh >> &)
 
void operator+= (const tmp< GeometricField< Type, fvPatchField, volMesh >> &)
 
void operator-= (const DimensionedField< Type, volMesh > &)
 
void operator-= (const tmp< DimensionedField< Type, volMesh >> &)
 
void operator-= (const tmp< GeometricField< Type, fvPatchField, volMesh >> &)
 
void operator+= (const dimensioned< Type > &)
 
void operator-= (const dimensioned< Type > &)
 
void operator+= (const zero &)
 
void operator-= (const zero &)
 
void operator*= (const volScalarField::Internal &)
 
void operator*= (const tmp< volScalarField::Internal > &)
 
void operator*= (const tmp< volScalarField > &)
 
void operator*= (const dimensioned< scalar > &)
 
template<>
void setComponentReference (const label patchi, const label facei, const direction, const scalar value)
 
template<>
Foam::autoPtr< Foam::fvMatrix< Foam::scalar >::fvSolversolver (const dictionary &solverControls)
 
template<>
Foam::solverPerformance solveSegregated (const dictionary &solverControls)
 
template<>
Foam::tmp< Foam::scalarFieldresidual () const
 
template<>
Foam::tmp< Foam::volScalarFieldH () const
 
template<>
Foam::tmp< Foam::volScalarFieldH1 () const
 
template<>
void setComponentReference (const label patchi, const label facei, const direction, const scalar value)
 
template<>
autoPtr< fvMatrix< scalar >::fvSolversolver (const dictionary &)
 
template<>
solverPerformance solveSegregated (const dictionary &)
 
template<>
tmp< scalarFieldresidual () const
 
template<>
tmp< volScalarFieldH () const
 
template<>
tmp< volScalarFieldH1 () const
 
- Public Member Functions inherited from refCount
int count () const
 Return the current reference count. More...
 
bool unique () const
 Return true if the reference count is zero. More...
 
void operator++ ()
 Increment the reference count. More...
 
void operator++ (int)
 Increment the reference count. More...
 
void operator-- ()
 Decrement the reference count. More...
 
void operator-- (int)
 Decrement the reference count. More...
 
- Public Member Functions inherited from lduMatrix
 ClassName ("lduMatrix")
 
 lduMatrix (const lduMesh &)
 Construct given an LDU addressed mesh. More...
 
 lduMatrix (const lduMatrix &)
 Copy constructor. More...
 
 lduMatrix (lduMatrix &, bool reuse)
 Copy constructor or re-use as specified. More...
 
 lduMatrix (const lduMesh &, Istream &)
 Construct given an LDU addressed mesh and an Istream. More...
 
 ~lduMatrix ()
 Destructor. More...
 
const lduMeshmesh () const
 Return the LDU mesh from which the addressing is obtained. More...
 
const lduAddressinglduAddr () const
 Return the LDU addressing. More...
 
const lduSchedulepatchSchedule () const
 Return the patch evaluation schedule. More...
 
scalarFieldlower ()
 
scalarFielddiag ()
 
scalarFieldupper ()
 
scalarFieldlower (const label size)
 
scalarFielddiag (const label nCoeffs)
 
scalarFieldupper (const label nCoeffs)
 
const scalarFieldlower () const
 
const scalarFielddiag () const
 
const scalarFieldupper () const
 
bool hasDiag () const
 
bool hasUpper () const
 
bool hasLower () const
 
bool diagonal () const
 
bool symmetric () const
 
bool asymmetric () const
 
void sumDiag ()
 
void negSumDiag ()
 
void sumMagOffDiag (scalarField &sumOff) const
 
void Amul (scalarField &, const tmp< scalarField > &, const FieldField< Field, scalar > &, const lduInterfaceFieldPtrsList &, const direction cmpt) const
 Matrix multiplication with updated interfaces. More...
 
void Tmul (scalarField &, const tmp< scalarField > &, const FieldField< Field, scalar > &, const lduInterfaceFieldPtrsList &, const direction cmpt) const
 Matrix transpose multiplication with updated interfaces. More...
 
void sumA (scalarField &, const FieldField< Field, scalar > &, const lduInterfaceFieldPtrsList &) const
 Sum the coefficients on each row of the matrix. More...
 
void residual (scalarField &rA, const scalarField &psi, const scalarField &source, const FieldField< Field, scalar > &interfaceBouCoeffs, const lduInterfaceFieldPtrsList &interfaces, const direction cmpt) const
 
tmp< scalarFieldresidual (const scalarField &psi, const scalarField &source, const FieldField< Field, scalar > &interfaceBouCoeffs, const lduInterfaceFieldPtrsList &interfaces, const direction cmpt) const
 
void initMatrixInterfaces (const FieldField< Field, scalar > &interfaceCoeffs, const lduInterfaceFieldPtrsList &interfaces, const scalarField &psiif, scalarField &result, const direction cmpt) const
 Initialise the update of interfaced interfaces. More...
 
void updateMatrixInterfaces (const FieldField< Field, scalar > &interfaceCoeffs, const lduInterfaceFieldPtrsList &interfaces, const scalarField &psiif, scalarField &result, const direction cmpt) const
 Update interfaced interfaces for matrix operations. More...
 
template<class Type >
tmp< Field< Type > > H (const Field< Type > &) const
 
template<class Type >
tmp< Field< Type > > H (const tmp< Field< Type >> &) const
 
tmp< scalarFieldH1 () const
 
template<class Type >
tmp< Field< Type > > faceH (const Field< Type > &) const
 
template<class Type >
tmp< Field< Type > > faceH (const tmp< Field< Type >> &) const
 
InfoProxy< lduMatrixinfo () const
 Return info proxy. More...
 
void operator= (const lduMatrix &)
 
void negate ()
 
void operator+= (const lduMatrix &)
 
void operator-= (const lduMatrix &)
 
void operator*= (const scalarField &)
 
void operator*= (scalar)
 
template<class Type >
Foam::tmp< Foam::Field< Type > > H (const Field< Type > &psi) const
 
template<class Type >
Foam::tmp< Foam::Field< Type > > H (const tmp< Field< Type >> &tpsi) const
 
template<class Type >
Foam::tmp< Foam::Field< Type > > faceH (const Field< Type > &psi) const
 
template<class Type >
Foam::tmp< Foam::Field< Type > > faceH (const tmp< Field< Type >> &tpsi) const
 

Protected Member Functions

template<class Type2 >
void addToInternalField (const labelUList &addr, const Field< Type2 > &pf, Field< Type2 > &intf) const
 Add patch contribution to internal field. More...
 
template<class Type2 >
void addToInternalField (const labelUList &addr, const tmp< Field< Type2 >> &tpf, Field< Type2 > &intf) const
 
template<class Type2 >
void subtractFromInternalField (const labelUList &addr, const Field< Type2 > &pf, Field< Type2 > &intf) const
 Subtract patch contribution from internal field. More...
 
template<class Type2 >
void subtractFromInternalField (const labelUList &addr, const tmp< Field< Type2 >> &tpf, Field< Type2 > &intf) const
 
void addBoundaryDiag (scalarField &diag, const direction cmpt) const
 
void addCmptAvBoundaryDiag (scalarField &diag) const
 
void addBoundarySource (Field< Type > &source, const bool couples=true) const
 
template<template< class > class ListType>
void setValuesFromList (const labelUList &cells, const ListType< Type > &values)
 Set solution in given cells to the specified values. More...
 
- Protected Member Functions inherited from refCount
 refCount ()
 Construct null initializing count to 0. More...
 

Friends

class fvSolver
 Declare friendship with the fvSolver class. More...
 
tmp< GeometricField< Type, fvPatchField, volMesh > > operator & (const fvMatrix< Type > &, const DimensionedField< Type, volMesh > &)
 
tmp< GeometricField< Type, fvPatchField, volMesh > > operator & (const fvMatrix< Type > &, const tmp< GeometricField< Type, fvPatchField, volMesh >> &)
 
tmp< GeometricField< Type, fvPatchField, volMesh > > operator & (const tmp< fvMatrix< Type >> &, const DimensionedField< Type, volMesh > &)
 
tmp< GeometricField< Type, fvPatchField, volMesh > > operator & (const tmp< fvMatrix< Type >> &, const tmp< GeometricField< Type, fvPatchField, volMesh >> &)
 
Ostreamoperator (Ostream &, const fvMatrix< Type > &)
 

Detailed Description

template<class Type>
class Foam::fvMatrix< Type >

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.

Source files

Definition at line 72 of file fvPatchField.H.

Member Typedef Documentation

◆ surfaceTypeFieldPtr

Declare return type of the faceFluxCorrectionPtr() function.

Definition at line 319 of file fvMatrix.H.

Constructor & Destructor Documentation

◆ fvMatrix() [1/4]

fvMatrix ( const GeometricField< Type, fvPatchField, volMesh > &  psi,
const dimensionSet ds 
)

Construct given a field to solve for.

Definition at line 268 of file fvMatrix.C.

References GeometricField< Type, PatchField, GeoMesh >::boundaryFieldRef(), Foam::endl(), regIOobject::eventNo(), forAll, InfoInFunction, DimensionedField< Type, GeoMesh >::mesh(), patchi, and Foam::Zero.

Referenced by fvMatrix< Type >::fvMatrix(), fvMatrix< Type >::fvSolver::fvSolver(), and fvMatrix< Type >::setValuesFromList().

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

◆ fvMatrix() [2/4]

fvMatrix ( const fvMatrix< Type > &  fvm)

Copy constructor.

Definition at line 322 of file fvMatrix.C.

References Foam::endl(), and InfoInFunction.

Here is the call graph for this function:

◆ fvMatrix() [3/4]

fvMatrix ( const tmp< fvMatrix< Type >> &  tfvm)

Copy constructor of tmp<fvMatrix<Type>> deleting argument.

Definition at line 351 of file fvMatrix.C.

References Foam::endl(), fvMatrix< Type >::fvMatrix(), and InfoInFunction.

Here is the call graph for this function:

◆ fvMatrix() [4/4]

fvMatrix ( const GeometricField< Type, fvPatchField, volMesh > &  psi,
Istream is 
)

Construct from Istream given field to solve for.

Definition at line 406 of file fvMatrix.C.

References Foam::endl(), forAll, InfoInFunction, DimensionedField< Type, GeoMesh >::mesh(), patchi, and Foam::Zero.

Here is the call graph for this function:

◆ ~fvMatrix()

~fvMatrix ( )
virtual

Destructor.

Definition at line 465 of file fvMatrix.C.

References Foam::endl(), InfoInFunction, and fvMatrix< Type >::setValues().

Referenced by fvMatrix< Type >::fvSolver::fvSolver().

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

Member Function Documentation

◆ addToInternalField() [1/2]

void addToInternalField ( const labelUList addr,
const Field< Type2 > &  pf,
Field< Type2 > &  intf 
) const
protected

Add patch contribution to internal field.

Definition at line 38 of file fvMatrix.C.

References Foam::abort(), Foam::FatalError, FatalErrorInFunction, forAll, List< Type >::size(), and UList< T >::size().

Referenced by fvMatrix< Type >::DD(), and fvMatrix< Type >::H1().

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

◆ addToInternalField() [2/2]

void addToInternalField ( const labelUList addr,
const tmp< Field< Type2 >> &  tpf,
Field< Type2 > &  intf 
) const
protected

Definition at line 61 of file fvMatrix.C.

References fvMatrix< Type >::subtractFromInternalField().

Here is the call graph for this function:

◆ subtractFromInternalField() [1/2]

void subtractFromInternalField ( const labelUList addr,
const Field< Type2 > &  pf,
Field< Type2 > &  intf 
) const
protected

Subtract patch contribution from internal field.

Definition at line 75 of file fvMatrix.C.

References Foam::abort(), Foam::FatalError, FatalErrorInFunction, forAll, List< Type >::size(), and UList< T >::size().

Referenced by fvMatrix< Type >::addToInternalField().

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

◆ subtractFromInternalField() [2/2]

void subtractFromInternalField ( const labelUList addr,
const tmp< Field< Type2 >> &  tpf,
Field< Type2 > &  intf 
) const
protected

Definition at line 98 of file fvMatrix.C.

References fvMatrix< Type >::addBoundaryDiag().

Here is the call graph for this function:

◆ addBoundaryDiag()

void addBoundaryDiag ( scalarField diag,
const direction  cmpt 
) const
protected

Definition at line 111 of file fvMatrix.C.

References Foam::component(), forAll, and patchi.

Referenced by fvMatrix< Type >::H(), fvMatrix< Type >::residual(), and fvMatrix< Type >::subtractFromInternalField().

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

◆ addCmptAvBoundaryDiag()

void addCmptAvBoundaryDiag ( scalarField diag) const
protected

Definition at line 129 of file fvMatrix.C.

References fvMatrix< Type >::addBoundarySource(), Foam::cmptAv(), forAll, and patchi.

Referenced by fvMatrix< Type >::D(), and fvMatrix< Type >::H().

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

◆ addBoundarySource()

void addBoundarySource ( Field< Type > &  source,
const bool  couples = true 
) const
protected

Definition at line 145 of file fvMatrix.C.

References Foam::cmptMultiply(), fvPatchField< Type >::coupled(), forAll, patchi, fvPatchField< Type >::patchNeighbourField(), and fvMatrix< Type >::setValuesFromList().

Referenced by fvMatrix< Type >::addCmptAvBoundaryDiag(), fvMatrix< Type >::H(), and fvMatrix< Type >::residual().

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

◆ setValuesFromList()

void setValuesFromList ( const labelUList cells,
const ListType< Type > &  values 
)
protected

Set solution in given cells to the specified values.

Definition at line 178 of file fvMatrix.C.

References polyMesh::boundaryMesh(), Foam::constant::universal::c, cells, primitiveMesh::cells(), Foam::diag(), forAll, fvMatrix< Type >::fvMatrix(), primitiveMesh::isInternalFace(), mesh, fvMesh::neighbour(), fvMesh::owner(), patchi, primitiveFieldRef(), psi, polyBoundaryMesh::whichPatch(), and Foam::Zero.

Referenced by fvMatrix< Type >::addBoundarySource(), and fvMatrix< Type >::setValues().

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

◆ ClassName()

ClassName ( "fvMatrix< Type >"  )

Referenced by fvMatrix< Type >::fvSolver::fvSolver().

Here is the caller graph for this function:

◆ clone()

Foam::tmp< Foam::fvMatrix< Type > > clone ( ) const

Clone.

Definition at line 453 of file fvMatrix.C.

Referenced by fvMatrix< Type >::fvSolver::fvSolver().

Here is the caller graph for this function:

◆ psi()

◆ dimensions()

◆ source() [1/2]

◆ source() [2/2]

const Field<Type>& source ( ) const
inline

Definition at line 297 of file fvMatrix.H.

References fvMatrix< Type >::boundaryCoeffs(), and fvMatrix< Type >::internalCoeffs().

Here is the call graph for this function:

◆ internalCoeffs()

FieldField<Field, Type>& internalCoeffs ( )
inline

fvBoundary scalar field containing pseudo-matrix coeffs

for internal cells

Definition at line 304 of file fvMatrix.H.

Referenced by gaussConvectionScheme< Type >::fvmDiv(), gaussLaplacianScheme< Type, GType >::fvmLaplacianUncorrected(), and fvMatrix< Type >::source().

Here is the caller graph for this function:

◆ boundaryCoeffs()

FieldField<Field, Type>& boundaryCoeffs ( )
inline

fvBoundary scalar field containing pseudo-matrix coeffs

for boundary cells

Definition at line 311 of file fvMatrix.H.

Referenced by gaussConvectionScheme< Type >::fvmDiv(), gaussLaplacianScheme< Type, GType >::fvmLaplacianUncorrected(), and fvMatrix< Type >::source().

Here is the caller graph for this function:

◆ faceFluxCorrectionPtr()

◆ setValues() [1/2]

void setValues ( const labelUList cells,
const UList< Type > &  values 
)

Set solution in given cells to the specified values.

and eliminate the corresponding equations from the matrix.

Definition at line 484 of file fvMatrix.C.

References fvMatrix< Type >::setValuesFromList().

Referenced by FixedValueConstraint< Type >::constrain(), fixedTemperatureConstraint::constrain(), fvMatrix< Type >::faceFluxCorrectionPtr(), fixedInternalValueFvPatchField< Type >::manipulateMatrix(), epsilonWallFunctionFvPatchScalarField::manipulateMatrix(), omegaWallFunctionFvPatchScalarField::manipulateMatrix(), and fvMatrix< Type >::~fvMatrix().

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

◆ setValues() [2/2]

void setValues ( const labelUList cells,
const UIndirectList< Type > &  values 
)

Set solution in given cells to the specified values.

and eliminate the corresponding equations from the matrix.

Definition at line 495 of file fvMatrix.C.

References fvMatrix< Type >::setReference(), and fvMatrix< Type >::setValuesFromList().

Here is the call graph for this function:

◆ setReference()

void setReference ( const label  celli,
const Type &  value,
const bool  forceReference = false 
)

Set reference level for solution.

Definition at line 506 of file fvMatrix.C.

References lduMatrix::diag(), and fvMatrix< Type >::source().

Referenced by Foam::CorrectPhi(), fvMatrix< Type >::faceFluxCorrectionPtr(), and fvMatrix< Type >::setValues().

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

◆ setComponentReference() [1/3]

void setComponentReference ( const label  patchi,
const label  facei,
const direction  cmpt,
const scalar  value 
)

Set reference level for a component of the solution.

on a given patch face

Definition at line 34 of file fvMatrixSolve.C.

References Foam::diag(), patchi, and fvMatrix< Type >::solve().

Referenced by fvMatrix< Type >::faceFluxCorrectionPtr().

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

◆ relax() [1/2]

◆ relax() [2/2]

void relax ( )

Relax matrix (for steady-state solution).

alpha is read from controlDict

Definition at line 672 of file fvMatrix.C.

References fvMatrix< Type >::boundaryManipulate().

Referenced by fvMatrix< Type >::faceFluxCorrectionPtr().

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

◆ boundaryManipulate()

void boundaryManipulate ( typename GeometricField< Type, fvPatchField, volMesh >::Boundary &  values)

Manipulate based on a boundary field.

Definition at line 692 of file fvMatrix.C.

References forAll, and patchi.

Referenced by kOmegaSST< eddyViscosity< RASModel< BasicMomentumTransportModel > >, BasicMomentumTransportModel >::correct(), fvMatrix< Type >::faceFluxCorrectionPtr(), and fvMatrix< Type >::relax().

Here is the caller graph for this function:

◆ solver() [1/4]

Construct and return the solver.

Use the given solver controls

◆ solver() [2/4]

Foam::autoPtr< typename Foam::fvMatrix< Type >::fvSolver > solver ( )

Construct and return the solver.

Solver controls read from fvSolution

Definition at line 281 of file fvMatrixSolve.C.

Referenced by fvMatrix< Type >::faceFluxCorrectionPtr(), and fvMatrix< Type >::setComponentReference().

Here is the caller graph for this function:

◆ solve() [1/3]

◆ solveSegregated() [1/3]

◆ solveCoupled()

◆ solve() [2/3]

Foam::SolverPerformance< Type > solve ( const word name)

Solve segregated or coupled returning the solution statistics.

Solver controls read from fvSolution

Definition at line 315 of file fvMatrixSolve.C.

References Foam::name(), and fvMatrix< Type >::fvSolver::solve().

Here is the call graph for this function:

◆ solve() [3/3]

Foam::SolverPerformance< Type > solve ( )

Solve returning the solution statistics.

Solver controls read from fvSolution

Definition at line 331 of file fvMatrixSolve.C.

References fvMatrix< Type >::fvSolver::solve().

Referenced by fvMatrix< Type >::setComponentReference().

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

◆ residual() [1/3]

Foam::tmp< Foam::Field< Type > > residual ( ) const

◆ D()

Foam::tmp< Foam::scalarField > D ( ) const

Return the matrix scalar diagonal.

Definition at line 705 of file fvMatrix.C.

References fvMatrix< Type >::addCmptAvBoundaryDiag(), lduMatrix::diag(), and tmp< T >::ref().

Referenced by fvMatrix< Type >::A(), fvMatrix< Type >::faceFluxCorrectionPtr(), and fvMatrix< Type >::relax().

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

◆ DD()

Foam::tmp< Foam::Field< Type > > DD ( ) const

Return the matrix Type diagonal.

Definition at line 714 of file fvMatrix.C.

References fvMatrix< Type >::addToInternalField(), fvPatchField< Type >::coupled(), lduMatrix::diag(), forAll, lduMatrix::lduAddr(), patchi, tmp< T >::ref(), and List< Type >::size().

Referenced by fvMatrix< Type >::faceFluxCorrectionPtr().

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

◆ A()

Return the central coefficient.

Definition at line 738 of file fvMatrix.C.

References fvMatrix< Type >::D(), Foam::dimVol, GeometricField< scalar, fvPatchField, volMesh >::New(), and tmp< T >::ref().

Referenced by Foam::checkMethod(), meanVelocityForce::constrain(), fvMatrix< Type >::faceFluxCorrectionPtr(), and kinematicSingleLayer::solveAlpha().

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

◆ H() [1/3]

◆ H1() [1/3]

◆ flux()

◆ operator=() [1/2]

void operator= ( const fvMatrix< Type > &  fvmv)

Definition at line 936 of file fvMatrix.C.

References Foam::abort(), Foam::FatalError, FatalErrorInFunction, and lduMatrix::operator=().

Referenced by fvMatrix< Type >::faceFluxCorrectionPtr(), and fvMatrix< Type >::operator=().

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

◆ operator=() [2/2]

void operator= ( const tmp< fvMatrix< Type >> &  tfvmv)

Definition at line 972 of file fvMatrix.C.

References fvMatrix< Type >::operator=().

Here is the call graph for this function:

◆ negate()

void negate ( )

Definition at line 980 of file fvMatrix.C.

References lduMatrix::negate().

Referenced by fvMatrix< Type >::faceFluxCorrectionPtr().

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

◆ operator+=() [1/7]

void operator+= ( const fvMatrix< Type > &  fvmv)

Definition at line 995 of file fvMatrix.C.

References Foam::checkMethod(), and lduMatrix::operator+=().

Referenced by fvMatrix< Type >::faceFluxCorrectionPtr(), and fvMatrix< Type >::operator+=().

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

◆ operator+=() [2/7]

void operator+= ( const tmp< fvMatrix< Type >> &  tfvmv)

Definition at line 1021 of file fvMatrix.C.

References fvMatrix< Type >::operator+=().

Here is the call graph for this function:

◆ operator-=() [1/7]

void operator-= ( const fvMatrix< Type > &  fvmv)

Definition at line 1029 of file fvMatrix.C.

References Foam::checkMethod(), and lduMatrix::operator-=().

Referenced by fvMatrix< Type >::faceFluxCorrectionPtr(), and fvMatrix< Type >::operator-=().

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

◆ operator-=() [2/7]

void operator-= ( const tmp< fvMatrix< Type >> &  tfvmv)

Definition at line 1053 of file fvMatrix.C.

References fvMatrix< Type >::operator-=().

Here is the call graph for this function:

◆ operator+=() [3/7]

void operator+= ( const DimensionedField< Type, volMesh > &  su)

Definition at line 1062 of file fvMatrix.C.

References Foam::checkMethod(), and fvMatrix< Type >::source().

Here is the call graph for this function:

◆ operator+=() [4/7]

void operator+= ( const tmp< DimensionedField< Type, volMesh >> &  tsu)

Definition at line 1073 of file fvMatrix.C.

References fvMatrix< Type >::operator+=().

Here is the call graph for this function:

◆ operator+=() [5/7]

void operator+= ( const tmp< GeometricField< Type, fvPatchField, volMesh >> &  tsu)

Definition at line 1084 of file fvMatrix.C.

References fvMatrix< Type >::operator+=().

Here is the call graph for this function:

◆ operator-=() [3/7]

void operator-= ( const DimensionedField< Type, volMesh > &  su)

Definition at line 1095 of file fvMatrix.C.

References Foam::checkMethod(), and fvMatrix< Type >::source().

Here is the call graph for this function:

◆ operator-=() [4/7]

void operator-= ( const tmp< DimensionedField< Type, volMesh >> &  tsu)

Definition at line 1106 of file fvMatrix.C.

References fvMatrix< Type >::operator-=().

Here is the call graph for this function:

◆ operator-=() [5/7]

void operator-= ( const tmp< GeometricField< Type, fvPatchField, volMesh >> &  tsu)

Definition at line 1117 of file fvMatrix.C.

References fvMatrix< Type >::operator-=().

Here is the call graph for this function:

◆ operator+=() [6/7]

void operator+= ( const dimensioned< Type > &  su)

Definition at line 1128 of file fvMatrix.C.

References fvMatrix< Type >::psi(), and fvMatrix< Type >::source().

Here is the call graph for this function:

◆ operator-=() [6/7]

void operator-= ( const dimensioned< Type > &  su)

Definition at line 1138 of file fvMatrix.C.

References fvMatrix< Type >::psi(), and fvMatrix< Type >::source().

Here is the call graph for this function:

◆ operator+=() [7/7]

void operator+= ( const zero )

Definition at line 1148 of file fvMatrix.C.

◆ operator-=() [7/7]

void operator-= ( const zero )

Definition at line 1156 of file fvMatrix.C.

◆ operator*=() [1/4]

void operator*= ( const volScalarField::Internal dsf)

Definition at line 1164 of file fvMatrix.C.

References Foam::abort(), Foam::FatalError, FatalErrorInFunction, forAll, lduMatrix::operator*=(), and patchi.

Referenced by fvMatrix< Type >::faceFluxCorrectionPtr(), and fvMatrix< Type >::operator*=().

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

◆ operator*=() [2/4]

void operator*= ( const tmp< volScalarField::Internal > &  tdsf)

Definition at line 1194 of file fvMatrix.C.

References fvMatrix< Type >::operator*=().

Here is the call graph for this function:

◆ operator*=() [3/4]

void operator*= ( const tmp< volScalarField > &  tvsf)

Definition at line 1205 of file fvMatrix.C.

References fvMatrix< Type >::operator*=().

Here is the call graph for this function:

◆ operator*=() [4/4]

void operator*= ( const dimensioned< scalar > &  ds)

Definition at line 1216 of file fvMatrix.C.

References Foam::checkMethod(), and lduMatrix::operator*=().

Here is the call graph for this function:

◆ setComponentReference() [2/3]

void setComponentReference ( const label  patchi,
const label  facei,
const direction  ,
const scalar  value 
)

Definition at line 34 of file fvScalarMatrix.C.

References Foam::diag(), patchi, and fvMatrix< Type >::solver().

Here is the call graph for this function:

◆ solver() [3/4]

Foam::autoPtr< Foam::fvMatrix< Foam::scalar >::fvSolver > solver ( const dictionary solverControls)

Definition at line 59 of file fvScalarMatrix.C.

References Foam::diag(), Foam::endl(), Foam::Info, messageStream::masterStream(), mesh, Foam::compressible::New(), and fvMatrix< Type >::fvSolver::solve().

Here is the call graph for this function:

◆ solveSegregated() [2/3]

◆ residual() [2/3]

Foam::tmp< Foam::scalarField > residual ( ) const

Definition at line 188 of file fvScalarMatrix.C.

References tmp< T >::ref().

Here is the call graph for this function:

◆ H() [2/3]

◆ H1() [2/3]

Definition at line 237 of file fvScalarMatrix.C.

References Foam::dimVol, Foam::compressible::New(), and GeometricField< Type, PatchField, GeoMesh >::ref().

Here is the call graph for this function:

◆ setComponentReference() [3/3]

void setComponentReference ( const label  patchi,
const label  facei,
const direction  ,
const scalar  value 
)

◆ solver() [4/4]

autoPtr< fvMatrix< scalar >::fvSolver > solver ( const dictionary )

◆ solveSegregated() [3/3]

solverPerformance solveSegregated ( const dictionary )

◆ residual() [3/3]

tmp< scalarField > residual ( ) const

◆ H() [3/3]

tmp< volScalarField > H ( ) const

◆ H1() [3/3]

tmp< volScalarField > H1 ( ) const

Friends And Related Function Documentation

◆ fvSolver

friend class fvSolver
friend

Declare friendship with the fvSolver class.

Definition at line 148 of file fvMatrix.H.

◆ operator & [1/4]

tmp<GeometricField<Type, fvPatchField, volMesh> > operator& ( const fvMatrix< Type > &  ,
const DimensionedField< Type, volMesh > &   
)
friend

◆ operator & [2/4]

tmp<GeometricField<Type, fvPatchField, volMesh> > operator& ( const fvMatrix< Type > &  ,
const tmp< GeometricField< Type, fvPatchField, volMesh >> &   
)
friend

◆ operator & [3/4]

tmp<GeometricField<Type, fvPatchField, volMesh> > operator& ( const tmp< fvMatrix< Type >> &  ,
const DimensionedField< Type, volMesh > &   
)
friend

◆ operator & [4/4]

tmp<GeometricField<Type, fvPatchField, volMesh> > operator& ( const tmp< fvMatrix< Type >> &  ,
const tmp< GeometricField< Type, fvPatchField, volMesh >> &   
)
friend

◆ operator

Ostream& operator ( Ostream ,
const fvMatrix< Type > &   
)
friend

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