Bridge++  Version 1.5.4
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Solver_BiCGStab_Cmplx Class Reference

BiCGStab algorithm with complex variables. More...

#include <solver_BiCGStab_Cmplx.h>

Inheritance diagram for Solver_BiCGStab_Cmplx:
Solver

Public Member Functions

 Solver_BiCGStab_Cmplx (Fopr *fopr)
 
 Solver_BiCGStab_Cmplx (unique_ptr< Fopr > &fopr)
 
 ~Solver_BiCGStab_Cmplx ()
 
void set_parameters (const Parameters &params)
 
void set_parameters (const int Niter, const int Nrestart, const double Stop_cond)
 
void set_parameters (const int Niter, const int Nrestart, const double Stop_cond, const bool use_init_guess)
 
void set_parameters_BiCGStab_series (const double Omega_tolerance)
 
void solve (Field &solution, const Field &source, int &Nconv, double &diff)
 
Foprget_fopr ()
 
double flop_count ()
 
- Public Member Functions inherited from Solver
 Solver ()
 
virtual ~Solver ()
 
void set_parameter_verboselevel (const Bridge::VerboseLevel vl)
 

Static Public Attributes

static const std::string class_name = "Solver_BiCGStab_Cmplx"
 

Private Member Functions

void reset_field (const Field &)
 
void solve_init (const Field &, double &)
 
void solve_step (double &)
 

Private Attributes

Foprm_fopr
 
int m_Niter
 
int m_Nrestart
 
double m_Stop_cond
 
bool m_use_init_guess
 
double m_Omega_tolerance
 
dcomplex m_rho_prev
 
dcomplex m_alpha_prev
 
dcomplex m_omega_prev
 
Field m_s
 
Field m_r
 
Field m_x
 
Field m_rh
 
Field m_p
 
Field m_v
 
Field m_t
 
int m_Nrestart_count
 
int m_Nconv_count
 

Additional Inherited Members

- Protected Attributes inherited from Solver
Bridge::VerboseLevel m_vl
 

Detailed Description

BiCGStab algorithm with complex variables.

This class implements BiCGStab algorithm for nonhermitian matrix. The product of vectors is treated in complex. 12 Feb 2012 Y.Namekawa YAML is implemented. [14 Nov 2012 Y.Namekawa] Multi-threaded. [10 Jul 2014 H.Matsufuru] Introduce unique_ptr to avoid memory leaks. [21 Mar 2015 Y.Namekawa] Add restart. [22 Feb 2016 Y.Namekawa] Add flop_count. [ 8 Aug 2016 Y.Namekawa] Add use_init_guess. [ 7 Jul 2017 Y.Namekawa] Add a prescription to improve stability of BiCGStab, recommended by Kanamori-san. See G.L.G.Sleijpen and H.A.van der Vorst, Numerical Algorithms 10(1995)203-22. [26 Apr 2018 Y.Namekawa]

Definition at line 42 of file solver_BiCGStab_Cmplx.h.

Constructor & Destructor Documentation

Solver_BiCGStab_Cmplx::Solver_BiCGStab_Cmplx ( Fopr fopr)
inline

Definition at line 64 of file solver_BiCGStab_Cmplx.h.

Solver_BiCGStab_Cmplx::Solver_BiCGStab_Cmplx ( unique_ptr< Fopr > &  fopr)
inline

Definition at line 74 of file solver_BiCGStab_Cmplx.h.

Solver_BiCGStab_Cmplx::~Solver_BiCGStab_Cmplx ( )
inline

Definition at line 84 of file solver_BiCGStab_Cmplx.h.

Member Function Documentation

double Solver_BiCGStab_Cmplx::flop_count ( )
virtual

Implements Solver.

Definition at line 327 of file solver_BiCGStab_Cmplx.cpp.

Fopr* Solver_BiCGStab_Cmplx::get_fopr ( )
inlinevirtual

Implements Solver.

Definition at line 94 of file solver_BiCGStab_Cmplx.h.

void Solver_BiCGStab_Cmplx::reset_field ( const Field b)
private

