Bridge++  Ver. 2.0.2
Solver_BiCGStab_IDS_L_Cmplx Class Reference

BiCGStab(IDS_L) algorithm. More...

#include <solver_BiCGStab_IDS_L_Cmplx.h>

Inheritance diagram for Solver_BiCGStab_IDS_L_Cmplx:
Solver

Public Member Functions

 Solver_BiCGStab_IDS_L_Cmplx (Fopr *fopr)
 
 Solver_BiCGStab_IDS_L_Cmplx (Fopr *fopr, const Parameters &params)
 
 ~Solver_BiCGStab_IDS_L_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)
 
DEPRECATED void set_parameters_DS_L (const int N_L, const double Tol_L)
 
void set_parameters (const int Niter, const int Nrestart, const double Stop_cond, const bool use_init_guess, const double Omega_tolerance, const int N_L, const double Tol_L)
 
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_IDS_L_Cmplx"
 

Private Member Functions

void reset_field (const Field &)
 
void solve_init (const Field &, double &)
 
void solve_step (double &)
 
int index_ij (const int i, const int j)
 

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
 
int m_N_L
 
double m_Tol_L
 
dcomplex m_rho_prev
 
dcomplex m_alpha_prev
 
double m_rr_prev
 
int m_N_L_prev
 
std::vector< Fieldm_u
 
std::vector< Fieldm_r
 
Field m_s
 
Field m_x
 
Field m_r_init
 
Field m_v
 
int m_Nrestart_count
 
int m_Niter_count
 
int m_Nconv_count
 
int m_N_L_part_count
 

Detailed Description

BiCGStab(IDS_L) algorithm.

This class implements BiCGStab(IDS_L) algorithm for nonhermitian matrix. The product of vectors is treated in complex. See S.Itoh and Y.Namekawa, J.Comp.Appl.Math. 159 (2003) 65. 22 Jan 2012 Y.Namekawa YAML is implemented. [14 Nov 2012 Y.Namekawa] Multi-threaded. [17 Jul 2014 Y.Namekawa] 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 43 of file solver_BiCGStab_IDS_L_Cmplx.h.

Constructor & Destructor Documentation

◆ Solver_BiCGStab_IDS_L_Cmplx() [1/2]

Solver_BiCGStab_IDS_L_Cmplx::Solver_BiCGStab_IDS_L_Cmplx ( Fopr fopr)
inline

Definition at line 76 of file solver_BiCGStab_IDS_L_Cmplx.h.

◆ Solver_BiCGStab_IDS_L_Cmplx() [2/2]

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

Definition at line 88 of file solver_BiCGStab_IDS_L_Cmplx.h.

◆ ~Solver_BiCGStab_IDS_L_Cmplx()

Solver_BiCGStab_IDS_L_Cmplx::~Solver_BiCGStab_IDS_L_Cmplx ( )
inline

Definition at line 103 of file solver_BiCGStab_IDS_L_Cmplx.h.

Member Function Documentation

◆ flop_count()

double Solver_BiCGStab_IDS_L_Cmplx::flop_count ( )
virtual

Implements Solver.

Definition at line 542 of file solver_BiCGStab_IDS_L_Cmplx.cpp.

◆ get_fopr()

Fopr* Solver_BiCGStab_IDS_L_Cmplx::get_fopr ( )
inlinevirtual

Implements Solver.

Definition at line 121 of file solver_BiCGStab_IDS_L_Cmplx.h.

◆ get_parameters()

void Solver_BiCGStab_IDS_L_Cmplx::get_parameters ( Parameters params) const
virtual

Implements Solver.

Definition at line 62 of file solver_BiCGStab_IDS_L_Cmplx.cpp.

◆ index_ij()

int Solver_BiCGStab_IDS_L_Cmplx::index_ij ( const int  i,
const int  j 
)
inlineprivate

Definition at line 131 of file solver_BiCGStab_IDS_L_Cmplx.h.

◆ reset_field()

void Solver_BiCGStab_IDS_L_Cmplx::reset_field ( const Field b)
private

Definition at line 317 of file solver_BiCGStab_IDS_L_Cmplx.cpp.

◆ set_parameters() [1/4]

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

Implements Solver.

Definition at line 77 of file solver_BiCGStab_IDS_L_Cmplx.cpp.

◆ set_parameters() [2/4]

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

Definition at line 106 of file solver_BiCGStab_IDS_L_Cmplx.cpp.

◆ set_parameters() [3/4]

void Solver_BiCGStab_IDS_L_Cmplx::set_parameters ( const int  Niter,
const int  Nrestart,
const double  Stop_cond,
const bool  use_init_guess,
const double  Omega_tolerance,
const int  N_L,
const double  Tol_L 
)

Definition at line 176 of file solver_BiCGStab_IDS_L_Cmplx.cpp.

◆ set_parameters() [4/4]

void Solver_BiCGStab_IDS_L_Cmplx::set_parameters ( const Parameters params)
virtual

Implements Solver.

Definition at line 25 of file solver_BiCGStab_IDS_L_Cmplx.cpp.

◆ set_parameters_BiCGStab_series()

void Solver_BiCGStab_IDS_L_Cmplx::set_parameters_BiCGStab_series ( const double  Omega_tolerance)

Definition at line 137 of file solver_BiCGStab_IDS_L_Cmplx.cpp.

◆ set_parameters_DS_L()

