Bridge++
Version 1.5.4
|
BiCGStab(IDS_L) algorithm. More...
#include <solver_BiCGStab_IDS_L_Cmplx.h>
Public Member Functions | |
Solver_BiCGStab_IDS_L_Cmplx (Fopr *fopr) | |
Solver_BiCGStab_IDS_L_Cmplx (unique_ptr< Fopr > &fopr) | |
~Solver_BiCGStab_IDS_L_Cmplx () | |
void | set_parameters (const Parameters ¶ms) |
void | set_parameters (const int Niter, const int Nrestart, const double Stop_cond) |
void | set_parameters (const int Niter, const int Nrestart, const double Stop_cond, const bool use_init_guess) |
void | set_parameters_BiCGStab_series (const double Omega_tolerance) |
void | set_parameters_DS_L (const int N_L, const double Tol_L) |
void | solve (Field &solution, const Field &source, int &Nconv, double &diff) |
Fopr * | get_fopr () |
double | flop_count () |
Public Member Functions inherited from Solver | |
Solver () | |
virtual | ~Solver () |
void | set_parameter_verboselevel (const Bridge::VerboseLevel vl) |
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 | |
Fopr * | m_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< Field > | m_u |
std::vector< Field > | m_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 |
Additional Inherited Members | |
Protected Attributes inherited from Solver | |
Bridge::VerboseLevel | m_vl |
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.
|
inline |
Definition at line 74 of file solver_BiCGStab_IDS_L_Cmplx.h.
|
inline |
Definition at line 86 of file solver_BiCGStab_IDS_L_Cmplx.h.
|
inline |
Definition at line 98 of file solver_BiCGStab_IDS_L_Cmplx.h.
|
virtual |
Implements Solver.
Definition at line 475 of file solver_BiCGStab_IDS_L_Cmplx.cpp.
|
inlinevirtual |
Implements Solver.
Definition at line 109 of file solver_BiCGStab_IDS_L_Cmplx.h.
|
inlineprivate |
Definition at line 119 of file solver_BiCGStab_IDS_L_Cmplx.h.
|
private |
Definition at line 250 of file solver_BiCGStab_IDS_L_Cmplx.cpp.
|
virtual |
Implements Solver.
Definition at line 25 of file solver_BiCGStab_IDS_L_Cmplx.cpp.
|
virtual |
Implements Solver.
Definition at line 60 of file solver_BiCGStab_IDS_L_Cmplx.cpp.
|
virtual |
Implements Solver.
Definition at line 89 of file solver_BiCGStab_IDS_L_Cmplx.cpp.
void Solver_BiCGStab_IDS_L_Cmplx::set_parameters_BiCGStab_series | ( | const double | Omega_tolerance | ) |
Definition at line 120 of file solver_BiCGStab_IDS_L_Cmplx.cpp.
void Solver_BiCGStab_IDS_L_Cmplx::set_parameters_DS_L | ( | const int | N_L, |
const double | Tol_L | ||
) |
Definition at line 136 of file solver_BiCGStab_IDS_L_Cmplx.cpp.
|
virtual |
Implements Solver.
Definition at line 159 of file solver_BiCGStab_IDS_L_Cmplx.cpp.
|
private |
Definition at line 281 of file solver_BiCGStab_IDS_L_Cmplx.cpp.
|
private |
Definition at line 314 of file solver_BiCGStab_IDS_L_Cmplx.cpp.
|
static |
Definition at line 46 of file solver_BiCGStab_IDS_L_Cmplx.h.
|
private |
Definition at line 61 of file solver_BiCGStab_IDS_L_Cmplx.h.
|
private |
Definition at line 49 of file solver_BiCGStab_IDS_L_Cmplx.h.
|
private |
Definition at line 57 of file solver_BiCGStab_IDS_L_Cmplx.h.
|
private |
Definition at line 71 of file solver_BiCGStab_IDS_L_Cmplx.h.
|
private |
Definition at line 63 of file solver_BiCGStab_IDS_L_Cmplx.h.
|
private |
Definition at line 70 of file solver_BiCGStab_IDS_L_Cmplx.h.
|
private |
Definition at line 51 of file solver_BiCGStab_IDS_L_Cmplx.h.
|
private |
Definition at line 69 of file solver_BiCGStab_IDS_L_Cmplx.h.
|
private |
Definition at line 51 of file solver_BiCGStab_IDS_L_Cmplx.h.
|
private |
Definition at line 68 of file solver_BiCGStab_IDS_L_Cmplx.h.
|
private |
Definition at line 55 of file solver_BiCGStab_IDS_L_Cmplx.h.
|
private |
Definition at line 65 of file solver_BiCGStab_IDS_L_Cmplx.h.
|
private |
Definition at line 66 of file solver_BiCGStab_IDS_L_Cmplx.h.
|
private |
Definition at line 61 of file solver_BiCGStab_IDS_L_Cmplx.h.
|
private |
Definition at line 62 of file solver_BiCGStab_IDS_L_Cmplx.h.
|
private |
Definition at line 66 of file solver_BiCGStab_IDS_L_Cmplx.h.
|
private |
Definition at line 52 of file solver_BiCGStab_IDS_L_Cmplx.h.
|
private |
Definition at line 58 of file solver_BiCGStab_IDS_L_Cmplx.h.
|
private |
Definition at line 65 of file solver_BiCGStab_IDS_L_Cmplx.h.
|
private |
Definition at line 53 of file solver_BiCGStab_IDS_L_Cmplx.h.
|
private |
Definition at line 66 of file solver_BiCGStab_IDS_L_Cmplx.h.
|
private |
Definition at line 66 of file solver_BiCGStab_IDS_L_Cmplx.h.