Bridge++  Ver. 2.0.2
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 (Fopr *fopr, const Parameters &params)
 
 ~Solver_BiCGStab_Cmplx ()
 
void set_parameters (const Parameters &params)
 
void set_parameters (const int Niter, const int Nrestart, const double Stop_cond)
 
DEPRECATED void set_parameters (const int Niter, const int Nrestart, const double Stop_cond, const bool use_init_guess)
 
DEPRECATED void set_parameters_BiCGStab_series (const double Omega_tolerance)
 
void set_parameters (const int Niter, const int Nrestart, const double Stop_cond, const bool use_init_guess, const double Omega_tolerance)
 
void get_parameters (Parameters &params) const
 
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 ()
 

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

Bridge::VerboseLevel m_vl
 
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
 

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() [1/2]

Solver_BiCGStab_Cmplx::Solver_BiCGStab_Cmplx ( Fopr fopr)
inline

Definition at line 67 of file solver_BiCGStab_Cmplx.h.

◆ Solver_BiCGStab_Cmplx() [2/2]

Solver_BiCGStab_Cmplx::Solver_BiCGStab_Cmplx ( Fopr fopr,
const Parameters params 
)
inline

Definition at line 78 of file solver_BiCGStab_Cmplx.h.

◆ ~Solver_BiCGStab_Cmplx()

Solver_BiCGStab_Cmplx::~Solver_BiCGStab_Cmplx ( )
inline

Definition at line 91 of file solver_BiCGStab_Cmplx.h.

Member Function Documentation

◆ flop_count()

double Solver_BiCGStab_Cmplx::flop_count ( )
virtual

Implements Solver.

Definition at line 382 of file solver_BiCGStab_Cmplx.cpp.

◆ get_fopr()

Fopr* Solver_BiCGStab_Cmplx::get_fopr ( )
inlinevirtual

Implements Solver.

Definition at line 107 of file solver_BiCGStab_Cmplx.h.

◆ get_parameters()

void Solver_BiCGStab_Cmplx::get_parameters ( Parameters params) const
virtual

Implements Solver.

Definition at line 58 of file solver_BiCGStab_Cmplx.cpp.

◆ reset_field()

void Solver_BiCGStab_Cmplx::reset_field ( const Field b)
private

Definition at line 277 of file solver_BiCGStab_Cmplx.cpp.

◆ set_parameters() [1/4]

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

Implements Solver.

Definition at line 71 of file solver_BiCGStab_Cmplx.cpp.

◆ set_parameters() [2/4]

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

Definition at line 101 of file solver_BiCGStab_Cmplx.cpp.

◆ set_parameters() [3/4]

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

Definition at line 149 of file solver_BiCGStab_Cmplx.cpp.

◆ set_parameters() [4/4]

void Solver_BiCGStab_Cmplx::set_parameters ( const Parameters params)
virtual

Implements Solver.

Definition at line 25 of file solver_BiCGStab_Cmplx.cpp.

◆ set_parameters_BiCGStab_series()

void Solver_BiCGStab_Cmplx::set_parameters_BiCGStab_series ( const double  Omega_tolerance)

Definition at line 133 of file solver_BiCGStab_Cmplx.cpp.

◆ solve()

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

Implements Solver.

Definition at line 189 of file solver_BiCGStab_Cmplx.cpp.

◆ solve_init()

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

Definition at line 303 of file solver_BiCGStab_Cmplx.cpp.

◆ solve_step()

void Solver_BiCGStab_Cmplx::solve_step ( double &  rr)
private

Definition at line 330 of file solver_BiCGStab_Cmplx.cpp.

Member Data Documentation

◆ class_name

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

Definition at line 45 of file solver_BiCGStab_Cmplx.h.

◆ m_alpha_prev

dcomplex Solver_BiCGStab_Cmplx::m_alpha_prev
private

Definition at line 59 of file solver_BiCGStab_Cmplx.h.

◆ m_fopr

Fopr* Solver_BiCGStab_Cmplx::m_fopr
private

Definition at line 50 of file solver_BiCGStab_Cmplx.h.

◆ m_Nconv_count

int Solver_BiCGStab_Cmplx::m_Nconv_count
private

Definition at line 63 of file solver_BiCGStab_Cmplx.h.

◆ m_Niter

int Solver_BiCGStab_Cmplx::m_Niter
private

Definition at line 52 of file solver_BiCGStab_Cmplx.h.

◆ m_Nrestart

int Solver_BiCGStab_Cmplx::m_Nrestart
private

Definition at line 52 of file solver_BiCGStab_Cmplx.h.

◆ m_Nrestart_count

int Solver_BiCGStab_Cmplx::m_Nrestart_count
private

Definition at line 62 of file solver_BiCGStab_Cmplx.h.

◆ m_omega_prev

dcomplex Solver_BiCGStab_Cmplx::m_omega_prev
private

Definition at line 59 of file solver_BiCGStab_Cmplx.h.

◆ m_Omega_tolerance

double Solver_BiCGStab_Cmplx::m_Omega_tolerance
private

Definition at line 56 of file solver_BiCGStab_Cmplx.h.

◆ m_p

Field Solver_BiCGStab_Cmplx::m_p
private

Definition at line 60 of file solver_BiCGStab_Cmplx.h.

◆ m_r

Field Solver_BiCGStab_Cmplx::m_r
private

Definition at line 60 of file solver_BiCGStab_Cmplx.h.

◆ m_rh

Field Solver_BiCGStab_Cmplx::m_rh
private

Definition at line 60 of file solver_BiCGStab_Cmplx.h.

◆ m_rho_prev

dcomplex Solver_BiCGStab_Cmplx::m_rho_prev
private

Definition at line 59 of file solver_BiCGStab_Cmplx.h.

◆ m_s

Field Solver_BiCGStab_Cmplx::m_s
private

Definition at line 60 of file solver_BiCGStab_Cmplx.h.

◆ m_Stop_cond

double Solver_BiCGStab_Cmplx::m_Stop_cond
private

Definition at line 53 of file solver_BiCGStab_Cmplx.h.

◆ m_t

Field Solver_BiCGStab_Cmplx::m_t
private

Definition at line 60 of file solver_BiCGStab_Cmplx.h.

◆ m_use_init_guess

bool Solver_BiCGStab_Cmplx::m_use_init_guess
private

Definition at line 54 of file solver_BiCGStab_Cmplx.h.

◆ m_v

Field Solver_BiCGStab_Cmplx::m_v
private

Definition at line 60 of file solver_BiCGStab_Cmplx.h.

◆ m_vl

Bridge::VerboseLevel Solver_BiCGStab_Cmplx::m_vl
private

Definition at line 48 of file solver_BiCGStab_Cmplx.h.

◆ m_x

Field Solver_BiCGStab_Cmplx::m_x
private

Definition at line 60 of file solver_BiCGStab_Cmplx.h.


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