OPALX (Object Oriented Parallel Accelerator Library for Exascale) MINIorX
OPALX
ippl::polynomial_chebyshev_preconditioner< Field, OperatorF > Struct Template Reference

#include <Preconditioner.h>

Inheritance diagram for ippl::polynomial_chebyshev_preconditioner< Field, OperatorF >:
Inheritance graph
Collaboration diagram for ippl::polynomial_chebyshev_preconditioner< Field, OperatorF >:
Collaboration graph

Public Types

using mesh_type = typename Field::Mesh_t
 
using layout_type = typename Field::Layout_t
 

Public Member Functions

 polynomial_chebyshev_preconditioner (OperatorF &&op, double alpha, double beta, unsigned int degree=63, double zeta=1e-3)
 
 ~polynomial_chebyshev_preconditioner ()
 
 polynomial_chebyshev_preconditioner (const polynomial_chebyshev_preconditioner &other)
 
polynomial_chebyshev_preconditioneroperator= (const polynomial_chebyshev_preconditioner &other)
 
Field operator() (Field &r) override
 
virtual void init_fields (Field &b)
 
std::string get_type ()
 

Static Public Attributes

static constexpr unsigned Dim = Field::dim
 

Protected Attributes

OperatorF op_m
 
double alpha_m
 
double beta_m
 
double delta_m
 
double theta_m
 
double sigma_m
 
unsigned degree_m
 
double zeta_m
 
double * rho_m = nullptr
 
std::string type_m
 

Detailed Description

template<typename Field, typename OperatorF>
struct ippl::polynomial_chebyshev_preconditioner< Field, OperatorF >

Polynomial Chebyshev Preconditioner Computes iteratively approximations for A^-1

Definition at line 180 of file Preconditioner.h.

Member Typedef Documentation

◆ layout_type

template<typename Field , typename OperatorF >
using ippl::polynomial_chebyshev_preconditioner< Field, OperatorF >::layout_type = typename Field::Layout_t

Definition at line 183 of file Preconditioner.h.

◆ mesh_type

template<typename Field , typename OperatorF >
using ippl::polynomial_chebyshev_preconditioner< Field, OperatorF >::mesh_type = typename Field::Mesh_t

Definition at line 182 of file Preconditioner.h.

Constructor & Destructor Documentation

◆ polynomial_chebyshev_preconditioner() [1/2]

template<typename Field , typename OperatorF >
ippl::polynomial_chebyshev_preconditioner< Field, OperatorF >::polynomial_chebyshev_preconditioner ( OperatorF &&  op,
double  alpha,
double  beta,
unsigned int  degree = 63,
double  zeta = 1e-3 
)
inline

◆ ~polynomial_chebyshev_preconditioner()

template<typename Field , typename OperatorF >
ippl::polynomial_chebyshev_preconditioner< Field, OperatorF >::~polynomial_chebyshev_preconditioner ( )
inline

◆ polynomial_chebyshev_preconditioner() [2/2]

template<typename Field , typename OperatorF >
ippl::polynomial_chebyshev_preconditioner< Field, OperatorF >::polynomial_chebyshev_preconditioner ( const polynomial_chebyshev_preconditioner< Field, OperatorF > &  other)
inline

Member Function Documentation

◆ get_type()

template<typename Field >
std::string ippl::preconditioner< Field >::get_type ( )
inlineinherited

Definition at line 47 of file Preconditioner.h.

References ippl::preconditioner< Field >::type_m.

◆ init_fields()

◆ operator()()

◆ operator=()

template<typename Field , typename OperatorF >
polynomial_chebyshev_preconditioner & ippl::polynomial_chebyshev_preconditioner< Field, OperatorF >::operator= ( const polynomial_chebyshev_preconditioner< Field, OperatorF > &  other)
inline

Definition at line 217 of file Preconditioner.h.

References ippl::polynomial_chebyshev_preconditioner< Field, OperatorF >::polynomial_chebyshev_preconditioner().

Here is the call graph for this function:

Member Data Documentation

◆ alpha_m

template<typename Field , typename OperatorF >
double ippl::polynomial_chebyshev_preconditioner< Field, OperatorF >::alpha_m
protected

◆ beta_m

template<typename Field , typename OperatorF >
double ippl::polynomial_chebyshev_preconditioner< Field, OperatorF >::beta_m
protected

◆ degree_m

template<typename Field , typename OperatorF >
unsigned ippl::polynomial_chebyshev_preconditioner< Field, OperatorF >::degree_m
protected

◆ delta_m

template<typename Field , typename OperatorF >
double ippl::polynomial_chebyshev_preconditioner< Field, OperatorF >::delta_m
protected

◆ Dim

template<typename Field , typename OperatorF >
constexpr unsigned ippl::polynomial_chebyshev_preconditioner< Field, OperatorF >::Dim = Field::dim
staticconstexpr

Definition at line 181 of file Preconditioner.h.

◆ op_m

◆ rho_m

◆ sigma_m

template<typename Field , typename OperatorF >
double ippl::polynomial_chebyshev_preconditioner< Field, OperatorF >::sigma_m
protected

◆ theta_m

template<typename Field , typename OperatorF >
double ippl::polynomial_chebyshev_preconditioner< Field, OperatorF >::theta_m
protected

◆ type_m

template<typename Field >
std::string ippl::preconditioner< Field >::type_m
protectedinherited

Definition at line 50 of file Preconditioner.h.

Referenced by ippl::preconditioner< Field >::get_type().

◆ zeta_m

template<typename Field , typename OperatorF >
double ippl::polynomial_chebyshev_preconditioner< Field, OperatorF >::zeta_m
protected

The documentation for this struct was generated from the following file: