IPPL API Reference
Independent Parallel Particle Layer C++ API
Loading...
Searching...
No Matches
ippl::polynomial_chebyshev_preconditioner< Field, OperatorF > Struct Template Reference

#include <Preconditioner.h>

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

Public Types

using mesh_type = typename Field::Mesh_t
 
using layout_type = typename Field::Layout_t
 
- Public Types inherited from ippl::preconditioner< Field >
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 (const polynomial_chebyshev_preconditioner &other)
 
polynomial_chebyshev_preconditioneroperator= (const polynomial_chebyshev_preconditioner &other)
 
void operator() (Field &r, Field &result) override
 
void init_fields (Field &b) override
 
- Public Member Functions inherited from ippl::preconditioner< Field >
 preconditioner (std::string name)
 
std::string get_type ()
 

Static Public Attributes

static constexpr unsigned Dim = Field::dim
 
- Static Public Attributes inherited from ippl::preconditioner< Field >
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
 
Field x_m
 
Field x_old_m
 
Field A_m
 
Field z_m
 
bool fields_initialized_m = false
 
- Protected Attributes inherited from ippl::preconditioner< Field >
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

Member Function Documentation

◆ init_fields()

template<typename Field , typename OperatorF >
void ippl::polynomial_chebyshev_preconditioner< Field, OperatorF >::init_fields ( Field b)
inlineoverridevirtual

Reimplemented from ippl::preconditioner< Field >.

◆ operator()()

template<typename Field , typename OperatorF >
void ippl::polynomial_chebyshev_preconditioner< Field, OperatorF >::operator() ( Field r,
Field result 
)
inlineoverridevirtual

Reimplemented from ippl::preconditioner< Field >.


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