Go to the documentation of this file.
71 Ostream&
operator<<(Ostream&,
const lduMatrix&);
129 virtual const word&
type()
const = 0;
285 virtual const word&
type()
const = 0;
422 virtual const word&
type()
const = 0;
436 (sol, solverControls)
448 (sol, solverControls)
virtual solverPerformance solve(scalarField &psi, const scalarField &source, const direction cmpt=0) const =0
The class contains the addressing required by the lduMatrix: upper, lower and losort.
static word getName(const dictionary &)
Find the preconditioner name (directly or from a sub-dictionary)
void operator-=(const lduMatrix &)
const lduAddressing & lduAddr() const
Return the LDU addressing.
Field< scalar > scalarField
Specialisation of Field<T> for scalar.
Forward declarations of the specialisations of Field<T> for scalar, vector and tensor.
scalar normFactor(const scalarField &psi, const scalarField &source, const scalarField &Apsi, scalarField &tmpField) const
Return the matrix norm used to normalise the residual for the.
const lduInterfaceFieldPtrsList & interfaces() const
InfoProxy< lduMatrix > info() const
Return info proxy.
virtual ~preconditioner()
Destructor.
A class for handling words, derived from string.
A helper class for outputting values to Ostream.
void Amul(scalarField &, const tmp< scalarField > &, const FieldField< Field, scalar > &, const lduInterfaceFieldPtrsList &, const direction cmpt) const
Matrix multiplication with updated interfaces.
A class for managing temporary objects.
declareRunTimeSelectionTable(autoPtr, smoother, symMatrix,(const word &fieldName, const lduMatrix &matrix, const FieldField< Field, scalar > &interfaceBouCoeffs, const FieldField< Field, scalar > &interfaceIntCoeffs, const lduInterfaceFieldPtrsList &interfaces),(fieldName, matrix, interfaceBouCoeffs, interfaceIntCoeffs, interfaces))
void operator+=(const lduMatrix &)
virtual ~solver()
Destructor.
virtual void read(const dictionary &)
Read and reset the preconditioner parameters.
lduMatrix is a general matrix class in which the coefficients are stored as three arrays,...
void sumMagOffDiag(scalarField &sumOff) const
const FieldField< Field, scalar > & interfaceBouCoeffs() const
static autoPtr< preconditioner > New(const solver &sol, const dictionary &solverControls)
Return a new preconditioner.
const lduMatrix & matrix() const
Abstract base-class for lduMatrix solvers.
lduMatrix member H operations.
const word & fieldName() const
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.
const lduMatrix & matrix_
virtual const word & type() const =0
Runtime type information.
scalarField * lowerPtr_
Coefficients (not including interfaces)
lduMatrix(const lduMesh &)
Construct given an LDU addressed mesh.
const FieldField< Field, scalar > & interfaceIntCoeffs() const
const FieldField< Field, scalar > & interfaceBouCoeffs_
label minIter_
Minimum number of iterations in the solver.
#define NotImplemented
Issue a FatalErrorIn for a function not currently implemented.
const FieldField< Field, scalar > & interfaceBouCoeffs_
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
virtual void read(const dictionary &)
Read and reset the solver parameters from the given stream.
Pre-declare SubField and related Field type.
An Istream is an abstract base class for all input systems (streams, files, token lists etc)....
const lduMatrix & matrix() 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.
label maxIter_
Maximum number of iterations in the solver.
A templated 1D list of pointers to objects of type <T>, where the size of the array is known and used...
virtual const lduSchedule & patchSchedule() const =0
Ostream & operator<<(Ostream &, const edgeMesh &)
tmp< scalarField > H1() const
A list of keyword definitions, which are a keyword followed by any number of values (e....
virtual void readControls()
Read the control parameters from the controlDict_.
Abstract base-class for lduMatrix smoothers.
virtual void preconditionT(scalarField &wT, const scalarField &rT, const direction cmpt=0) const
Return wT the transpose-matrix preconditioned form of.
static word getName(const dictionary &)
Find the smoother name (directly or from a sub-dictionary)
static autoPtr< solver > New(const word &fieldName, const lduMatrix &matrix, const FieldField< Field, scalar > &interfaceBouCoeffs, const FieldField< Field, scalar > &interfaceIntCoeffs, const lduInterfaceFieldPtrsList &interfaces, const dictionary &solverControls)
Return a new solver.
tmp< Field< Type > > H(const Field< Type > &) const
scalar relTol_
Convergence tolerance relative to the initial.
static autoPtr< smoother > New(const word &fieldName, const lduMatrix &matrix, const FieldField< Field, scalar > &interfaceBouCoeffs, const FieldField< Field, scalar > &interfaceIntCoeffs, const lduInterfaceFieldPtrsList &interfaces, const dictionary &solverControls)
Return a new smoother.
const lduMatrix & matrix_
void sumA(scalarField &, const FieldField< Field, scalar > &, const lduInterfaceFieldPtrsList &) const
Sum the coefficients on each row of the matrix.
const FieldField< Field, scalar > & interfaceIntCoeffs_
void residual(scalarField &rA, const scalarField &psi, const scalarField &source, const FieldField< Field, scalar > &interfaceBouCoeffs, const lduInterfaceFieldPtrsList &interfaces, const direction cmpt) const
const lduSchedule & patchSchedule() const
Return the patch evaluation schedule.
An auto-pointer similar to the STL auto_ptr but with automatic casting to a reference to the type and...
dictionary controlDict_
Dictionary of controls.
scalar tolerance_
Final convergence tolerance.
lduInterfaceFieldPtrsList interfaces_
const volScalarField & psi
void operator=(const lduMatrix &)
const lduInterfaceFieldPtrsList & interfaces_
Macros to ease declaration of run-time selection tables.
const lduInterfaceFieldPtrsList & interfaces() const
smoother(const word &fieldName, const lduMatrix &matrix, const FieldField< Field, scalar > &interfaceBouCoeffs, const FieldField< Field, scalar > &interfaceIntCoeffs, const lduInterfaceFieldPtrsList &interfaces)
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
declareRunTimeSelectionTable(autoPtr, solver, symMatrix,(const word &fieldName, const lduMatrix &matrix, const FieldField< Field, scalar > &interfaceBouCoeffs, const FieldField< Field, scalar > &interfaceIntCoeffs, const lduInterfaceFieldPtrsList &interfaces, const dictionary &solverControls),(fieldName, matrix, interfaceBouCoeffs, interfaceIntCoeffs, interfaces, solverControls))
const FieldField< Field, scalar > & interfaceBouCoeffs() const
void operator*=(const scalarField &)
tmp< Field< Type > > faceH(const Field< Type > &) const
friend Ostream & operator<<(Ostream &, const lduMatrix &)
const lduMesh & mesh() const
Return the LDU mesh from which the addressing is obtained.
preconditioner(const solver &sol)
const word & fieldName() const
virtual const word & type() const =0
Runtime type information.
const lduMesh & lduMesh_
LDU mesh reference.
virtual ~smoother()
Destructor.
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
Abstract base-class for lduMatrix preconditioners.
const solver & solver_
Reference to the base-solver this preconditioner is used with.
const FieldField< Field, scalar > & interfaceIntCoeffs() const
virtual const word & type() const =0
Runtime type information.
virtual void smooth(scalarField &psi, const scalarField &source, const direction cmpt, const label nSweeps) const =0
Smooth the solution for a given number of sweeps.
virtual const lduAddressing & lduAddr() const =0
Return ldu addressing.
Abstract base class for meshes which provide LDU addressing for the construction of lduMatrix and LDU...
solver(const word &fieldName, const lduMatrix &matrix, const FieldField< Field, scalar > &interfaceBouCoeffs, const FieldField< Field, scalar > &interfaceIntCoeffs, const lduInterfaceFieldPtrsList &interfaces, const dictionary &solverControls)
void Tmul(scalarField &, const tmp< scalarField > &, const FieldField< Field, scalar > &, const lduInterfaceFieldPtrsList &, const direction cmpt) const
Matrix transpose multiplication with updated interfaces.
declareRunTimeSelectionTable(autoPtr, preconditioner, symMatrix,(const solver &sol, const dictionary &solverControls),(sol, solverControls))
const FieldField< Field, scalar > & interfaceIntCoeffs_
virtual void precondition(scalarField &wA, const scalarField &rA, const direction cmpt=0) const =0
Return wA the preconditioned form of residual rA.