faMatrix< Type > Class Template Reference

A special matrix type and solver, designed for finite area solutions of scalar equations. Face addressing is used to make all matrix assembly and solution loops vectorise. More...

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

Classes

class  faSolver
 Solver class returned by the solver function used for systems in which it is useful to cache the solver for reuse. More...
 

Public Types

typedef GeometricField< Type, faPatchField, areaMeshpsiFieldType
 The geometric field type for psi. More...
 
typedef GeometricField< Type, faePatchField, edgeMeshfaceFluxFieldType
 Field type for face flux (for non-orthogonal correction) More...
 
typedef GeometricField< Type, faePatchField, edgeMesh > * faceFluxFieldPtrType
 Declare return type of the faceFluxCorrectionPtr() function. More...
 
- Public Types inherited from lduMatrix
enum  normTypes : char { NO_NORM, DEFAULT_NORM, L1_SCALED_NORM }
 Enumerated matrix normalisation types. More...
 

Public Member Functions

 ClassName ("faMatrix")
 
 faMatrix (const GeometricField< Type, faPatchField, areaMesh > &psi, const dimensionSet &ds)
 Construct given a field to solve for. More...
 
 faMatrix (const faMatrix< Type > &)
 Copy construct. More...
 
 faMatrix (const tmp< faMatrix< Type >> &)
 Copy/move construct from tmp<faMatrix<Type>> More...
 
 faMatrix (const GeometricField< Type, faPatchField, areaMesh > &psi, Istream &is)
 Deprecated(2022-05) - construct with dimensionSet instead. More...
 
tmp< faMatrix< Type > > clone () const
 Construct and return a clone. More...
 
virtual ~faMatrix ()
 Destructor. More...
 
const GeometricField< Type, faPatchField, areaMesh > & psi () const
 
const dimensionSetdimensions () const noexcept
 
Field< Type > & source () noexcept
 
const Field< Type > & source () const noexcept
 
const FieldField< Field, Type > & internalCoeffs () const noexcept
 faBoundary scalar field containing pseudo-matrix coeffs for internal cells More...
 
FieldField< Field, Type > & internalCoeffs () noexcept
 faBoundary scalar field containing pseudo-matrix coeffs for internal cells More...
 
const FieldField< Field, Type > & boundaryCoeffs () const noexcept
 faBoundary scalar field containing pseudo-matrix coeffs for boundary cells More...
 
FieldField< Field, Type > & boundaryCoeffs () noexcept
 faBoundary scalar field containing pseudo-matrix coeffs for boundary cells More...
 
faceFluxFieldPtrTypefaceFluxCorrectionPtr ()
 Return pointer to face-flux non-orthogonal correction field. More...
 
bool hasFaceFluxCorrection () const noexcept
 True if face-flux non-orthogonal correction field exists. More...
 
void setValues (const labelUList &faceLabels, const Type &value)
 Set solution in given faces to the specified value and eliminate the corresponding equations from the matrix. More...
 
void setValues (const labelUList &faceLabels, const UList< Type > &values)
 Set solution in given faces to the specified values and eliminate the corresponding equations from the matrix. More...
 
void setValues (const labelUList &faceLabels, const UIndirectList< Type > &values)
 Set solution in given faces to the specified values and eliminate the corresponding equations from the matrix. More...
 
void setReference (const label facei, const Type &value, const bool forceReference=false)
 Set reference level for solution. More...
 
void setReferences (const labelUList &faceLabels, const Type &value, const bool forceReference=false)
 Set reference level for solution. More...
 
void setReferences (const labelUList &faceLabels, const UList< Type > &values, 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 on a given patch face. More...
 
void relax (const scalar alpha)
 Relax matrix (for steady-state solution). More...
 
void relax ()
 Relax matrix (for steady-state solution). More...
 
SolverPerformance< Type > solve (const dictionary &)
 Solve returning the solution statistics. More...
 
SolverPerformance< Type > solve (const word &name)
 Solve 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 diagonal. More...
 
tmp< areaScalarFieldA () const
 Return the central coefficient. More...
 
tmp< GeometricField< Type, faPatchField, areaMesh > > H () const
 Return the H operation source. More...
 
tmp< GeometricField< Type, faePatchField, edgeMesh > > flux () const
 Return the face-flux field from the matrix. More...
 
const dictionarysolverDict (const word &name) const
 Return the solver dictionary (from faSolution) for name. More...
 
const dictionarysolverDict () const
 Return the solver dictionary for psi. More...
 
void operator= (const faMatrix< Type > &)
 
void operator= (const tmp< faMatrix< Type >> &)
 
void negate ()
 Inplace negate. More...
 
void operator+= (const faMatrix< Type > &)
 
void operator+= (const tmp< faMatrix< Type >> &)
 
void operator-= (const faMatrix< Type > &)
 
void operator-= (const tmp< faMatrix< Type >> &)
 
void operator+= (const DimensionedField< Type, areaMesh > &)
 
void operator+= (const tmp< DimensionedField< Type, areaMesh >> &)
 
void operator+= (const tmp< GeometricField< Type, faPatchField, areaMesh >> &)
 
void operator-= (const DimensionedField< Type, areaMesh > &)
 
void operator-= (const tmp< DimensionedField< Type, areaMesh >> &)
 
void operator-= (const tmp< GeometricField< Type, faPatchField, areaMesh >> &)
 
void operator+= (const dimensioned< Type > &)
 
void operator-= (const dimensioned< Type > &)
 
void operator+= (const Foam::zero)
 
void operator-= (const Foam::zero)
 
void operator*= (const areaScalarField::Internal &)
 
void operator*= (const tmp< areaScalarField::Internal > &)
 
void operator*= (const tmp< areaScalarField > &)
 
void operator*= (const dimensioned< scalar > &)
 
template<>
void setComponentReference (const label patchI, const label edgeI, const direction, const scalar value)
 
template<>
Foam::solverPerformance solve (const dictionary &solverControls)
 
template<>
Foam::tmp< Foam::scalarFieldresidual () const
 
template<>
Foam::tmp< Foam::areaScalarFieldH () const
 
template<>
void setComponentReference (const label patchi, const label facei, const direction, const scalar value)
 
template<>
SolverPerformance< scalar > solve (const dictionary &)
 
template<>
tmp< scalarFieldresidual () const
 
template<>
tmp< areaScalarFieldH () const
 
- Public Member Functions inherited from refCount
constexpr refCount () noexcept
 Default construct, initializing count to 0. More...
 
int use_count () const noexcept
 Return the current reference count. More...
 
bool unique () const noexcept
 Return true if the reference count is zero. More...
 
void operator++ () noexcept
 Increment the reference count. More...
 
void operator++ (int) noexcept
 Increment the reference count. More...
 
void operator-- () noexcept
 Decrement the reference count. More...
 
void operator-- (int) noexcept
 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 &)
 Construct as copy. More...
 
 lduMatrix (lduMatrix &, bool reuse)
 Construct as copy or re-use as specified. More...
 
 lduMatrix (const lduMesh &, Istream &)
 Construct given an LDU addressed mesh and an Istream from which the coefficients are read. More...
 
 ~lduMatrix ()
 Destructor. More...
 
const lduMeshmesh () const noexcept
 Return the LDU mesh from which the addressing is obtained. More...
 
void setLduMesh (const lduMesh &m)
 Set the LDU mesh containing 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 noexcept
 
bool hasUpper () const noexcept
 
bool hasLower () const noexcept
 
bool diagonal () const noexcept
 
bool symmetric () const noexcept
 
bool asymmetric () const noexcept
 
void sumDiag ()
 
void negSumDiag ()
 
void sumMagOffDiag (scalarField &sumOff) const
 
void Amul (solveScalarField &, const tmp< solveScalarField > &, const FieldField< Field, scalar > &, const lduInterfaceFieldPtrsList &, const direction cmpt) const
 Matrix multiplication with updated interfaces. More...
 
