Bridge++
Ver. 2.0.2
|
#include <asolver_BiCGStab_Cmplx.h>
Classes | |
struct | coeff_t |
Public Types | |
typedef AFIELD::real_t | real_t |
using | InitialGuess = typename ASolver< AFIELD >::InitialGuess |
Public Types inherited from ASolver< AFIELD > | |
enum | InitialGuess { RHS, GIVEN, ZERO } |
typedef AFIELD::real_t | real_t |
Public Member Functions | |
ASolver_BiCGStab_Cmplx (AFopr< AFIELD > *fopr) | |
constructor. More... | |
~ASolver_BiCGStab_Cmplx () | |
destructor. More... | |
void | set_parameters (const Parameters ¶ms) |
setting parameters by a Parameter object. More... | |
void | set_parameters (const int Niter, const real_t Stop_cond) |
setting parameters. More... | |
void | set_parameters (const int Niter, const real_t Stop_cond, const InitialGuess init_guess) |
setting parameters. More... | |
void | set_init_mode (const InitialGuess init_guess) |
void | set_parameters_BiCGStab_series (const real_t Omega_tolerance) |
setting BiCGStab specific parameters. More... | |
void | solve (AFIELD &xq, const AFIELD &b, int &nconv, real_t &diff) |
solver main. More... | |
AFopr< AFIELD > * | get_fopr () |
returns the pointer to the fermion operator. More... | |
double | flop_count () |
returns the floating point operation count. More... | |
const std::string | class_name |
const std::string | class_name |
Public Member Functions inherited from ASolver< AFIELD > | |
ASolver () | |
virtual | ~ASolver () |
void | set_parameter_verboselevel (const Bridge::VerboseLevel vl) |
virtual void | set_init_mode (const InitialGuess init_guess) |
Static Public Attributes | |
static const std::string | class_name = "ASolver_BiCGStab_Cmplx" |
Protected Member Functions | |
ASolver_BiCGStab_Cmplx () | |
calling constructor without fermion operator is forbidden. More... | |
void | init (void) |
void | tidyup (void) |
void | solve_init (const AFIELD &b, real_t &rr, coeff_t &, const real_t scale, const InitialGuess) |
void | solve_init_RHS (const AFIELD &b, real_t &rr, coeff_t &) |
void | solve_init_ZERO (const AFIELD &b, real_t &rr, coeff_t &) |
void | solve_init_GIVEN (const AFIELD &b, real_t &rr, coeff_t &, const real_t) |
void | solve_step (real_t &rr, int &iflg, coeff_t &) |
Protected Attributes | |
int | m_nconv |
to remember convergence iteration to provide flop count. More... | |
int | m_init_mult |
to remember convergence iteration to provide flop count. More... | |
InitialGuess | m_initial_mode |
mode switch for initial guess More... | |
Protected Attributes inherited from ASolver< AFIELD > | |
Bridge::VerboseLevel | m_vl |
Private Attributes | |
AFopr< AFIELD > * | m_fopr |
fermion operator. More... | |
int | m_Niter |
maximum iteration number. More... | |
real_t | m_Stop_cond |
stopping criterion (squared). More... | |
real_t | m_Omega_tolerance |
tolerance for the stability More... | |
real_t | m_ecrit |
to avoid too small denominator denominator. More... | |
AFIELD * | m_px |
AFIELD | m_r |
AFIELD | m_p |
AFIELD | m_rh |
AFIELD | m_v |
AFIELD | m_t |
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] Class template version. [27 Jul 2019 H.Matsufuru] Add initial guess, coeff_t [ 4 Jun 2020 I.Kanamori]
Definition at line 52 of file asolver_BiCGStab_Cmplx.h.
using ASolver_BiCGStab_Cmplx< AFIELD >::InitialGuess = typename ASolver<AFIELD>::InitialGuess |
Definition at line 58 of file asolver_BiCGStab_Cmplx.h.
typedef AFIELD::real_t ASolver_BiCGStab_Cmplx< AFIELD >::real_t |
Definition at line 55 of file asolver_BiCGStab_Cmplx.h.
|
inlineprotected |
calling constructor without fermion operator is forbidden.
Definition at line 94 of file asolver_BiCGStab_Cmplx.h.
|
inline |
constructor.
Definition at line 98 of file asolver_BiCGStab_Cmplx.h.
|
inline |
destructor.
Definition at line 106 of file asolver_BiCGStab_Cmplx.h.
const std::string ASolver_BiCGStab_Cmplx< AField< double, QXS > >::class_name |
Definition at line 31 of file asolver_BiCGStab_Cmplx.cpp.
const std::string ASolver_BiCGStab_Cmplx< AField< float, QXS > >::class_name |
Definition at line 45 of file asolver_BiCGStab_Cmplx.cpp.
|
virtual |
returns the floating point operation count.
Reimplemented from ASolver< AFIELD >.
Definition at line 468 of file asolver_BiCGStab_Cmplx-tmpl.h.
|
inlinevirtual |
returns the pointer to the fermion operator.
Reimplemented from ASolver< AFIELD >.
Definition at line 129 of file asolver_BiCGStab_Cmplx.h.
|
protected |
Definition at line 39 of file asolver_BiCGStab_Cmplx-tmpl.h.
|
inline |
Definition at line 117 of file asolver_BiCGStab_Cmplx.h.
void ASolver_BiCGStab_Cmplx< AFIELD >::set_parameters | ( | const int | Niter, |
const real_t | Stop_cond | ||
) |
setting parameters.
Definition at line 130 of file asolver_BiCGStab_Cmplx-tmpl.h.
void ASolver_BiCGStab_Cmplx< AFIELD >::set_parameters | ( | const int | Niter, |
const real_t | Stop_cond, | ||
const InitialGuess | init_guess | ||
) |
setting parameters.
|
virtual |
setting parameters by a Parameter object.
Implements ASolver< AFIELD >.
Definition at line 74 of file asolver_BiCGStab_Cmplx-tmpl.h.
void ASolver_BiCGStab_Cmplx< AFIELD >::set_parameters_BiCGStab_series | ( | const real_t | Omega_tolerance | ) |
setting BiCGStab specific parameters.
Definition at line 161 of file asolver_BiCGStab_Cmplx-tmpl.h.
|
virtual |
solver main.
Reimplemented from ASolver< AFIELD >.
Definition at line 178 of file asolver_BiCGStab_Cmplx-tmpl.h.
|
inlineprotected |
Definition at line 260 of file asolver_BiCGStab_Cmplx-tmpl.h.
|
protected |
Definition at line 323 of file asolver_BiCGStab_Cmplx-tmpl.h.
|
protected |
Definition at line 281 of file asolver_BiCGStab_Cmplx-tmpl.h.
|
protected |
Definition at line 355 of file asolver_BiCGStab_Cmplx-tmpl.h.
|
protected |
Definition at line 377 of file asolver_BiCGStab_Cmplx-tmpl.h.
|
protected |
Definition at line 65 of file asolver_BiCGStab_Cmplx-tmpl.h.
|
static |
Definition at line 57 of file asolver_BiCGStab_Cmplx.h.
|
private |
to avoid too small denominator denominator.
Definition at line 68 of file asolver_BiCGStab_Cmplx.h.
|
private |
fermion operator.
Definition at line 61 of file asolver_BiCGStab_Cmplx.h.
|
protected |
to remember convergence iteration to provide flop count.
Definition at line 88 of file asolver_BiCGStab_Cmplx.h.
|
protected |
mode switch for initial guess
Definition at line 91 of file asolver_BiCGStab_Cmplx.h.
|
protected |
to remember convergence iteration to provide flop count.
Definition at line 85 of file asolver_BiCGStab_Cmplx.h.
|
private |
maximum iteration number.
Definition at line 63 of file asolver_BiCGStab_Cmplx.h.
|
private |
tolerance for the stability
Definition at line 66 of file asolver_BiCGStab_Cmplx.h.
|
private |
Definition at line 73 of file asolver_BiCGStab_Cmplx.h.
|
private |
Matsufuru added: new AField_dev implementation Kanamori Modified: m_x is now a reference through pointer
Definition at line 72 of file asolver_BiCGStab_Cmplx.h.
|
private |
Definition at line 73 of file asolver_BiCGStab_Cmplx.h.
|
private |
Definition at line 73 of file asolver_BiCGStab_Cmplx.h.
|
private |
stopping criterion (squared).
Definition at line 64 of file asolver_BiCGStab_Cmplx.h.
|
private |
Definition at line 73 of file asolver_BiCGStab_Cmplx.h.
|
private |
Definition at line 73 of file asolver_BiCGStab_Cmplx.h.