Go to the documentation of this file.
14 #ifndef ASOLVER_BICGSTAB_Cmplx_H
15 #define ASOLVER_BICGSTAB_Cmplx_H
51 template<
typename AFIELD>
77 std::complex<real_t>
rho;
101 vout.
paranoiac(
"setting fopr to ASolver_BiCGStab_Cmplx: fopr=%p\n", fopr);
156 static bool register_factory()
163 #endif // ASOLVER_BICGSTAB_Cmplx_H
void solve_init_ZERO(const AFIELD &b, real_t &rr, coeff_t &)
ASolver_BiCGStab_Cmplx(AFopr< AFIELD > *fopr)
constructor.
real_t m_Stop_cond
stopping criterion (squared).
std::complex< real_t > omega
void set_init_mode(const InitialGuess init_guess)
InitialGuess m_initial_mode
mode switch for initial guess
real_t m_Omega_tolerance
tolerance for the stability
int m_nconv
to remember convergence iteration to provide flop count.
void solve_init_RHS(const AFIELD &b, real_t &rr, coeff_t &)
void paranoiac(const char *format,...)
void solve(AFIELD &xq, const AFIELD &b, int &nconv, real_t &diff)
solver main.
void solve_step(real_t &rr, int &iflg, coeff_t &)
void set_parameters_BiCGStab_series(const real_t Omega_tolerance)
setting BiCGStab specific parameters.
~ASolver_BiCGStab_Cmplx()
destructor.
real_t m_ecrit
to avoid too small denominator denominator.
AFopr< AFIELD > * get_fopr()
returns the pointer to the fermion operator.
static const std::string class_name
int m_init_mult
to remember convergence iteration to provide flop count.
int m_Niter
maximum iteration number.
void solve_init_GIVEN(const AFIELD &b, real_t &rr, coeff_t &, const real_t)
void solve_init(const AFIELD &b, real_t &rr, coeff_t &, const real_t scale, const InitialGuess)
AFopr< AFIELD > * m_fopr
fermion operator.
typename ASolver< AFIELD >::InitialGuess InitialGuess
Container of Field-type object.
std::complex< real_t > rho
std::complex< real_t > alpha
void set_parameters(const Parameters ¶ms)
setting parameters by a Parameter object.
ASolver_BiCGStab_Cmplx()
calling constructor without fermion operator is forbidden.
double flop_count()
returns the floating point operation count.