void Tmul (solveScalarField &, const tmp< solveScalarField > &, const FieldField< Field, scalar > &, const lduInterfaceFieldPtrsList &, const direction cmpt) const
 Matrix transpose multiplication with updated interfaces. More...
 
void sumA (solveScalarField &, const FieldField< Field, scalar > &, const lduInterfaceFieldPtrsList &) const
 Sum the coefficients on each row of the matrix. More...
 
void residual (solveScalarField &rA, const solveScalarField &psi, const scalarField &source, const FieldField< Field, scalar > &interfaceBouCoeffs, const lduInterfaceFieldPtrsList &interfaces, const direction cmpt) const
 
tmp< solveScalarFieldresidual (const solveScalarField &psi, const scalarField &source, const FieldField< Field, scalar > &interfaceBouCoeffs, const lduInterfaceFieldPtrsList &interfaces, const direction cmpt) const
 
void initMatrixInterfaces (const bool add, const FieldField< Field, scalar > &interfaceCoeffs, const lduInterfaceFieldPtrsList &interfaces, const solveScalarField &psiif, solveScalarField &result, const direction cmpt) const
 Initialise the update of interfaced interfaces for matrix operations. More...
 
void updateMatrixInterfaces (const bool add, const FieldField< Field, scalar > &interfaceCoeffs, const lduInterfaceFieldPtrsList &interfaces, const solveScalarField &psiif, solveScalarField &result, const direction cmpt, const label startRequest) const
 Update interfaced interfaces for matrix operations. More...
 
void setResidualField (const scalarField &residual, const word &fieldName, const bool initial) const
 Set the residual field using an IOField on the object registry if it exists. 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 noexcept
 Return info proxy, used to print matrix information to a stream. 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 &faceLabels, const ListType< Type > &values)
 Set solution in given faces to the specified values. More...
 

Friends

class faSolver
 Declare friendship with the faSolver class. More...
 
tmp< GeometricField< Type, faPatchField, areaMesh > > operator & (const faMatrix< Type > &, const DimensionedField< Type, areaMesh > &)
 
tmp< GeometricField< Type, faPatchField, areaMesh > > operator & (const faMatrix< Type > &, const tmp< GeometricField< Type, faPatchField, areaMesh >> &)
 
tmp< GeometricField< Type, faPatchField, areaMesh > > operator & (const tmp< faMatrix< Type >> &, const DimensionedField< Type, areaMesh > &)
 
tmp< GeometricField< Type, faPatchField, areaMesh > > operator & (const tmp< faMatrix< Type >> &, const tmp< GeometricField< Type, faPatchField, areaMesh >> &)
 
Ostreamoperator (Ostream &, const faMatrix< Type > &)
 

Additional Inherited Members

- Static Public Attributes inherited from lduMatrix
static const Enum< normTypesnormTypesNames_
 Names for the normTypes. More...
 
static constexpr const label defaultMaxIter = 1000
 Default maximum number of iterations for solvers (1000) More...
 
static const scalar defaultTolerance = 1e-6
 Default (absolute) tolerance (1e-6) More...
 

Detailed Description

template<class Type>
class Foam::faMatrix< Type >

A special matrix type and solver, designed for finite area solutions of scalar equations. Face addressing is used to make all matrix assembly and solution loops vectorise.

Finite-Area matrix.

Author Zeljko Tukovic, FMENA Hrvoje Jasak, Wikki Ltd.

Source files
Author Zeljko Tukovic, FMENA Hrvoje Jasak, Wikki Ltd.

Definition at line 37 of file faMatricesFwd.H.

Member Typedef Documentation

◆ psiFieldType

The geometric field type for psi.

Definition at line 122 of file faMatrix.H.

◆ faceFluxFieldType

Field type for face flux (for non-orthogonal correction)

Definition at line 129 of file faMatrix.H.

◆ faceFluxFieldPtrType

