Bridge++
Ver. 2.0.2
|
#include <asolver_MG_double.h>
Public Types | |
typedef AFIELD::real_t | real_t |
using | AFIELD2 = AField< real_t, AFIELD::IMPL > |
Public Types inherited from ASolver< AFIELD > | |
enum | InitialGuess { RHS, GIVEN, ZERO } |
typedef AFIELD::real_t | real_t |
Public Member Functions | |
ASolver_MG_double () | |
constructor. More... | |
~ASolver_MG_double () | |
destructor. More... | |
void | set_parameters (const Parameters ¶ms) |
setting parameters by a Parameter object. More... | |
void | set_parameters_level0 (const Parameters ¶ms) |
setting parameters by a Parameter object. More... | |
void | set_parameters_level1 (const Parameters ¶ms) |
setting parameters by a Parameter object. More... | |
void | set_parameters (const int Niter, const real_t Stop_cond, const std::vector< int > &sap_block_size, const int nvec) |
setting parameters. More... | |
void | set_parameters (const int Niter, const real_t Stop_cond, const std::string &outer_vlevel, const std::vector< int > &sap_block_size, const int nvec, const int nsetup, const int coarse_niter, const real_t coarse_stop_cond, const std::string &coarse_vlevel, const int smoother_niter, const real_t smoother_stop_cond) |
void | run_setup () |
setup More... | |
void | run_setup_initial (std::vector< AFIELD2 > &testvec_work) |
void | run_setup_iterative (int niter, std::vector< AFIELD2 > &testvec_work) |
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... | |
AFopr< AFIELD > * | get_foprD () |
AFopr_dd< AFIELD2 > * | get_foprF () |
AFopr< AFIELD2 > * | get_fopr_coarse () |
void | set_foprD (AFopr< AFIELD > *foprD) |
void | set_foprF (AFopr_dd< AFIELD2 > *foprF) |
void | set_lattice (const vector< int > &sap_block_size) |
void | init_solver (std::string mode) |
void | init_solver () |
double | flop_count () |
returns the floating point operation count. More... | |
double | flop_count_setup () |
returns the floating point operation count [setup]. More... | |
void | reset_flop_count () |
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_MG_double" |
Protected Member Functions | |
void | init_coarse_grid () |
void | init (void) |
void | tidyup (void) |
void | solve_MG_init (real_t &rrp, real_t &rr) |
void | solve_MG_step (real_t &rrp, real_t &rr) |
Protected Attributes | |
unique_ptr< APrecond_MG< AFIELD, AFIELD2 > > | m_prec_mg |
std::vector< int > | m_sap_block_size |
AFopr< AFIELD > * | m_afopr_fineD |
AFopr_dd< AFIELD2 > * | m_afopr_fineF |
unique_ptr< AFopr< AFIELD2 > > | m_afopr_coarse |
unique_ptr< ASolver< AFIELD2 > > | m_asolver_coarse |
unique_ptr< ASolver< AFIELD2 > > | m_asolver_smoother |
unique_ptr< ASolver< AFIELD > > | m_outer_solver |
unique_ptr< MultiGrid< AFIELD2, AFIELD2 > > | m_multigrid |
int | m_Niter |
maximum iteration number. More... | |
real_t | m_Stop_cond |
stopping criterion (squared). More... | |
int | m_Nconv |
iteratoin number to calculate flop More... | |
int | m_nvec |
number of testvectors More... | |
int | m_nsetup |
setup iterations More... | |
int | m_smoother_niter |
int | m_smoother_stop_cond |
Parameters | m_params_asolver_coarse |
parameters for coarse grid solver More... | |
Parameters | m_params_asolver_outer |
parameters for outer solver More... | |
std::string | m_mode |
int | m_nconv |
set "D" for colver (default), "DdagD" for domainwall More... | |
AFIELD | m_x |
calling constructor without fermion operator is forbidden. More... | |
AFIELD | m_r |
AFIELD | m_p |
std::vector< int > | m_coarse_lattice |
unique_ptr< Timer > | m_timer_gramschmidt |
unique_ptr< Timer > | m_timer_generate_coarse_op |
Protected Attributes inherited from ASolver< AFIELD > | |
Bridge::VerboseLevel | m_vl |
Static Protected Attributes | |
static constexpr int | m_min_res_iter = 6 |
Definition at line 30 of file asolver_MG_double.h.
using ASolver_MG_double< AFIELD >::AFIELD2 = AField<real_t, AFIELD::IMPL> |
Definition at line 34 of file asolver_MG_double.h.
typedef AFIELD::real_t ASolver_MG_double< AFIELD >::real_t |
Definition at line 33 of file asolver_MG_double.h.
|
inline |
constructor.
Definition at line 102 of file asolver_MG_double.h.
|
inline |
destructor.
Definition at line 109 of file asolver_MG_double.h.
const std::string ASolver_MG_double< AField_d >::class_name |
Definition at line 57 of file asolver_MG_double.cpp.
|
virtual |
returns the floating point operation count.
Reimplemented from ASolver< AFIELD >.
Definition at line 517 of file asolver_MG_double-tmpl.h.
double ASolver_MG_double< AFIELD >::flop_count_setup | ( | ) |
returns the floating point operation count [setup].
|
inlinevirtual |
returns the pointer to the fermion operator.
Reimplemented from ASolver< AFIELD >.
Definition at line 138 of file asolver_MG_double.h.
|
inline |
Definition at line 142 of file asolver_MG_double.h.
|
inline |
Definition at line 139 of file asolver_MG_double.h.
|
inline |
Definition at line 140 of file asolver_MG_double.h.
|
protected |
Definition at line 47 of file asolver_MG_double-tmpl.h.
|
protected |
Definition at line 237 of file asolver_MG_double-tmpl.h.
|
inline |
Definition at line 155 of file asolver_MG_double.h.
void ASolver_MG_double< AFIELD >::init_solver | ( | std::string | mode | ) |
Definition at line 204 of file asolver_MG_double-tmpl.h.
void ASolver_MG_double< AFIELD >::reset_flop_count |
Definition at line 508 of file asolver_MG_double-tmpl.h.
void ASolver_MG_double< AFIELD >::run_setup |
setup
Definition at line 336 of file asolver_MG_double-tmpl.h.
void ASolver_MG_double< AFIELD >::run_setup_initial | ( | std::vector< AFIELD2 > & | testvec_work | ) |
Definition at line 375 of file asolver_MG_double-tmpl.h.
void ASolver_MG_double< AFIELD >::run_setup_iterative | ( | int | niter, |
std::vector< AFIELD2 > & | testvec_work | ||
) |
Definition at line 442 of file asolver_MG_double-tmpl.h.
void ASolver_MG_double< AFIELD >::set_foprD | ( | AFopr< AFIELD > * | foprD | ) |
Definition at line 178 of file asolver_MG_double-tmpl.h.
void ASolver_MG_double< AFIELD >::set_foprF | ( | AFopr_dd< AFIELD2 > * | foprF | ) |
Definition at line 191 of file asolver_MG_double-tmpl.h.
void ASolver_MG_double< AFIELD >::set_lattice | ( | const vector< int > & | sap_block_size | ) |
Definition at line 297 of file asolver_MG_double-tmpl.h.
void ASolver_MG_double< AFIELD >::set_parameters | ( | const int | Niter, |
const real_t | Stop_cond, | ||
const std::string & | outer_vlevel, | ||
const std::vector< int > & | sap_block_size, | ||
const int | nvec, | ||
const int | nsetup, | ||
const int | coarse_niter, | ||
const real_t | coarse_stop_cond, | ||
const std::string & | coarse_vlevel, | ||
const int | smoother_niter, | ||
const real_t | smoother_stop_cond | ||
) |
Definition at line 132 of file asolver_MG_double-tmpl.h.
void ASolver_MG_double< AFIELD >::set_parameters | ( | const int | Niter, |
const real_t | Stop_cond, | ||
const std::vector< int > & | sap_block_size, | ||
const int | nvec | ||
) |
setting parameters.
|
virtual |
setting parameters by a Parameter object.
Implements ASolver< AFIELD >.
Definition at line 67 of file asolver_MG_double-tmpl.h.
void ASolver_MG_double< AFIELD >::set_parameters_level0 | ( | const Parameters & | params | ) |
setting parameters by a Parameter object.
Definition at line 103 of file asolver_MG_double-tmpl.h.
void ASolver_MG_double< AFIELD >::set_parameters_level1 | ( | const Parameters & | params | ) |
setting parameters by a Parameter object.
Definition at line 111 of file asolver_MG_double-tmpl.h.
|
virtual |
solver main.
Reimplemented from ASolver< AFIELD >.
Definition at line 499 of file asolver_MG_double-tmpl.h.
|
protected |
|
protected |
|
protected |
Definition at line 60 of file asolver_MG_double-tmpl.h.
|
static |
Definition at line 50 of file asolver_MG_double.h.
|
protected |
Definition at line 63 of file asolver_MG_double.h.
|
protected |
Definition at line 59 of file asolver_MG_double.h.
|
protected |
Definition at line 60 of file asolver_MG_double.h.
|
protected |
Definition at line 66 of file asolver_MG_double.h.
|
protected |
Definition at line 67 of file asolver_MG_double.h.
|
protected |
Definition at line 180 of file asolver_MG_double.h.
|
staticconstexprprotected |
Definition at line 80 of file asolver_MG_double.h.
|
protected |
Definition at line 88 of file asolver_MG_double.h.
|
protected |
Definition at line 71 of file asolver_MG_double.h.
|
protected |
iteratoin number to calculate flop
Definition at line 75 of file asolver_MG_double.h.
|
protected |
set "D" for colver (default), "DdagD" for domainwall
to remember convergence iteration to provide flop count.
Definition at line 91 of file asolver_MG_double.h.
|
protected |
maximum iteration number.
Definition at line 73 of file asolver_MG_double.h.
|
protected |
setup iterations
Definition at line 78 of file asolver_MG_double.h.
|
protected |
number of testvectors
Definition at line 77 of file asolver_MG_double.h.
|
protected |
Definition at line 68 of file asolver_MG_double.h.
|
protected |
Definition at line 97 of file asolver_MG_double.h.
|
protected |
parameters for coarse grid solver
Definition at line 84 of file asolver_MG_double.h.
|
protected |
parameters for outer solver
Definition at line 85 of file asolver_MG_double.h.
|
protected |
Definition at line 55 of file asolver_MG_double.h.
|
protected |
Definition at line 97 of file asolver_MG_double.h.
|
protected |
Definition at line 56 of file asolver_MG_double.h.
|
protected |
Definition at line 81 of file asolver_MG_double.h.
|
protected |
Definition at line 82 of file asolver_MG_double.h.
|
protected |
stopping criterion (squared).
Definition at line 74 of file asolver_MG_double.h.
|
protected |
Definition at line 183 of file asolver_MG_double.h.
|
protected |
Definition at line 182 of file asolver_MG_double.h.
|
protected |
calling constructor without fermion operator is forbidden.
working vectors.
Definition at line 97 of file asolver_MG_double.h.