Definition at line 222 of file solver_BiCGStab_Cmplx.cpp.

void Solver_BiCGStab_Cmplx::set_parameters ( const Parameters params)
virtual

Implements Solver.

Definition at line 25 of file solver_BiCGStab_Cmplx.cpp.

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

Implements Solver.

Definition at line 56 of file solver_BiCGStab_Cmplx.cpp.

void Solver_BiCGStab_Cmplx::set_parameters ( const int  Niter,
const int  Nrestart,
const double  Stop_cond,
const bool  use_init_guess 
)
virtual

Implements Solver.

Definition at line 86 of file solver_BiCGStab_Cmplx.cpp.

void Solver_BiCGStab_Cmplx::set_parameters_BiCGStab_series ( const double  Omega_tolerance)

Definition at line 118 of file solver_BiCGStab_Cmplx.cpp.

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

Implements Solver.

Definition at line 134 of file solver_BiCGStab_Cmplx.cpp.

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

Definition at line 248 of file solver_BiCGStab_Cmplx.cpp.

void Solver_BiCGStab_Cmplx::solve_step ( double &  rr)
private

Definition at line 275 of file solver_BiCGStab_Cmplx.cpp.

Member Data Documentation

const std::string Solver_BiCGStab_Cmplx::class_name = "Solver_BiCGStab_Cmplx"
static

Definition at line 45 of file solver_BiCGStab_Cmplx.h.

dcomplex Solver_BiCGStab_Cmplx::m_alpha_prev
private

Definition at line 57 of file solver_BiCGStab_Cmplx.h.

Fopr* Solver_BiCGStab_Cmplx::m_fopr
private

Definition at line 48 of file solver_BiCGStab_Cmplx.h.

int Solver_BiCGStab_Cmplx::m_Nconv_count
private

Definition at line 61 of file solver_BiCGStab_Cmplx.h.

int Solver_BiCGStab_Cmplx::m_Niter
private

Definition at line 50 of file solver_BiCGStab_Cmplx.h.

int Solver_BiCGStab_Cmplx::m_Nrestart
private

Definition at line 50 of file solver_BiCGStab_Cmplx.h.

int Solver_BiCGStab_Cmplx::m_Nrestart_count
private

Definition at line 60 of file solver_BiCGStab_Cmplx.h.

dcomplex Solver_BiCGStab_Cmplx::m_omega_prev
private

Definition at line 57 of file solver_BiCGStab_Cmplx.h.

double Solver_BiCGStab_Cmplx::m_Omega_tolerance
private

Definition at line 54 of file solver_BiCGStab_Cmplx.h.

Field Solver_BiCGStab_Cmplx::m_p
private

Definition at line 58 of file solver_BiCGStab_Cmplx.h.

Field Solver_BiCGStab_Cmplx::m_r
private

Definition at line 58 of file solver_BiCGStab_Cmplx.h.

Field Solver_BiCGStab_Cmplx::m_rh
private

Definition at line 58 of file solver_BiCGStab_Cmplx.h.

dcomplex Solver_BiCGStab_Cmplx::m_rho_prev
private

Definition at line 57 of file solver_BiCGStab_Cmplx.h.

Field Solver_BiCGStab_Cmplx::m_s
private

Definition at line 58 of file solver_BiCGStab_Cmplx.h.

double Solver_BiCGStab_Cmplx::m_Stop_cond
private

Definition at line 51 of file solver_BiCGStab_Cmplx.h.

Field Solver_BiCGStab_Cmplx::m_t
private

Definition at line 58 of file solver_BiCGStab_Cmplx.h.

bool Solver_BiCGStab_Cmplx::m_use_init_guess
private

Definition at line 52 of file solver_BiCGStab_Cmplx.h.

Field Solver_BiCGStab_Cmplx::m_v
private

Definition at line 58 of file solver_BiCGStab_Cmplx.h.

Field Solver_BiCGStab_Cmplx::m_x
private

Definition at line 58 of file solver_BiCGStab_Cmplx.h.


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