72 Ostream&
operator<<(Ostream&,
const lduMatrix&);
73 Ostream&
operator<<(Ostream&,
const InfoProxy<lduMatrix>&);
134 virtual const word&
type()
const = 0;
290 virtual const word&
type()
const = 0;
427 virtual const word&
type()
const = 0;
441 (sol, solverControls)
453 (sol, solverControls)
603 !lowerPtr_ && !upperPtr_
605 !(lowerPtr_ && lowerPtr_->
size())
606 && !(upperPtr_ && upperPtr_->
size())
617 !lowerPtr_ && upperPtr_
619 !(lowerPtr_ && lowerPtr_->
size())
620 && (upperPtr_ && upperPtr_->
size())
631 lowerPtr_ && upperPtr_
633 (lowerPtr_ && lowerPtr_->
size())
634 && (upperPtr_ && upperPtr_->
size())
A helper class for outputting values to Ostream.
An Istream is an abstract base class for all input systems (streams, files, token lists etc)....
void size(const label)
Override size to be inconsistent with allocated storage.
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
static bool & parRun()
Is this a parallel run?
An auto-pointer similar to the STL auto_ptr but with automatic casting to a reference to the type and...
A list of keyword definitions, which are a keyword followed by any number of values (e....
The class contains the addressing required by the lduMatrix: upper, lower and losort.
virtual const lduSchedule & patchSchedule() const =0
Abstract base-class for lduMatrix preconditioners.
virtual ~preconditioner()
Destructor.
declareRunTimeSelectionTable(autoPtr, preconditioner, symMatrix,(const solver &sol, const dictionary &solverControls),(sol, solverControls))
const solver & solver_
Reference to the base-solver this preconditioner is used with.
static autoPtr< preconditioner > New(const solver &sol, const dictionary &solverControls)
Return a new preconditioner.
virtual const word & type() const =0
Runtime type information.
preconditioner(const solver &sol)
virtual void precondition(scalarField &wA, const scalarField &rA, const direction cmpt=0) const =0
Return wA the preconditioned form of residual rA.
virtual void read(const dictionary &)
Read and reset the preconditioner parameters.
static word getName(const dictionary &)
Find the preconditioner name (directly or from a sub-dictionary)
virtual void preconditionT(scalarField &wT, const scalarField &rT, const direction cmpt=0) const
Return wT the transpose-matrix preconditioned form of.
Abstract base-class for lduMatrix smoothers.
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.
const lduMatrix & matrix_
virtual const word & type() const =0
Runtime type information.
const lduInterfaceFieldPtrsList & interfaces_
const lduInterfaceFieldPtrsList & interfaces() const
const FieldField< Field, scalar > & interfaceIntCoeffs() const
smoother(const word &fieldName, const lduMatrix &matrix, const FieldField< Field, scalar > &interfaceBouCoeffs, const FieldField< Field, scalar > &interfaceIntCoeffs, const lduInterfaceFieldPtrsList &interfaces)
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))
const FieldField< Field, scalar > & interfaceBouCoeffs_
const word & fieldName() const
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 FieldField< Field, scalar > & interfaceIntCoeffs_
const lduMatrix & matrix() const
static word getName(const dictionary &)
Find the smoother name (directly or from a sub-dictionary)
virtual ~smoother()
Destructor.
const FieldField< Field, scalar > & interfaceBouCoeffs() const
Abstract base-class for lduMatrix solvers.
const lduMatrix & matrix_
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))
label maxIter_
Maximum number of iterations in the solver.
virtual const word & type() const =0
Runtime type information.
solver(const word &fieldName, const lduMatrix &matrix, const FieldField< Field, scalar > &interfaceBouCoeffs, const FieldField< Field, scalar > &interfaceIntCoeffs, const lduInterfaceFieldPtrsList &interfaces, const dictionary &solverControls)
const lduInterfaceFieldPtrsList & interfaces() const
const FieldField< Field, scalar > & interfaceIntCoeffs() const
scalar tolerance_
Final convergence tolerance.
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.
lduInterfaceFieldPtrsList interfaces_
const FieldField< Field, scalar > & interfaceBouCoeffs_
label minIter_
Minimum number of iterations in the solver.
const word & fieldName() const
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.
virtual ~solver()
Destructor.
scalar relTol_
Convergence tolerance relative to the initial.
const FieldField< Field, scalar > & interfaceIntCoeffs_
virtual void readControls()
Read the control parameters from the controlDict_.
virtual void read(const dictionary &)
Read and reset the solver parameters from the given stream.
static const label defaultMaxIter_
Default maximum number of iterations in the solver.
const lduMatrix & matrix() const
dictionary controlDict_
Dictionary of controls.
virtual solverPerformance solve(scalarField &psi, const scalarField &source, const direction cmpt=0) const =0
const FieldField< Field, scalar > & interfaceBouCoeffs() const
lduMatrix is a general matrix class in which the coefficients are stored as three arrays,...
const lduSchedule & patchSchedule() const
Return the patch evaluation schedule.
tmp< scalarField > H1() const
tmp< Field< Type > > faceH(const Field< Type > &) const
void operator=(const lduMatrix &)
void residual(scalarField &rA, const scalarField &psi, const scalarField &source, const FieldField< Field, scalar > &interfaceBouCoeffs, const lduInterfaceFieldPtrsList &interfaces, const direction cmpt) const
void Tmul(scalarField &, const tmp< scalarField > &, const FieldField< Field, scalar > &, const lduInterfaceFieldPtrsList &, const direction cmpt) const
Matrix transpose multiplication with updated interfaces.
const lduMesh & mesh() const
Return the LDU mesh from which the addressing is obtained.
InfoProxy< lduMatrix > info() const
Return info proxy.
tmp< Field< Type > > H(const Field< Type > &) const
void Amul(scalarField &, const tmp< scalarField > &, const FieldField< Field, scalar > &, const lduInterfaceFieldPtrsList &, const direction cmpt) const
Matrix multiplication with updated interfaces.
void operator*=(const scalarField &)
const lduAddressing & lduAddr() const
Return the LDU addressing.
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.
void operator/=(const scalarField &)
lduMatrix(const lduMesh &)
Construct given an LDU addressed mesh.
void sumA(scalarField &, const FieldField< Field, scalar > &, const lduInterfaceFieldPtrsList &) const
Sum the coefficients on each row of the matrix.
void operator+=(const lduMatrix &)
void sumMagOffDiag(scalarField &sumOff) const
friend Ostream & operator<<(Ostream &, const lduMatrix &)
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.
void operator-=(const lduMatrix &)
friend Ostream & operator<<(Ostream &, const InfoProxy< lduMatrix > &)
Abstract base class for meshes which provide LDU addressing for the construction of lduMatrix and LDU...
virtual const lduAddressing & lduAddr() const =0
Return ldu addressing.
A class for managing temporary objects.
A class for handling words, derived from string.
#define NotImplemented
Issue a FatalErrorIn for a function not currently implemented.
lduMatrix member H operations.
const volScalarField & psi
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
Ostream & operator<<(Ostream &os, const fvConstraints &constraints)
Forward declarations of the specialisations of Field<T> for scalar, vector and tensor.
Macros to ease declaration of run-time selection tables.
Basic run-time type information using word as the type's name. Used to enhance the standard RTTI to c...