IPPL (Independent Parallel Particle Layer)
IPPL
Loading...
Searching...
No Matches
ippl::jacobi_preconditioner< Field, InvDiagF > Struct Template Reference

#include <Preconditioner.h>

Inheritance diagram for ippl::jacobi_preconditioner< Field, InvDiagF >:
Collaboration diagram for ippl::jacobi_preconditioner< Field, InvDiagF >:

Public Types

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

Public Member Functions

 jacobi_preconditioner (InvDiagF &&inverse_diagonal, double w=1.0)
Field operator() (Field &u) override
virtual void init_fields (Field &b)
std::string get_type ()

Static Public Attributes

static constexpr unsigned Dim = Field::dim

Protected Attributes

InvDiagF inverse_diagonal_m
double w_m
std::string type_m

Detailed Description

template<typename Field, typename InvDiagF>
struct ippl::jacobi_preconditioner< Field, InvDiagF >

Jacobi preconditioner M = w*diag{A} // w is a damping factor

Definition at line 58 of file Preconditioner.h.

Member Typedef Documentation

◆ layout_type

template<typename Field, typename InvDiagF>
using ippl::jacobi_preconditioner< Field, InvDiagF >::layout_type = typename Field::Layout_t

Definition at line 61 of file Preconditioner.h.

◆ mesh_type

template<typename Field, typename InvDiagF>
using ippl::jacobi_preconditioner< Field, InvDiagF >::mesh_type = typename Field::Mesh_t

Definition at line 60 of file Preconditioner.h.

Constructor & Destructor Documentation

◆ jacobi_preconditioner()

template<typename Field, typename InvDiagF>
ippl::jacobi_preconditioner< Field, InvDiagF >::jacobi_preconditioner ( InvDiagF && inverse_diagonal,
double w = 1.0 )
inline

Definition at line 63 of file Preconditioner.h.

References inverse_diagonal_m, ippl::preconditioner< Field >::preconditioner(), and w_m.

Here is the call graph for this function:

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 type_m.

◆ init_fields()

template<typename Field>
virtual void ippl::preconditioner< Field >::init_fields ( Field & b)
inlinevirtualinherited

◆ operator()()

template<typename Field, typename InvDiagF>
Field ippl::jacobi_preconditioner< Field, InvDiagF >::operator() ( Field & u)
inlineoverridevirtual

Reimplemented from ippl::preconditioner< Field >.

Definition at line 69 of file Preconditioner.h.

References ippl::Field< T, Dim, Mesh, Centering, ViewArgs >::get_mesh(), ippl::BareField< T, Dim, ViewArgs >::getLayout(), inverse_diagonal_m, and w_m.

Here is the call graph for this function:

Member Data Documentation

◆ Dim

template<typename Field, typename InvDiagF>
unsigned ippl::jacobi_preconditioner< Field, InvDiagF >::Dim = Field::dim
staticconstexpr

Definition at line 59 of file Preconditioner.h.

◆ inverse_diagonal_m

template<typename Field, typename InvDiagF>
InvDiagF ippl::jacobi_preconditioner< Field, InvDiagF >::inverse_diagonal_m
protected

Definition at line 80 of file Preconditioner.h.

Referenced by jacobi_preconditioner(), and operator()().

◆ type_m

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

Definition at line 50 of file Preconditioner.h.

Referenced by get_type(), preconditioner(), and preconditioner().

◆ w_m

template<typename Field, typename InvDiagF>
double ippl::jacobi_preconditioner< Field, InvDiagF >::w_m
protected

Definition at line 81 of file Preconditioner.h.

Referenced by jacobi_preconditioner(), and operator()().


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