Main Page | Class Hierarchy | Class List | File List | Class Members

PromSolver Class Reference

class PromSolver - base solver object More...

#include <prometheus.hh>

Collaboration diagram for PromSolver:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 PromSolver (const PromOptions &opts, PromPerfMonitor &perf, const PromMap &map, const PromMap *const pmap=NULL)
 normal constructor

 PromSolver (PromSolver *const solver)
 shallow copy constructor constructor -- for 'post' smoother

 ~PromSolver ()
 destructor

int SetPC (PromPC_base *const pc, const PromMatrix_base *AA)
int PrintInfo (const int nactivep, const int lev=-1) const
int SetUp ()
int KSPMult (const PromMatrix_base *const A, const PromVector_base *const XX, PromVector_base *const YY) const
 Mult: v2 = (I - P) A (I - P) * v1.

int SetTolerances (const int maxits, double rtol=-1., double atol=-1., double dtol=-1.)
int SetGMRESRestart (int kmax)
int SetNewPVec (const PromMap &map)
int SetKSPType (PromKSPType type)
PromKSPType getKSPType () const
int SetKSP (const int maxit, const char *const prestring=NULL, const char *const ksp_string=NULL)
int SetRTol (double tol)
double getRTol () const
double getATol () const
int nEig () const
int SetNEig (int nn)
bool computeSVD () const
int SetComputeSVD ()
int ComputeExtremeSVD (int nits, double &emax, double &emin)
int SolveGMRES (const PromVector_base *const, PromVector_base *const, int *its, const bool zeroguess=TRUE, const bool avoidnorms=FALSE, const PromPCSide=PROM_RIGHT)
int SolveRichardson (const PromVector_base *const, PromVector_base *const, int *its, const bool zeroguess=TRUE, const bool avoidnorms=FALSE, const PromPCSide=PROM_RIGHT)
int SolveBCGS (const PromVector_base *const, PromVector_base *const, int *its, const bool zeroguess=TRUE, const bool avoidnorms=FALSE, const PromPCSide=PROM_RIGHT)
int SolveCR (const PromVector_base *const, PromVector_base *const, int *its, const bool zeroguess=TRUE, const bool avoidnorms=FALSE, const PromPCSide=PROM_RIGHT)
int SolveBrez (const PromVector_base *const, PromVector_base *const, int *its, const bool zeroguess=TRUE, const bool avoidnorms=FALSE, const PromPCSide=PROM_RIGHT)
int SolveCheb (const PromVector_base *const, PromVector_base *const, int *its, const bool zeroguess=TRUE, const bool avoidnorms=FALSE, const PromPCSide=PROM_RIGHT)
int SolveCG (const PromVector_base *const, PromVector_base *const, int *its, const bool zeroguess=TRUE, const bool avoidnorms=FALSE, const PromPCSide=PROM_RIGHT)
int SolveTFQMR (const PromVector_base *const, PromVector_base *const, int *its, const bool zeroguess=TRUE, const bool avoidnorms=FALSE, const PromPCSide=PROM_LEFT)
int SolveSYMMLQ (const PromVector_base *const, PromVector_base *const, int *its, const bool zeroguess=TRUE, const bool avoidnorms=FALSE, const PromPCSide=PROM_LEFT)
int SolveMINRES (const PromVector_base *const, PromVector_base *const, int *its, const bool zeroguess=TRUE, const bool avoidnorms=FALSE, const PromPCSide=PROM_LEFT)
int CreatePC (PromPCType type, const PromVector_base *const v)
int MakePC (PromGrid *const grid, int &nblocks, PromIS *&blockISs, bool &kspset, const PromVector *const xx, const char *const prestring=NULL, const char *const pcname=NULL)
int SetOperator (const PromMatrix_base *const A)
int SetNewOperator (const PromMatrix_base *const A)
int SetOperator_private (const PromMatrix_base *const A)
int PromPCApplyBAorAB (const PromMatrix_base *const Amat, PromPC_base *const pc, const PromPCSide pc_side, const PromVector_base *const xx, PromVector_base *const dest, PromVector_base *const zz) const
int Solve (const PromVector_base *const bb, PromVector_base *const xx, int *its, const bool zeroguess=TRUE, const bool avoidnorms=FALSE)

Public Attributes

PromPC_basepc_
const PromMatrix_baseA_
PromVector_base ** work_
const PromMapmap_
const PromMap *const p_map_
PromProjKKTSolverprojector_
short int verbose_
PromSolver::prom_history history_

Static Public Attributes

const char *const PromKSPStrings [PROMNUMKSP] = {"GMRES","Richardson","BCGS","CR","TFQMR","PC only","CG","Chebychev", "Brezina", "FGMRES", "SYMMLQ", "MINRES"}

Protected Member Functions

int TestSymmMA (const PromMatrix_base *const Amat, PromPC_base *const pc, PromVector_base *const Z, PromVector_base *const P, PromVector_base *const R) const
int Monitor (const int it, const double dp)
int converged (double r0, double r)

Protected Attributes

PromSolveralias_
const PromOptions & options_
PromPerfMonitor & perf_mon_
float rtol_
float dtol_
float atol_
const bool alloced_
short int nwork_
short int cg_restart_
PromSolver::prom_double_complex origin_
PromSolver::prom_double_complex d_
PromSolver::prom_double_complex hes_
PromSolver::prom_double_complex dd_
PromSolver::prom_double_complex ee_
PromKSPType ksp_type_
short int nEig_
short int maxits_

Private Member Functions

int ComputeExtremeSVD_cg (int nn, double &emax, double &emin)
int ComputeExtremeSVD_gmres (int n, double &emax, double &emin)
int ResidualGMRES (const PromPCSide pc_side, const PromVector_base *const xx, PromVector_base *const vv_0, const PromVector_base *const binvf, PromVector_base *const temp)
int CycleGMRES (const PromPCSide pc_side, const PromVector_base *const bb, PromVector_base *const xx, int *reason, int *itcount, double *rnorm0, const bool avoidnorms)
int UpdateGMRESHessenberg (const int it, bool hapend, double *res)
int BuildGMRESSoln (const PromPCSide pc_side, double *nrs, PromVector_base *vdest, const int it, const PromVector_base *const *vv_0, PromVector_base *const temp)
int ModifiedGramSchmidtOrthogonalization (const int it)
int UnmodifiedGramSchmidtOrthogonalization (const int it)
int TwoUnmodifiedGramSchmidtOrthogonalization (const int it)
int PromResidual (const PromPCSide pc_side, const bool zerox, PromVector_base *vsoln, PromVector_base *vt1, PromVector_base *vt2, PromVector_base *vres, PromVector_base *vbinvf, const PromVector_base *const vb)
int SandwPre (const double omV[], const int deg, PromPC_base *const pc, const PromMatrix_base *const Amat, PromVector_base *const xx, PromVector_base *const yy, PromVector_base *const work) const
int SandwPost (const double omV[], const int deg, PromPC_base *const pc, const PromMatrix_base *const Amat, PromVector_base *const xx, PromVector_base *const yy, PromVector_base *const work) const
int BrezParameters (const PromMatrix_base *const AA, double &mlsOver, double &mlsCf, double &mlsOm, double &mlsOm2)

Detailed Description

class PromSolver - base solver object

Krylov methods owns PC object


Member Function Documentation

int PromSolver::ComputeExtremeSVD_cg int  nn,
double &  emax,
double &  emin
[private]
 

copy tridiagonal matrix to work space


The documentation for this class was generated from the following files:
Generated on Fri May 21 14:18:21 2004 by doxygen 1.3.7