void Solver_BiCGStab_IDS_L_Cmplx::set_parameters_DS_L ( const int  N_L,
const double  Tol_L 
)

Definition at line 153 of file solver_BiCGStab_IDS_L_Cmplx.cpp.

◆ solve()

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

Implements Solver.

Definition at line 228 of file solver_BiCGStab_IDS_L_Cmplx.cpp.

◆ solve_init()

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

Definition at line 348 of file solver_BiCGStab_IDS_L_Cmplx.cpp.

◆ solve_step()

void Solver_BiCGStab_IDS_L_Cmplx::solve_step ( double &  rr)
private

Definition at line 381 of file solver_BiCGStab_IDS_L_Cmplx.cpp.

Member Data Documentation

◆ class_name

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

Definition at line 46 of file solver_BiCGStab_IDS_L_Cmplx.h.

◆ m_alpha_prev

dcomplex Solver_BiCGStab_IDS_L_Cmplx::m_alpha_prev
private

Definition at line 63 of file solver_BiCGStab_IDS_L_Cmplx.h.

◆ m_fopr

Fopr* Solver_BiCGStab_IDS_L_Cmplx::m_fopr
private

Definition at line 51 of file solver_BiCGStab_IDS_L_Cmplx.h.

◆ m_N_L

int Solver_BiCGStab_IDS_L_Cmplx::m_N_L
private

Definition at line 59 of file solver_BiCGStab_IDS_L_Cmplx.h.

◆ m_N_L_part_count

int Solver_BiCGStab_IDS_L_Cmplx::m_N_L_part_count
private

Definition at line 73 of file solver_BiCGStab_IDS_L_Cmplx.h.

◆ m_N_L_prev

int Solver_BiCGStab_IDS_L_Cmplx::m_N_L_prev
private

Definition at line 65 of file solver_BiCGStab_IDS_L_Cmplx.h.

◆ m_Nconv_count

int Solver_BiCGStab_IDS_L_Cmplx::m_Nconv_count
private

Definition at line 72 of file solver_BiCGStab_IDS_L_Cmplx.h.

◆ m_Niter

int Solver_BiCGStab_IDS_L_Cmplx::m_Niter
private

Definition at line 53 of file solver_BiCGStab_IDS_L_Cmplx.h.

◆ m_Niter_count

int Solver_BiCGStab_IDS_L_Cmplx::m_Niter_count
private

Definition at line 71 of file solver_BiCGStab_IDS_L_Cmplx.h.

◆ m_Nrestart

int Solver_BiCGStab_IDS_L_Cmplx::m_Nrestart
private

Definition at line 53 of file solver_BiCGStab_IDS_L_Cmplx.h.

◆ m_Nrestart_count

int Solver_BiCGStab_IDS_L_Cmplx::m_Nrestart_count
private

Definition at line 70 of file solver_BiCGStab_IDS_L_Cmplx.h.

◆ m_Omega_tolerance

double Solver_BiCGStab_IDS_L_Cmplx::m_Omega_tolerance
private

Definition at line 57 of file solver_BiCGStab_IDS_L_Cmplx.h.

◆ m_r

std::vector<Field> Solver_BiCGStab_IDS_L_Cmplx::m_r
private

Definition at line 67 of file solver_BiCGStab_IDS_L_Cmplx.h.

◆ m_r_init

Field Solver_BiCGStab_IDS_L_Cmplx::m_r_init
private

Definition at line 68 of file solver_BiCGStab_IDS_L_Cmplx.h.

◆ m_rho_prev

dcomplex Solver_BiCGStab_IDS_L_Cmplx::m_rho_prev
private

Definition at line 63 of file solver_BiCGStab_IDS_L_Cmplx.h.

◆ m_rr_prev

double Solver_BiCGStab_IDS_L_Cmplx::m_rr_prev
private

Definition at line 64 of file solver_BiCGStab_IDS_L_Cmplx.h.

◆ m_s

Field Solver_BiCGStab_IDS_L_Cmplx::m_s
private

Definition at line 68 of file solver_BiCGStab_IDS_L_Cmplx.h.

◆ m_Stop_cond

double Solver_BiCGStab_IDS_L_Cmplx::m_Stop_cond
private

Definition at line 54 of file solver_BiCGStab_IDS_L_Cmplx.h.

◆ m_Tol_L

double Solver_BiCGStab_IDS_L_Cmplx::m_Tol_L
private

Definition at line 60 of file solver_BiCGStab_IDS_L_Cmplx.h.

◆ m_u

std::vector<Field> Solver_BiCGStab_IDS_L_Cmplx::m_u
private

Definition at line 67 of file solver_BiCGStab_IDS_L_Cmplx.h.

◆ m_use_init_guess

bool Solver_BiCGStab_IDS_L_Cmplx::m_use_init_guess
private

Definition at line 55 of file solver_BiCGStab_IDS_L_Cmplx.h.

◆ m_v

Field Solver_BiCGStab_IDS_L_Cmplx::m_v
private

Definition at line 68 of file solver_BiCGStab_IDS_L_Cmplx.h.

◆ m_vl

Bridge::VerboseLevel Solver_BiCGStab_IDS_L_Cmplx::m_vl
private

Definition at line 49 of file solver_BiCGStab_IDS_L_Cmplx.h.

◆ m_x

Field Solver_BiCGStab_IDS_L_Cmplx::m_x
private

Definition at line 68 of file solver_BiCGStab_IDS_L_Cmplx.h.


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