Declare return type of the faceFluxCorrectionPtr() function.

Definition at line 412 of file faMatrix.H.

Constructor & Destructor Documentation

◆ faMatrix() [1/4]

faMatrix ( const GeometricField< Type, faPatchField, areaMesh > &  psi,
const dimensionSet ds 
)

Construct given a field to solve for.

Definition at line 179 of file faMatrix.C.

References DebugInFunction, Foam::endl(), regIOobject::eventNo(), forAll, psi, and Foam::Zero.

Here is the call graph for this function:

◆ faMatrix() [2/4]

faMatrix ( const faMatrix< Type > &  fam)

Copy construct.

Definition at line 223 of file faMatrix.C.

References DebugInFunction, Foam::endl(), and IOobject::name().

Here is the call graph for this function:

◆ faMatrix() [3/4]

faMatrix ( const tmp< faMatrix< Type >> &  tmat)

Copy/move construct from tmp<faMatrix<Type>>

Definition at line 248 of file faMatrix.C.

References DebugInFunction, Foam::endl(), and IOobject::name().

Here is the call graph for this function:

◆ faMatrix() [4/4]

faMatrix ( const GeometricField< Type, faPatchField, areaMesh > &  psi,
Istream is 
)
inline

Deprecated(2022-05) - construct with dimensionSet instead.

Deprecated:
(2022-05) - construct with dimensionSet instead

Definition at line 325 of file faMatrix.H.

◆ ~faMatrix()

~faMatrix ( )
virtual

Destructor.

Definition at line 285 of file faMatrix.C.

References DebugInFunction, Foam::deleteDemandDrivenData(), and Foam::endl().

Here is the call 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 36 of file faMatrix.C.

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

Here is the call 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 60 of file faMatrix.C.

◆ 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 74 of file faMatrix.C.

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

Here is the call 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 faMatrix.C.

◆ addBoundaryDiag()

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

Definition at line 111 of file faMatrix.C.

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

Referenced by faMatrix< Type >::residual().

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 faMatrix.C.

References Foam::cmptAv(), Foam::diag(), and forAll.

Here is the call graph for this function:

◆ addBoundarySource()

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

Definition at line 145 of file faMatrix.C.

References Foam::cmptMultiply(), faPatchFieldBase::coupled(), forAll, and faPatchField< Type >::patchNeighbourField().

Referenced by faMatrix< Type >::residual().

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

◆ setValuesFromList()

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

Set solution in given faces to the specified values.

Definition at line 299 of file faMatrix.C.

References fvMesh::boundary(), Foam::diag(), primitiveMesh::faceEdges(), faceLabels(), forAll, Foam::stringOps::lower(), mesh, fvMesh::neighbour(), fvMesh::owner(), primitiveFieldRef(), psi, Foam::stringOps::upper(), Foam::HashTableOps::values(), and Foam::Zero.

Here is the call graph for this function:

◆ ClassName()

ClassName ( "faMatrix< Type >"  )

◆ clone()

tmp<faMatrix<Type> > clone ( ) const
inline

Construct and return a clone.

Definition at line 336 of file faMatrix.H.

References Foam::New().

Here is the call graph for this function:

◆ psi()

const GeometricField<Type, faPatchField, areaMesh>& psi ( ) const
inline

◆ dimensions()

const dimensionSet& dimensions ( ) const
inlinenoexcept

Definition at line 357 of file faMatrix.H.

Referenced by Foam::checkMethod(), and faMatrix< Type >::operator*=().

Here is the caller graph for this function:

◆ source() [1/2]

Field<Type>& source ( )
inlinenoexcept

Definition at line 362 of file faMatrix.H.

◆ source() [2/2]

const Field<Type>& source ( ) const
inlinenoexcept

Definition at line 367 of file faMatrix.H.

◆ internalCoeffs() [1/2]

const FieldField<Field, Type>& internalCoeffs ( ) const
inlinenoexcept

