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...
Classes | |
class | faSolver |
Public Types | |
typedef GeometricField< Type, faPatchField, areaMesh > | psiFieldType |
typedef GeometricField< Type, faePatchField, edgeMesh > | faceFluxFieldType |
typedef GeometricField< Type, faePatchField, edgeMesh > * | faceFluxFieldPtrType |
Public Member Functions | |
ClassName ("faMatrix") | |
faMatrix (const GeometricField< Type, faPatchField, areaMesh > &psi, const dimensionSet &ds) | |
faMatrix (const faMatrix< Type > &) | |
faMatrix (const GeometricField< Type, faPatchField, areaMesh > &psi, Istream &is) | |
tmp< faMatrix< Type > > | clone () const |
virtual | ~faMatrix () |
const GeometricField< Type, faPatchField, areaMesh > & | psi () const |
const dimensionSet & | dimensions () const |
Field< Type > & | source () |
const Field< Type > & | source () const |
const FieldField< Field, Type > & | internalCoeffs () const |
FieldField< Field, Type > & | internalCoeffs () |
const FieldField< Field, Type > & | boundaryCoeffs () const |
FieldField< Field, Type > & | boundaryCoeffs () |
faceFluxFieldPtrType & | faceFluxCorrectionPtr () |
bool | hasFaceFluxCorrection () const noexcept |
void | setValues (const labelUList &faceLabels, const Type &value) |
void | setValues (const labelUList &faceLabels, const UList< Type > &values) |
void | setValues (const labelUList &faceLabels, const UIndirectList< Type > &values) |
void | setReference (const label facei, const Type &value, const bool forceReference=false) |
void | setReferences (const labelUList &faceLabels, const Type &value, const bool forceReference=false) |
void | setReferences (const labelUList &faceLabels, const UList< Type > &values, const bool forceReference=false) |
void | setComponentReference (const label patchi, const label facei, const direction cmpt, const scalar value) |
void | relax (const scalar alpha) |
void | relax () |
SolverPerformance< Type > | solve (const dictionary &) |
SolverPerformance< Type > | solve () |
tmp< Field< Type > > | residual () const |
tmp< scalarField > | D () const |
tmp< areaScalarField > | A () const |
tmp< GeometricField< Type, faPatchField, areaMesh > > | H () const |
tmp< GeometricField< Type, faePatchField, edgeMesh > > | flux () const |
void | operator= (const faMatrix< Type > &) |
void | operator= (const tmp< faMatrix< Type >> &) |
void | negate () |
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 GeometricField< Type, faPatchField, areaMesh > &) |
void | operator+= (const tmp< GeometricField< Type, faPatchField, areaMesh >> &) |
void | operator-= (const GeometricField< Type, faPatchField, areaMesh > &) |
void | operator-= (const tmp< GeometricField< Type, faPatchField, areaMesh >> &) |
void | operator+= (const dimensioned< Type > &) |
void | operator-= (const dimensioned< Type > &) |
void | operator*= (const areaScalarField &) |
void | operator*= (const tmp< areaScalarField > &) |
void | operator*= (const dimensioned< scalar > &) |
void | setComponentReference (const label patchI, const label edgeI, const direction, const scalar value) |
Foam::solverPerformance | solve (const dictionary &solverControls) |
Foam::tmp< Foam::scalarField > | residual () const |
Foam::tmp< Foam::areaScalarField > | H () const |
void | setComponentReference (const label patchi, const label facei, const direction, const scalar value) |
SolverPerformance< scalar > | solve (const dictionary &) |
tmp< scalarField > | residual () const |
tmp< areaScalarField > | H () const |
Protected Member Functions | |
template<class Type2 > | |
void | addToInternalField (const labelUList &addr, const Field< Type2 > &pf, Field< Type2 > &intf) const |
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 |
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) |
Friends | |
class | faSolver |
Ostream & | operator (Ostream &, const 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.
Definition at line 37 of file faMatricesFwd.H.
typedef GeometricField<Type, faPatchField, areaMesh> psiFieldType |
Definition at line 79 of file faMatrix.H.
typedef GeometricField<Type, faePatchField, edgeMesh> faceFluxFieldType |
Definition at line 84 of file faMatrix.H.
typedef GeometricField<Type, faePatchField, edgeMesh>* faceFluxFieldPtrType |
Definition at line 301 of file faMatrix.H.
faMatrix | ( | const GeometricField< Type, faPatchField, areaMesh > & | psi, |
const dimensionSet & | ds | ||
) |
Definition at line 178 of file faMatrix.C.
faMatrix | ( | const GeometricField< Type, faPatchField, areaMesh > & | psi, |
Istream & | is | ||
) |
Definition at line 258 of file faMatrix.C.
|
virtual |
Definition at line 312 of file faMatrix.C.
|
protected |
Definition at line 35 of file faMatrix.C.
|
protected |
Definition at line 59 of file faMatrix.C.
|
protected |
Definition at line 73 of file faMatrix.C.
|
protected |
Definition at line 97 of file faMatrix.C.
|
protected |
Definition at line 110 of file faMatrix.C.
Referenced by faMatrix< Type >::residual().
|
protected |
Definition at line 128 of file faMatrix.C.
Definition at line 144 of file faMatrix.C.
Referenced by faMatrix< Type >::residual().
|
protected |
Definition at line 326 of file faMatrix.C.
ClassName | ( | "faMatrix" | ) |
Foam::tmp< Foam::faMatrix< Type > > clone | ( | ) | const |
Definition at line 302 of file faMatrix.C.
|
inline |
Definition at line 251 of file faMatrix.H.
Referenced by externalFileSource::addSup(), contactHeatFluxSource::addSup(), jouleHeatingSource::addSup(), externalHeatFluxSource::addSup(), Foam::checkMethod(), optionList::constrain(), faMatrix::faSolver::solve(), and faMatrix< Type >::solve().
|
inline |
Definition at line 256 of file faMatrix.H.
Referenced by Foam::checkMethod().
|
inline |
Definition at line 261 of file faMatrix.H.
|
inline |
Definition at line 266 of file faMatrix.H.
|
inline |
Definition at line 273 of file faMatrix.H.
|
inline |
Definition at line 280 of file faMatrix.H.
|
inline |
Definition at line 287 of file faMatrix.H.
|
inline |
Definition at line 294 of file faMatrix.H.
|
inline |
Definition at line 304 of file faMatrix.H.
Referenced by gaussLaplacianScheme< Type >::famLaplacian().
|
inlinenoexcept |
Definition at line 310 of file faMatrix.H.
void setValues | ( | const labelUList & | faceLabels, |
const Type & | value | ||
) |
Definition at line 415 of file faMatrix.C.
void setValues | ( | const labelUList & | faceLabels, |
const UList< Type > & | values | ||
) |
Definition at line 426 of file faMatrix.C.
void setValues | ( | const labelUList & | faceLabels, |
const UIndirectList< Type > & | values | ||
) |
Definition at line 437 of file faMatrix.C.
void setReference | ( | const label | facei, |
const Type & | value, | ||
const bool | forceReference = false |
||
) |
Definition at line 448 of file faMatrix.C.
void setReferences | ( | const labelUList & | faceLabels, |
const Type & | value, | ||
const bool | forceReference = false |
||
) |
void setReferences | ( | const labelUList & | faceLabels, |
const UList< Type > & | values, | ||
const bool | forceReference = false |
||
) |
void setComponentReference | ( | const label | patchi, |
const label | facei, | ||
const direction | cmpt, | ||
const scalar | value | ||
) |
Definition at line 32 of file faMatrixSolve.C.
void relax | ( | const scalar | alpha | ) |
Definition at line 512 of file faMatrix.C.
Referenced by jouleHeatingSource::addSup(), kinematicThinFilm::evolveRegion(), and sensitivitySurface::smoothSensitivities().
void relax | ( | ) |
Definition at line 602 of file faMatrix.C.
SolverPerformance<Type> solve | ( | const dictionary & | ) |
Referenced by jouleHeatingSource::addSup(), kinematicThinFilm::evolveRegion(), sensitivitySurface::smoothSensitivities(), and KirchhoffShell::solveDisplacement().
Foam::SolverPerformance< Type > solve | ( | ) |
Definition at line 173 of file faMatrixSolve.C.
Referenced by faMatrix< Type >::solve().
Foam::tmp< Foam::Field< Type > > residual | ( | ) | const |
Definition at line 180 of file faMatrixSolve.C.
Foam::tmp< Foam::scalarField > D | ( | ) | const |
Definition at line 618 of file faMatrix.C.
Foam::tmp< Foam::areaScalarField > A | ( | ) | const |
Definition at line 627 of file faMatrix.C.
Referenced by kinematicThinFilm::evolveRegion().
Foam::tmp< Foam::GeometricField< Type, Foam::faPatchField, Foam::areaMesh > > H | ( | ) | const |
Definition at line 654 of file faMatrix.C.
Referenced by kinematicThinFilm::evolveRegion().
Foam::tmp< Foam::GeometricField< Type, Foam::faePatchField, Foam::edgeMesh > > flux | ( | ) | const |
Definition at line 698 of file faMatrix.C.
Referenced by kinematicThinFilm::evolveRegion().
void negate | ( | ) |
Definition at line 821 of file faMatrix.C.
void operator+= | ( | const GeometricField< Type, faPatchField, areaMesh > & | ) |
void operator+= | ( | const tmp< GeometricField< Type, faPatchField, areaMesh >> & | ) |
void operator-= | ( | const GeometricField< Type, faPatchField, areaMesh > & | ) |
void operator-= | ( | const tmp< GeometricField< Type, faPatchField, areaMesh >> & | ) |
void operator+= | ( | const dimensioned< Type > & | ) |
void operator-= | ( | const dimensioned< Type > & | ) |
void operator*= | ( | const areaScalarField & | ) |
void operator*= | ( | const tmp< areaScalarField > & | ) |
void operator*= | ( | const dimensioned< scalar > & | ) |
void setComponentReference | ( | const label | patchI, |
const label | edgeI, | ||
const | direction, | ||
const scalar | value | ||
) |
Definition at line 34 of file faScalarMatrix.C.
Foam::solverPerformance solve | ( | const dictionary & | solverControls | ) |
Definition at line 51 of file faScalarMatrix.C.
Foam::tmp< Foam::scalarField > residual | ( | ) | const |
Definition at line 102 of file faScalarMatrix.C.
Foam::tmp< Foam::areaScalarField > H | ( | ) | const |
Definition at line 131 of file faScalarMatrix.C.
void setComponentReference | ( | const label | patchi, |
const label | facei, | ||
const | direction, | ||
const scalar | value | ||
) |
SolverPerformance< scalar > solve | ( | const dictionary & | ) |
tmp< scalarField > residual | ( | ) | const |
tmp< areaScalarField > H | ( | ) | const |
|
friend |
Definition at line 116 of file faMatrix.H.
Copyright © 2011-2018 OpenFOAM | OPENFOAM® is a registered trademark of OpenCFD Ltd.