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

#include <Preconditioner.h>

Inheritance diagram for ippl::ssor_preconditioner< Field, LowerF, UpperF, InvDiagF, DiagF >:
Collaboration diagram for ippl::ssor_preconditioner< Field, LowerF, UpperF, InvDiagF, DiagF >:

Public Types

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

Public Member Functions

 ssor_preconditioner (LowerF &&lower, UpperF &&upper, InvDiagF &&inverse_diagonal, DiagF &&diagonal, unsigned innerloops, unsigned outerloops, double omega)
Field operator() (Field &b) override
void init_fields (Field &b) override
std::string get_type ()

Static Public Attributes

static constexpr unsigned Dim = Field::dim

Protected Attributes

LowerF lower_m
UpperF upper_m
InvDiagF inverse_diagonal_m
DiagF diagonal_m
unsigned innerloops_m
unsigned outerloops_m
double omega_m
Field UL_m
Field r_m
std::string type_m

Detailed Description

template<typename Field, typename LowerF, typename UpperF, typename InvDiagF, typename DiagF>
struct ippl::ssor_preconditioner< Field, LowerF, UpperF, InvDiagF, DiagF >

Symmetric successive over-relaxation

Definition at line 492 of file Preconditioner.h.

Member Typedef Documentation

◆ layout_type

template<typename Field, typename LowerF, typename UpperF, typename InvDiagF, typename DiagF>
using ippl::ssor_preconditioner< Field, LowerF, UpperF, InvDiagF, DiagF >::layout_type = typename Field::Layout_t

Definition at line 495 of file Preconditioner.h.

◆ mesh_type

template<typename Field, typename LowerF, typename UpperF, typename InvDiagF, typename DiagF>
using ippl::ssor_preconditioner< Field, LowerF, UpperF, InvDiagF, DiagF >::mesh_type = typename Field::Mesh_t

Definition at line 494 of file Preconditioner.h.

Constructor & Destructor Documentation

◆ ssor_preconditioner()

template<typename Field, typename LowerF, typename UpperF, typename InvDiagF, typename DiagF>
ippl::ssor_preconditioner< Field, LowerF, UpperF, InvDiagF, DiagF >::ssor_preconditioner ( LowerF && lower,
UpperF && upper,
InvDiagF && inverse_diagonal,
DiagF && diagonal,
unsigned innerloops,
unsigned outerloops,
double omega )
inline

Definition at line 497 of file Preconditioner.h.

References diagonal_m, innerloops_m, inverse_diagonal_m, lower_m, omega_m, outerloops_m, ippl::preconditioner< Field >::preconditioner(), and upper_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, typename LowerF, typename UpperF, typename InvDiagF, typename DiagF>
void ippl::ssor_preconditioner< Field, LowerF, UpperF, InvDiagF, DiagF >::init_fields ( Field & b)
inlineoverridevirtual

Reimplemented from ippl::preconditioner< Field >.

Definition at line 576 of file Preconditioner.h.

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

Here is the call graph for this function:

◆ operator()()

template<typename Field, typename LowerF, typename UpperF, typename InvDiagF, typename DiagF>
Field ippl::ssor_preconditioner< Field, LowerF, UpperF, InvDiagF, DiagF >::operator() ( Field & b)
inlineoverridevirtual

Reimplemented from ippl::preconditioner< Field >.

Definition at line 510 of file Preconditioner.h.

References diagonal_m, ippl::Field< T, Dim, Mesh, Centering, ViewArgs >::get_mesh(), ippl::BareField< T, Dim, ViewArgs >::getLayout(), IpplTimings::getTimer(), innerloops_m, inverse_diagonal_m, lower_m, omega_m, outerloops_m, r_m, IpplTimings::startTimer(), IpplTimings::stopTimer(), UL_m, and upper_m.

Here is the call graph for this function:

Member Data Documentation

◆ diagonal_m

template<typename Field, typename LowerF, typename UpperF, typename InvDiagF, typename DiagF>
DiagF ippl::ssor_preconditioner< Field, LowerF, UpperF, InvDiagF, DiagF >::diagonal_m
protected

Definition at line 588 of file Preconditioner.h.

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

◆ Dim

template<typename Field, typename LowerF, typename UpperF, typename InvDiagF, typename DiagF>
unsigned ippl::ssor_preconditioner< Field, LowerF, UpperF, InvDiagF, DiagF >::Dim = Field::dim
staticconstexpr

Definition at line 493 of file Preconditioner.h.

◆ innerloops_m

template<typename Field, typename LowerF, typename UpperF, typename InvDiagF, typename DiagF>
unsigned ippl::ssor_preconditioner< Field, LowerF, UpperF, InvDiagF, DiagF >::innerloops_m
protected

Definition at line 589 of file Preconditioner.h.

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

◆ inverse_diagonal_m

template<typename Field, typename LowerF, typename UpperF, typename InvDiagF, typename DiagF>
InvDiagF ippl::ssor_preconditioner< Field, LowerF, UpperF, InvDiagF, DiagF >::inverse_diagonal_m
protected

Definition at line 587 of file Preconditioner.h.

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

◆ lower_m

template<typename Field, typename LowerF, typename UpperF, typename InvDiagF, typename DiagF>
LowerF ippl::ssor_preconditioner< Field, LowerF, UpperF, InvDiagF, DiagF >::lower_m
protected

Definition at line 585 of file Preconditioner.h.

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

◆ omega_m

template<typename Field, typename LowerF, typename UpperF, typename InvDiagF, typename DiagF>
double ippl::ssor_preconditioner< Field, LowerF, UpperF, InvDiagF, DiagF >::omega_m
protected

Definition at line 591 of file Preconditioner.h.

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

◆ outerloops_m

template<typename Field, typename LowerF, typename UpperF, typename InvDiagF, typename DiagF>
unsigned ippl::ssor_preconditioner< Field, LowerF, UpperF, InvDiagF, DiagF >::outerloops_m
protected

Definition at line 590 of file Preconditioner.h.

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

◆ r_m

template<typename Field, typename LowerF, typename UpperF, typename InvDiagF, typename DiagF>
Field ippl::ssor_preconditioner< Field, LowerF, UpperF, InvDiagF, DiagF >::r_m
protected

Definition at line 593 of file Preconditioner.h.

Referenced by init_fields(), 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().

◆ UL_m

template<typename Field, typename LowerF, typename UpperF, typename InvDiagF, typename DiagF>
Field ippl::ssor_preconditioner< Field, LowerF, UpperF, InvDiagF, DiagF >::UL_m
protected

Definition at line 592 of file Preconditioner.h.

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

◆ upper_m

template<typename Field, typename LowerF, typename UpperF, typename InvDiagF, typename DiagF>
UpperF ippl::ssor_preconditioner< Field, LowerF, UpperF, InvDiagF, DiagF >::upper_m
protected

Definition at line 586 of file Preconditioner.h.

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


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