faBoundary scalar field containing pseudo-matrix coeffs for internal cells

Definition at line 376 of file faMatrix.H.

◆ internalCoeffs() [2/2]

FieldField<Field, Type>& internalCoeffs ( )
inlinenoexcept

faBoundary scalar field containing pseudo-matrix coeffs for internal cells

Definition at line 385 of file faMatrix.H.

◆ boundaryCoeffs() [1/2]

const FieldField<Field, Type>& boundaryCoeffs ( ) const
inlinenoexcept

faBoundary scalar field containing pseudo-matrix coeffs for boundary cells

Definition at line 394 of file faMatrix.H.

◆ boundaryCoeffs() [2/2]

FieldField<Field, Type>& boundaryCoeffs ( )
inlinenoexcept

faBoundary scalar field containing pseudo-matrix coeffs for boundary cells

Definition at line 403 of file faMatrix.H.

◆ faceFluxCorrectionPtr()

faceFluxFieldPtrType& faceFluxCorrectionPtr ( )
inline

Return pointer to face-flux non-orthogonal correction field.

Definition at line 417 of file faMatrix.H.

Referenced by gaussLaplacianScheme< Type >::famLaplacian().

Here is the caller graph for this function:

◆ hasFaceFluxCorrection()

bool hasFaceFluxCorrection ( ) const
inlinenoexcept

True if face-flux non-orthogonal correction field exists.

Definition at line 425 of file faMatrix.H.

◆ setValues() [1/3]

void setValues ( const labelUList faceLabels,
const Type &  value 
)

Set solution in given faces to the specified value and eliminate the corresponding equations from the matrix.

Definition at line 402 of file faMatrix.C.

References faceLabels().

Here is the call graph for this function:

◆ setValues() [2/3]

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

Set solution in given faces to the specified values and eliminate the corresponding equations from the matrix.

Definition at line 413 of file faMatrix.C.

References faceLabels(), and Foam::HashTableOps::values().

Here is the call graph for this function:

◆ setValues() [3/3]

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

Set solution in given faces to the specified values and eliminate the corresponding equations from the matrix.

Definition at line 424 of file faMatrix.C.

References faceLabels(), and Foam::HashTableOps::values().

Here is the call graph for this function:

◆ setReference()

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

Set reference level for solution.

Definition at line 435 of file faMatrix.C.

References Foam::diag(), and UPstream::master().

Here is the call graph for this function:

◆ setReferences() [1/2]

void setReferences ( const labelUList faceLabels,
const Type &  value,
const bool  forceReference = false 
)

Set reference level for solution.

Definition at line 454 of file faMatrix.C.

References Foam::diag(), faceId(), faceLabels(), and forAll.

Here is the call graph for this function:

◆ setReferences() [2/2]

void setReferences ( const labelUList faceLabels,
const UList< Type > &  values,
const bool  forceReference = false 
)

Set reference level for solution.

Definition at line 477 of file faMatrix.C.

References Foam::diag(), faceId(), faceLabels(), forAll, and Foam::HashTableOps::values().

Here is the call 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 32 of file faMatrixSolve.C.

References Foam::diag().

Here is the call graph for this function:

◆ relax() [1/2]

void relax ( const scalar  alpha)

Relax matrix (for steady-state solution).

alpha = 1 : diagonally equal alpha < 1 : ,, dominant alpha = 0 : do nothing Note: Requires positive diagonal.

Definition at line 499 of file faMatrix.C.

References Foam::constant::atomic::alpha, Foam::cmptMag(), Foam::cmptMin(), Foam::cmptMultiply(), Foam::component(), faPatchFieldBase::coupled(), D, Foam::diag(), forAll, Foam::mag(), Foam::max(), UList< Type >::size(), and Foam::Zero.

Referenced by kinematicThinFilm::evolveRegion(), and sensitivitySurface::smoothSensitivities().

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

◆ relax() [2/2]

void relax ( )

Relax matrix (for steady-state solution).

alpha is read from controlDict

