Bridge++  Ver. 1.1.x
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Solver_GMRES_m_Cmplx Class Reference

GMRES(m) algorithm with complex variables. More...

#include <solver_GMRES_m_Cmplx.h>

Inheritance diagram for Solver_GMRES_m_Cmplx:
Solver

Public Member Functions

 Solver_GMRES_m_Cmplx (Fopr *fopr)
 
 ~Solver_GMRES_m_Cmplx ()
 
void set_parameters (const Parameters &params)
 
void set_parameters (const int Niter, const double Stop_cond)
 
void set_parameters_GMRES_m (const int N_M)
 
void solve (Field &solution, const Field &source, int &Nconv, double &diff)
 
Foprget_fopr ()
 
- Public Member Functions inherited from Solver
 Solver ()
 
virtual ~Solver ()
 
void set_parameter_verboselevel (const Bridge::VerboseLevel vl)
 

Private Member Functions

void reset_field (const Field &)
 
void solve_init (const Field &, double &)
 
void solve_step (const Field &, double &)
 
void innerprod_c (double &prod_r, double &prod_i, const Field &v, const Field &w)
 
void min_J (std::valarray< dcomplex > &y, std::valarray< dcomplex > &h)
 
void mult_c (Field &v, const Field &w, const double &prod_r, const double &prod_i)
 
int index_ij (int i, int j)
 

Private Attributes

Foprm_fopr
 
int m_Niter
 
double m_Stop_cond
 
int m_N_M
 
std::valarray< Fieldv
 
Field s
 
Field r
 
Field x
 
Field v_tmp
 
double beta_p
 

Additional Inherited Members

- Protected Attributes inherited from Solver
Bridge::VerboseLevel m_vl
 

Detailed Description

GMRES(m) algorithm with complex variables.

This class implements GMRES(m) algorithm for nonhermitian matrix. The matrix is nonsymmetric matrix, and the product of vectors is treated in complex. See Y.Saad and M.H.Schultz, SIAM J.Sci.Stat.Comput. 7 (1986) 856. 8 Aug 2012 Y.Namekawa YAML is implemented. [14 Nov 2012 Y.Namekawa]

Definition at line 44 of file solver_GMRES_m_Cmplx.h.

Constructor & Destructor Documentation

Solver_GMRES_m_Cmplx::Solver_GMRES_m_Cmplx ( Fopr fopr)
inline

Definition at line 61 of file solver_GMRES_m_Cmplx.h.

Solver_GMRES_m_Cmplx::~Solver_GMRES_m_Cmplx ( )
inline

Definition at line 64 of file solver_GMRES_m_Cmplx.h.

Member Function Documentation

Fopr* Solver_GMRES_m_Cmplx::get_fopr ( )
inlinevirtual

Implements Solver.

Definition at line 74 of file solver_GMRES_m_Cmplx.h.

int Solver_GMRES_m_Cmplx::index_ij ( int  i,
int  j 
)
inlineprivate

Definition at line 93 of file solver_GMRES_m_Cmplx.h.

void Solver_GMRES_m_Cmplx::innerprod_c ( double &  prod_r,
double &  prod_i,
const Field v,
const Field w 
)
private

Definition at line 278 of file solver_GMRES_m_Cmplx.cpp.

void Solver_GMRES_m_Cmplx::min_J ( std::valarray< dcomplex > &  y,
std::valarray< dcomplex > &  h 
)
private

Definition at line 301 of file solver_GMRES_m_Cmplx.cpp.

void Solver_GMRES_m_Cmplx::mult_c ( Field v,
const Field w,
const double &  prod_r,
const double &  prod_i 
)
private

Definition at line 361 of file solver_GMRES_m_Cmplx.cpp.

void Solver_GMRES_m_Cmplx::reset_field ( const Field b)
private

Definition at line 181 of file solver_GMRES_m_Cmplx.cpp.

void Solver_GMRES_m_Cmplx::set_parameters ( const Parameters params)
virtual

Implements Solver.

Definition at line 56 of file solver_GMRES_m_Cmplx.cpp.

void Solver_GMRES_m_Cmplx::set_parameters ( const int  Niter,
const double  Stop_cond 
)
virtual

Implements Solver.

Definition at line 84 of file solver_GMRES_m_Cmplx.cpp.

void Solver_GMRES_m_Cmplx::set_parameters_GMRES_m ( const int  N_M)

Definition at line 108 of file solver_GMRES_m_Cmplx.cpp.

void Solver_GMRES_m_Cmplx::solve ( Field solution,
const Field source,
int &  Nconv,
double &  diff 
)
virtual

Implements Solver.

Definition at line 128 of file solver_GMRES_m_Cmplx.cpp.

void Solver_GMRES_m_Cmplx::solve_init ( const Field b,
double &  rr 
)
private

Definition at line 206 of file solver_GMRES_m_Cmplx.cpp.

void Solver_GMRES_m_Cmplx::solve_step ( const Field b,
double &  rr 
)
private

Definition at line 222 of file solver_GMRES_m_Cmplx.cpp.

Member Data Documentation

double Solver_GMRES_m_Cmplx::beta_p
private

Definition at line 57 of file solver_GMRES_m_Cmplx.h.

Fopr* Solver_GMRES_m_Cmplx::m_fopr
private

Definition at line 48 of file solver_GMRES_m_Cmplx.h.

int Solver_GMRES_m_Cmplx::m_N_M
private

Definition at line 52 of file solver_GMRES_m_Cmplx.h.

int Solver_GMRES_m_Cmplx::m_Niter
private

Definition at line 49 of file solver_GMRES_m_Cmplx.h.

double Solver_GMRES_m_Cmplx::m_Stop_cond
private

Definition at line 50 of file solver_GMRES_m_Cmplx.h.

Field Solver_GMRES_m_Cmplx::r
private

Definition at line 56 of file solver_GMRES_m_Cmplx.h.

Field Solver_GMRES_m_Cmplx::s
private

Definition at line 56 of file solver_GMRES_m_Cmplx.h.

std::valarray<Field> Solver_GMRES_m_Cmplx::v
private

Definition at line 54 of file solver_GMRES_m_Cmplx.h.

Field Solver_GMRES_m_Cmplx::v_tmp
private

Definition at line 56 of file solver_GMRES_m_Cmplx.h.

Field Solver_GMRES_m_Cmplx::x
private

Definition at line 56 of file solver_GMRES_m_Cmplx.h.


The documentation for this class was generated from the following files: