Bridge++  Ver. 2.0.2
APrecond_MG< AFIELD, AFIELD2 > Class Template Reference

#include <aprecond_MG.h>

Inheritance diagram for APrecond_MG< AFIELD, AFIELD2 >:
APrecond< AFIELD >

Public Types

typedef AFIELD::real_t real_t0
 
typedef AFIELD2::real_t real_t
 
typedef MultiGrid< AFIELD2, AFIELD2 > MultiGrid_t
 
typedef MultiGrid_t::Index_t block_index_t
 

Public Member Functions

 APrecond_MG ()
 
void mult (AFIELD &, const AFIELD &)
 
void mult_as_setup (AFIELD2 &, const AFIELD2 &)
 
void reset_flop_count ()
 
void set_coarse_solver (ASolver< AFIELD2 > *solver)
 
void set_smoother (ASolver< AFIELD2 > *solver)
 
void set_multigrid (const MultiGrid_t *multigrid)
 
void set_fopr (AFopr< AFIELD > *foprD, AFopr< AFIELD2 > *foprF)
 
void report_timer ()
 
double flop_count ()
 
double flop_count_coarse () const
 
double flop_count_smoother () const
 
double flop_count_other () const
 
double flop_count_double () const
 
const std::string class_name
 
- Public Member Functions inherited from APrecond< AFIELD >
 APrecond ()
 
virtual ~APrecond ()
 

Static Public Attributes

static const Impl IMPL = AFIELD::IMPL
 
static const Impl IMPL2 = AFIELD2::IMPL
 
static const std::string class_name = "APrecond_MG"
 

Private Member Functions

void init ()
 
void tidyup ()
 
void update_flop_count ()
 
void mult_single (AFIELD2 &, const AFIELD2 &)
 

Private Attributes

ASolver< AFIELD2 > * m_coarse_solver
 
ASolver< AFIELD2 > * m_smoother
 
const MultiGrid_tm_multigrid
 
AFopr< AFIELD > * m_afoprD
 
AFopr< AFIELD2 > * m_afoprF
 
AFIELD2 m_coarse_v
 
AFIELD2 m_coarse_w
 
AFIELD2 m_fine_w
 
AFIELD2 m_fine_v
 
AFIELD2 m_fine_tmp
 
AFIELD2 m_fine_r
 
AFIELD m_fine_vecD
 
AFIELD m_fine_debugD
 
AFIELD m_fine_rD
 
double m_accum_flop_coarse
 
double m_accum_flop_smoother
 
double m_accum_flop_other
 
double m_accum_flop_float
 
double m_accum_flop_double
 
double m_accum_flop_restrict
 
double m_accum_flop_prolong
 
int m_coarse_ncol
 
double m_time_f2d
 
double m_time_d2f
 
double m_time_residual
 
double m_time_restriction
 
double m_time_coarse_solver
 
double m_time_smoother
 
double m_time_prolongation
 
double m_time_mult_single_total
 
double m_time_mult_total
 
double m_time_double
 
int m_num_mult_called
 number of mult call More...
 
int m_num_mult_single_called
 number of mult call More...
 

Additional Inherited Members

- Protected Attributes inherited from APrecond< AFIELD >
Bridge::VerboseLevel m_vl
 

Detailed Description

template<typename AFIELD, typename AFIELD2>
class APrecond_MG< AFIELD, AFIELD2 >

explanation to be added.

Definition at line 39 of file aprecond_MG.h.

Member Typedef Documentation

◆ block_index_t

template<typename AFIELD , typename AFIELD2 >
typedef MultiGrid_t::Index_t APrecond_MG< AFIELD, AFIELD2 >::block_index_t

Definition at line 45 of file aprecond_MG.h.

◆ MultiGrid_t

template<typename AFIELD , typename AFIELD2 >
typedef MultiGrid<AFIELD2, AFIELD2> APrecond_MG< AFIELD, AFIELD2 >::MultiGrid_t

Definition at line 44 of file aprecond_MG.h.

◆ real_t

template<typename AFIELD , typename AFIELD2 >
typedef AFIELD2::real_t APrecond_MG< AFIELD, AFIELD2 >::real_t

Definition at line 43 of file aprecond_MG.h.

◆ real_t0

template<typename AFIELD , typename AFIELD2 >
typedef AFIELD::real_t APrecond_MG< AFIELD, AFIELD2 >::real_t0

Definition at line 42 of file aprecond_MG.h.

Constructor & Destructor Documentation

◆ APrecond_MG()

template<typename AFIELD , typename AFIELD2 >
APrecond_MG< AFIELD, AFIELD2 >::APrecond_MG ( )
inline

Definition at line 99 of file aprecond_MG.h.

Member Function Documentation

◆ class_name()

const std::string APrecond_MG< AField< double, QXS >, AField< float, QXS > >::class_name

Definition at line 32 of file aprecond_MG.cpp.

◆ flop_count()

template<typename AFIELD , typename AFIELD2 >
double APrecond_MG< AFIELD, AFIELD2 >::flop_count ( )
inlinevirtual

Reimplemented from APrecond< AFIELD >.

Definition at line 115 of file aprecond_MG.h.

◆ flop_count_coarse()

template<typename AFIELD , typename AFIELD2 >
double APrecond_MG< AFIELD, AFIELD2 >::flop_count_coarse ( ) const
inline

Definition at line 116 of file aprecond_MG.h.

◆ flop_count_double()

template<typename AFIELD , typename AFIELD2 >
double APrecond_MG< AFIELD, AFIELD2 >::flop_count_double ( ) const
inline

Definition at line 119 of file aprecond_MG.h.

◆ flop_count_other()

template<typename AFIELD , typename AFIELD2 >
double APrecond_MG< AFIELD, AFIELD2 >::flop_count_other ( ) const
inline

Definition at line 118 of file aprecond_MG.h.

◆ flop_count_smoother()

template<typename AFIELD , typename AFIELD2 >
double APrecond_MG< AFIELD, AFIELD2 >::flop_count_smoother ( ) const
inline

Definition at line 117 of file aprecond_MG.h.

◆ init()

template<typename AFIELD , typename AFIELD2 >
void APrecond_MG< AFIELD, AFIELD2 >::init
private

Definition at line 59 of file aprecond_MG-tmpl.h.

◆ mult()

template<typename AFIELD , typename AFIELD2 >
void APrecond_MG< AFIELD, AFIELD2 >::mult ( AFIELD v,
const AFIELD w 
)
virtual

Reimplemented from APrecond< AFIELD >.

Definition at line 108 of file aprecond_MG-tmpl.h.

◆ mult_as_setup()

template<typename AFIELD , typename AFIELD2 >
void APrecond_MG< AFIELD, AFIELD2 >::mult_as_setup ( AFIELD2 &  v,
const AFIELD2 &  w 
)

Definition at line 344 of file aprecond_MG-tmpl.h.

◆ mult_single()

template<typename AFIELD , typename AFIELD2 >
void APrecond_MG< AFIELD, AFIELD2 >::mult_single ( AFIELD2 &  v,
const AFIELD2 &  w 
)
private

Definition at line 199 of file aprecond_MG-tmpl.h.

◆ report_timer()

template<typename AFIELD , typename AFIELD2 >
void APrecond_MG< AFIELD, AFIELD2 >::report_timer

Definition at line 413 of file aprecond_MG-tmpl.h.

◆ reset_flop_count()

template<typename AFIELD , typename AFIELD2 >
void APrecond_MG< AFIELD, AFIELD2 >::reset_flop_count
virtual

Reimplemented from APrecond< AFIELD >.

Definition at line 387 of file aprecond_MG-tmpl.h.

◆ set_coarse_solver()

template<typename AFIELD , typename AFIELD2 >
void APrecond_MG< AFIELD, AFIELD2 >::set_coarse_solver ( ASolver< AFIELD2 > *  solver)

Definition at line 69 of file aprecond_MG-tmpl.h.

◆ set_fopr()

template<typename AFIELD , typename AFIELD2 >
void APrecond_MG< AFIELD, AFIELD2 >::set_fopr ( AFopr< AFIELD > *  foprD,
AFopr< AFIELD2 > *  foprF 
)
inline

Definition at line 112 of file aprecond_MG.h.

◆ set_multigrid()

template<typename AFIELD , typename AFIELD2 >
void APrecond_MG< AFIELD, AFIELD2 >::set_multigrid ( const MultiGrid_t multigrid)
inline

Definition at line 107 of file aprecond_MG.h.

◆ set_smoother()

template<typename AFIELD , typename AFIELD2 >
void APrecond_MG< AFIELD, AFIELD2 >::set_smoother ( ASolver< AFIELD2 > *  solver)

Definition at line 84 of file aprecond_MG-tmpl.h.

◆ tidyup()

template<typename AFIELD , typename AFIELD2 >
void APrecond_MG< AFIELD, AFIELD2 >::tidyup
private

Definition at line 100 of file aprecond_MG-tmpl.h.

◆ update_flop_count()

template<typename AFIELD , typename AFIELD2 >
void APrecond_MG< AFIELD, AFIELD2 >::update_flop_count
private

Definition at line 355 of file aprecond_MG-tmpl.h.

Member Data Documentation

◆ class_name

template<typename AFIELD , typename AFIELD2 >
const std::string APrecond_MG< AFIELD, AFIELD2 >::class_name = "APrecond_MG"
static

Definition at line 50 of file aprecond_MG.h.

◆ IMPL

template<typename AFIELD , typename AFIELD2 >
const Impl APrecond_MG< AFIELD, AFIELD2 >::IMPL = AFIELD::IMPL
static

Definition at line 47 of file aprecond_MG.h.

◆ IMPL2

template<typename AFIELD , typename AFIELD2 >
const Impl APrecond_MG< AFIELD, AFIELD2 >::IMPL2 = AFIELD2::IMPL
static

Definition at line 48 of file aprecond_MG.h.

◆ m_accum_flop_coarse

template<typename AFIELD , typename AFIELD2 >
double APrecond_MG< AFIELD, AFIELD2 >::m_accum_flop_coarse
private

Definition at line 65 of file aprecond_MG.h.

◆ m_accum_flop_double

template<typename AFIELD , typename AFIELD2 >
double APrecond_MG< AFIELD, AFIELD2 >::m_accum_flop_double
private

Definition at line 69 of file aprecond_MG.h.

◆ m_accum_flop_float

template<typename AFIELD , typename AFIELD2 >
double APrecond_MG< AFIELD, AFIELD2 >::m_accum_flop_float
private

Definition at line 68 of file aprecond_MG.h.

◆ m_accum_flop_other

template<typename AFIELD , typename AFIELD2 >
double APrecond_MG< AFIELD, AFIELD2 >::m_accum_flop_other
private

Definition at line 67 of file aprecond_MG.h.

◆ m_accum_flop_prolong

template<typename AFIELD , typename AFIELD2 >
double APrecond_MG< AFIELD, AFIELD2 >::m_accum_flop_prolong
private

Definition at line 71 of file aprecond_MG.h.

◆ m_accum_flop_restrict

template<typename AFIELD , typename AFIELD2 >
double APrecond_MG< AFIELD, AFIELD2 >::m_accum_flop_restrict
private

Definition at line 70 of file aprecond_MG.h.

◆ m_accum_flop_smoother

template<typename AFIELD , typename AFIELD2 >
double APrecond_MG< AFIELD, AFIELD2 >::m_accum_flop_smoother
private

Definition at line 66 of file aprecond_MG.h.

◆ m_afoprD

template<typename AFIELD , typename AFIELD2 >
AFopr<AFIELD>* APrecond_MG< AFIELD, AFIELD2 >::m_afoprD
private

Definition at line 57 of file aprecond_MG.h.

◆ m_afoprF

template<typename AFIELD , typename AFIELD2 >
AFopr<AFIELD2>* APrecond_MG< AFIELD, AFIELD2 >::m_afoprF
private

Definition at line 58 of file aprecond_MG.h.

◆ m_coarse_ncol

template<typename AFIELD , typename AFIELD2 >
int APrecond_MG< AFIELD, AFIELD2 >::m_coarse_ncol
private

Definition at line 73 of file aprecond_MG.h.

◆ m_coarse_solver

template<typename AFIELD , typename AFIELD2 >
ASolver<AFIELD2>* APrecond_MG< AFIELD, AFIELD2 >::m_coarse_solver
private

Definition at line 53 of file aprecond_MG.h.

◆ m_coarse_v

template<typename AFIELD , typename AFIELD2 >
AFIELD2 APrecond_MG< AFIELD, AFIELD2 >::m_coarse_v
private

Definition at line 60 of file aprecond_MG.h.

◆ m_coarse_w

template<typename AFIELD , typename AFIELD2 >
AFIELD2 APrecond_MG< AFIELD, AFIELD2 >::m_coarse_w
private

Definition at line 60 of file aprecond_MG.h.

◆ m_fine_debugD

template<typename AFIELD , typename AFIELD2 >
AFIELD APrecond_MG< AFIELD, AFIELD2 >::m_fine_debugD
private

Definition at line 62 of file aprecond_MG.h.

◆ m_fine_r

template<typename AFIELD , typename AFIELD2 >
AFIELD2 APrecond_MG< AFIELD, AFIELD2 >::m_fine_r
private

Definition at line 61 of file aprecond_MG.h.

◆ m_fine_rD

template<typename AFIELD , typename AFIELD2 >
AFIELD APrecond_MG< AFIELD, AFIELD2 >::m_fine_rD
private

Definition at line 62 of file aprecond_MG.h.

◆ m_fine_tmp

template<typename AFIELD , typename AFIELD2 >
AFIELD2 APrecond_MG< AFIELD, AFIELD2 >::m_fine_tmp
private

Definition at line 61 of file aprecond_MG.h.

◆ m_fine_v

template<typename AFIELD , typename AFIELD2 >
AFIELD2 APrecond_MG< AFIELD, AFIELD2 >::m_fine_v
private

Definition at line 61 of file aprecond_MG.h.

◆ m_fine_vecD

template<typename AFIELD , typename AFIELD2 >
AFIELD APrecond_MG< AFIELD, AFIELD2 >::m_fine_vecD
private

Definition at line 62 of file aprecond_MG.h.

◆ m_fine_w

template<typename AFIELD , typename AFIELD2 >
AFIELD2 APrecond_MG< AFIELD, AFIELD2 >::m_fine_w
private

Definition at line 61 of file aprecond_MG.h.

◆ m_multigrid

template<typename AFIELD , typename AFIELD2 >
const MultiGrid_t* APrecond_MG< AFIELD, AFIELD2 >::m_multigrid
private

Definition at line 55 of file aprecond_MG.h.

◆ m_num_mult_called

template<typename AFIELD , typename AFIELD2 >
int APrecond_MG< AFIELD, AFIELD2 >::m_num_mult_called
private

number of mult call

Definition at line 86 of file aprecond_MG.h.

◆ m_num_mult_single_called

template<typename AFIELD , typename AFIELD2 >
int APrecond_MG< AFIELD, AFIELD2 >::m_num_mult_single_called
private

number of mult call

Definition at line 87 of file aprecond_MG.h.

◆ m_smoother

template<typename AFIELD , typename AFIELD2 >
ASolver<AFIELD2>* APrecond_MG< AFIELD, AFIELD2 >::m_smoother
private

Definition at line 54 of file aprecond_MG.h.

◆ m_time_coarse_solver

template<typename AFIELD , typename AFIELD2 >
double APrecond_MG< AFIELD, AFIELD2 >::m_time_coarse_solver
private

Definition at line 80 of file aprecond_MG.h.

◆ m_time_d2f

template<typename AFIELD , typename AFIELD2 >
double APrecond_MG< AFIELD, AFIELD2 >::m_time_d2f
private

Definition at line 77 of file aprecond_MG.h.

◆ m_time_double

template<typename AFIELD , typename AFIELD2 >
double APrecond_MG< AFIELD, AFIELD2 >::m_time_double
private

Definition at line 85 of file aprecond_MG.h.

◆ m_time_f2d

template<typename AFIELD , typename AFIELD2 >
double APrecond_MG< AFIELD, AFIELD2 >::m_time_f2d
private

Definition at line 76 of file aprecond_MG.h.

◆ m_time_mult_single_total

template<typename AFIELD , typename AFIELD2 >
double APrecond_MG< AFIELD, AFIELD2 >::m_time_mult_single_total
private

Definition at line 83 of file aprecond_MG.h.

◆ m_time_mult_total

template<typename AFIELD , typename AFIELD2 >
double APrecond_MG< AFIELD, AFIELD2 >::m_time_mult_total
private

Definition at line 84 of file aprecond_MG.h.

◆ m_time_prolongation

template<typename AFIELD , typename AFIELD2 >
double APrecond_MG< AFIELD, AFIELD2 >::m_time_prolongation
private

Definition at line 82 of file aprecond_MG.h.

◆ m_time_residual

template<typename AFIELD , typename AFIELD2 >
double APrecond_MG< AFIELD, AFIELD2 >::m_time_residual
private

Definition at line 78 of file aprecond_MG.h.

◆ m_time_restriction

template<typename AFIELD , typename AFIELD2 >
double APrecond_MG< AFIELD, AFIELD2 >::m_time_restriction
private

Definition at line 79 of file aprecond_MG.h.

◆ m_time_smoother

template<typename AFIELD , typename AFIELD2 >
double APrecond_MG< AFIELD, AFIELD2 >::m_time_smoother
private

Definition at line 81 of file aprecond_MG.h.


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