Definition at line 589 of file faMatrix.C.

References DebugInFunction, Foam::nl, and relax().

Here is the call graph for this function:

◆ solve() [1/5]

Foam::SolverPerformance< Type > solve ( const dictionary solverControls)

Solve returning the solution statistics.

Use the given solver controls

Definition at line 49 of file faMatrixSolve.C.

References Field< Type >::component(), DebugInFunction, Foam::diag(), Foam::endl(), dictionary::getOrDefault(), Foam::Info, Foam::expressions::Detail::nComponents(), Foam::New(), SolverPerformance< Type >::print(), psi, refPtr< Container< Type > >::ref(), solve(), and SolverPerformance< Type >::solverName().

Referenced by sensitivitySurface::smoothSensitivities().

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

◆ solve() [2/5]

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

Solve returning the solution statistics.

Uses name solver controls from faSolution

Definition at line 173 of file faMatrixSolve.C.

References faMatrix< Type >::solve(), and faMatrix< Type >::solverDict().

Here is the call graph for this function:

◆ solve() [3/5]

Foam::SolverPerformance< Type > solve ( )

Solve returning the solution statistics.

Solver controls read from faSolution

Definition at line 180 of file faMatrixSolve.C.

References faMatrix< Type >::solverDict().

Referenced by faMatrix< Type >::solve().

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

◆ residual() [1/3]

◆ D()

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

Return the matrix diagonal.

Definition at line 606 of file faMatrix.C.

References Foam::diag(), and tmp< T >::New().

Here is the call graph for this function:

◆ A()

Return the central coefficient.

Definition at line 615 of file faMatrix.C.

References D, Foam::dimArea, faPatchFieldBase::extrapolatedCalculatedType(), and GeometricField< scalar, faPatchField, areaMesh >::New().

Here is the call graph for this function:

◆ H() [1/3]

◆ flux()

◆ solverDict() [1/2]

const Foam::dictionary & solverDict ( const word name) const

Return the solver dictionary (from faSolution) for name.

Definition at line 741 of file faMatrix.C.

References Foam::name().

Here is the call graph for this function:

◆ solverDict() [2/2]

const Foam::dictionary & solverDict ( ) const

Return the solver dictionary for psi.

Definition at line 750 of file faMatrix.C.

Referenced by faMatrix< Type >::solve().

Here is the caller graph for this function:

◆ operator=() [1/2]

void operator= ( const faMatrix< Type > &  famv)

Definition at line 762 of file faMatrix.C.

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

Here is the call graph for this function:

◆ operator=() [2/2]

void operator= ( const tmp< faMatrix< Type >> &  tfamv)

Definition at line 795 of file faMatrix.C.

◆ negate()

void negate ( )

Inplace negate.

Definition at line 803 of file faMatrix.C.

References lduMatrix::negate().

Here is the call graph for this function:

◆ operator+=() [1/7]

void operator+= ( const faMatrix< Type > &  famv)

Definition at line 818 of file faMatrix.C.

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

Here is the call graph for this function:

◆ operator+=() [2/7]

void operator+= ( const tmp< faMatrix< Type >> &  tfamv)

Definition at line 844 of file faMatrix.C.

◆ operator-=() [1/7]

void operator-= ( const faMatrix< Type > &  famv)

Definition at line 852 of file faMatrix.C.

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

Here is the call graph for this function:

◆ operator-=() [2/7]

void operator-= ( const tmp< faMatrix< Type >> &  tfamv)

Definition at line 876 of file faMatrix.C.

◆ operator+=() [3/7]

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

Definition at line 885 of file faMatrix.C.

References Foam::checkMethod().

Here is the call graph for this function:

◆ operator+=() [4/7]

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

Definition at line 896 of file faMatrix.C.

◆ operator+=() [5/7]

void operator+= ( const tmp< GeometricField< Type, faPatchField, areaMesh >> &  tsu)

Definition at line 907 of file faMatrix.C.

◆ operator-=() [3/7]

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

