72 Ostream&
operator<<(Ostream&,
const lduMatrix&);
73 Ostream& operator<<(Ostream&, const InfoProxy<lduMatrix>&);
134 virtual const word&
type()
const = 0;
145 const word& fieldName,
168 const word& fieldName,
190 const word& fieldName,
203 const word& fieldName,
290 virtual const word&
type()
const = 0;
301 const word& fieldName,
322 const word& fieldName,
342 const word& fieldName,
355 const word& fieldName,
427 virtual const word&
type()
const = 0;
441 (sol, solverControls)
453 (sol, solverControls)
491 virtual void precondition
501 virtual void preconditionT
598 return (diagPtr_ && !lowerPtr_ && !upperPtr_);
603 return (diagPtr_ && (!lowerPtr_ && upperPtr_));
608 return (diagPtr_ && lowerPtr_ && upperPtr_);
732 friend Ostream& operator<<(Ostream&, const InfoProxy<lduMatrix>&);
tmp< Field< Type > > faceH(const Field< Type > &) const
virtual void read(const dictionary &)
Read and reset the solver parameters from the given stream.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
const FieldField< Field, scalar > & interfaceIntCoeffs_
A list of keyword definitions, which are a keyword followed by any number of values (e...
lduMatrix(const lduMesh &)
Construct given an LDU addressed mesh.
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))
virtual solverPerformance solve(scalarField &psi, const scalarField &source, const direction cmpt=0) const =0
const FieldField< Field, scalar > & interfaceBouCoeffs_
An Istream is an abstract base class for all input systems (streams, files, token lists etc)...
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.
virtual ~solver()
Destructor.
void Tmul(scalarField &, const tmp< scalarField > &, const FieldField< Field, scalar > &, const lduInterfaceFieldPtrsList &, const direction cmpt) const
Matrix transpose multiplication with updated interfaces.
Abstract base class for meshes which provide LDU addressing for the construction of lduMatrix and LDU...
const lduMatrix & matrix() const
InfoProxy< lduMatrix > info() const
Return info proxy.
const FieldField< Field, scalar > & interfaceBouCoeffs() const
tmp< scalarField > H1() const
void sumMagOffDiag(scalarField &sumOff) const
void smooth(volScalarField &field, const scalar coeff)
void Amul(scalarField &, const tmp< scalarField > &, const FieldField< Field, scalar > &, const lduInterfaceFieldPtrsList &, const direction cmpt) const
Matrix multiplication with updated interfaces.
label minIter_
Minimum number of iterations in the solver.
const FieldField< Field, scalar > & interfaceIntCoeffs() const
void residual(scalarField &rA, const scalarField &psi, const scalarField &source, const FieldField< Field, scalar > &interfaceBouCoeffs, const lduInterfaceFieldPtrsList &interfaces, const direction cmpt) const
void sumA(scalarField &, const FieldField< Field, scalar > &, const lduInterfaceFieldPtrsList &) const
Sum the coefficients on each row of the matrix.
const lduSchedule & patchSchedule() const
Return the patch evaluation schedule.
Abstract base-class for lduMatrix smoothers.
Forward declarations of the specialisations of Field<T> for scalar, vector and tensor.
scalar tolerance_
Final convergence tolerance.
A class for handling words, derived from string.
label maxIter_
Maximum number of iterations in the solver.
Abstract base-class for lduMatrix solvers.
lduMatrix member H operations.
const lduInterfaceFieldPtrsList & interfaces() 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.
virtual const lduAddressing & lduAddr() const =0
Return ldu addressing.
solver(const word &fieldName, const lduMatrix &matrix, const FieldField< Field, scalar > &interfaceBouCoeffs, const FieldField< Field, scalar > &interfaceIntCoeffs, const lduInterfaceFieldPtrsList &interfaces, const dictionary &solverControls)
virtual const word & type() const =0
Runtime type information.
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.
void operator=(const lduMatrix &)
const lduMatrix & matrix_
An Ostream is an abstract base class for all output systems (streams, files, token lists...
void operator*=(const scalarField &)
lduInterfaceFieldPtrsList interfaces_
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.
dictionary controlDict_
Dictionary of controls.
lduMatrix is a general matrix class in which the coefficients are stored as three arrays...
Abstract base-class for lduMatrix preconditioners.
A helper class for outputting values to Ostream.
const lduAddressing & lduAddr() const
Return the LDU addressing.
Ostream & operator<<(Ostream &, const ensightPart &)
const word & fieldName() const
An auto-pointer similar to the STL auto_ptr but with automatic casting to a reference to the type and...
const volScalarField & psi
The class contains the addressing required by the lduMatrix: upper, lower and losort.
tmp< Field< Type > > H(const Field< Type > &) const
Macros to ease declaration of run-time selection tables.
void operator-=(const lduMatrix &)
void operator+=(const lduMatrix &)
A class for managing temporary objects.
#define NotImplemented
Issue a FatalErrorIn for a function not currently implemented.
const lduMesh & mesh() const
Return the LDU mesh from which the addressing is obtained.
virtual void readControls()
Read the control parameters from the controlDict_.
virtual const lduSchedule & patchSchedule() const =0
static const label defaultMaxIter_
Default maximum number of iterations in the solver.
scalar relTol_
Convergence tolerance relative to the initial.