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
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())
762 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 size(const label)
Override size to be inconsistent with allocated storage.
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 &)
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...
static bool & parRun()
Is this a parallel run?
Abstract base-class for lduMatrix preconditioners.
fvModels source(alpha1, mixture.thermo1().rho())
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.