Definition at line 918 of file faMatrix.C.

References Foam::checkMethod().

Here is the call graph for this function:

◆ operator-=() [4/7]

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

Definition at line 929 of file faMatrix.C.

◆ operator-=() [5/7]

void operator-= ( const tmp< GeometricField< Type, faPatchField, areaMesh >> &  tsu)

Definition at line 940 of file faMatrix.C.

◆ operator+=() [6/7]

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

Definition at line 951 of file faMatrix.C.

References DimensionedField< Type, GeoMesh >::mesh(), and psi.

Here is the call graph for this function:

◆ operator-=() [6/7]

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

Definition at line 961 of file faMatrix.C.

References DimensionedField< Type, GeoMesh >::mesh(), and psi.

Here is the call graph for this function:

◆ operator+=() [7/7]

void operator+= ( const Foam::zero  )
inline

Definition at line 612 of file faMatrix.H.

◆ operator-=() [7/7]

void operator-= ( const Foam::zero  )
inline

Definition at line 613 of file faMatrix.H.

◆ operator*=() [1/4]

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

Definition at line 971 of file faMatrix.C.

References Foam::abort(), faMatrix< Type >::dimensions(), Foam::FatalError, FatalErrorInFunction, forAll, and lduMatrix::operator*=().

Here is the call graph for this function:

◆ operator*=() [2/4]

void operator*= ( const tmp< areaScalarField::Internal > &  tfld)

Definition at line 1000 of file faMatrix.C.

◆ operator*=() [3/4]

void operator*= ( const tmp< areaScalarField > &  tfld)

Definition at line 1011 of file faMatrix.C.

◆ operator*=() [4/4]

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

Definition at line 1022 of file faMatrix.C.

References lduMatrix::operator*=().

Here is the call graph for this function:

◆ setComponentReference() [2/3]

void setComponentReference ( const label  patchI,
const label  edgeI,
const direction  ,
const scalar  value 
)

Definition at line 31 of file faScalarMatrix.C.

References Foam::diag(), and faceLabels().

Here is the call graph for this function:

◆ solve() [4/5]

Foam::solverPerformance solve ( const dictionary solverControls)

◆ residual() [2/3]

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

Definition at line 99 of file faScalarMatrix.C.

References psi, refPtr< Container< Type > >::ref(), and Foam::Zero.

Here is the call graph for this function:

◆ H() [2/3]

Definition at line 128 of file faScalarMatrix.C.

References Foam::dimArea, Foam::fieldTypes::extrapolatedCalculatedType, H(), and Foam::New().

Here is the call graph for this function:

◆ setComponentReference() [3/3]

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

◆ solve() [5/5]

SolverPerformance< scalar > solve ( const dictionary )

◆ residual() [3/3]

tmp< scalarField > residual ( ) const

◆ H() [3/3]

tmp< areaScalarField > H ( ) const

Friends And Related Function Documentation

◆ faSolver

friend class faSolver
friend

Declare friendship with the faSolver class.

Definition at line 178 of file faMatrix.H.

◆ operator & [1/4]

tmp<GeometricField<Type, faPatchField, areaMesh> > operator& ( const faMatrix< Type > &  ,
const DimensionedField< Type, areaMesh > &   
)
friend

◆ operator & [2/4]

tmp<GeometricField<Type, faPatchField, areaMesh> > operator& ( const faMatrix< Type > &  ,
const tmp< GeometricField< Type, faPatchField, areaMesh >> &   
)
friend

◆ operator & [3/4]

tmp<GeometricField<Type, faPatchField, areaMesh> > operator& ( const tmp< faMatrix< Type >> &  ,
const DimensionedField< Type, areaMesh > &   
)
friend

◆ operator & [4/4]

tmp<GeometricField<Type, faPatchField, areaMesh> > operator& ( const tmp< faMatrix< Type >> &  ,
const tmp< GeometricField< Type, faPatchField, areaMesh >> &   
)
friend

◆ operator

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

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