IPPL API Reference
Independent Parallel Particle Layer C++ API
Loading...
Searching...
No Matches
ippl::PoissonCG< FieldLHS, FieldRHS > Class Template Reference
+ Inheritance diagram for ippl::PoissonCG< FieldLHS, FieldRHS >:
+ Collaboration diagram for ippl::PoissonCG< FieldLHS, FieldRHS >:

Public Types

using Base = Poisson< FieldLHS, FieldRHS >
 
using OperatorRet = UnaryMinus< detail::meta_laplace< lhs_type > >
 
using LowerRet = UnaryMinus< detail::meta_lower_laplace< lhs_type > >
 
using UpperRet = UnaryMinus< detail::meta_upper_laplace< lhs_type > >
 
using UpperAndLowerRet = UnaryMinus< detail::meta_upper_and_lower_laplace< lhs_type > >
 
using InverseDiagonalRet = double
 
using DiagRet = double
 
using lhs_type = FieldLHS
 
using rhs_type = FieldRHS
 
- Public Types inherited from ippl::Poisson< FieldLHS, FieldRHS >
enum  OutputType { SOL = 0b01 , GRAD = 0b10 , SOL_AND_GRAD = 0b11 }
 
using lhs_type = FieldLHS
 
using rhs_type = FieldRHS
 
using Tlhs = typename FieldLHS::value_type
 
using Trhs = typename FieldRHS::value_type
 
using grad_type = Field< Vector< Tlhs, Dim >, Dim, Mesh, Centering >
 

Public Member Functions

 PoissonCG (lhs_type &lhs, rhs_type &rhs)
 
void setLhs (lhs_type &lhs) override
 
void setSolver (lhs_type lhs)
 
void solve () override
 
int getIterationCount ()
 
Tlhs getResidue () const
 
- Public Member Functions inherited from ippl::Poisson< FieldLHS, FieldRHS >
 Poisson ()
 
 Poisson (lhs_type &lhs, rhs_type &rhs)
 
template<typename T >
void updateParameter (const std::string &key, const T &value)
 
void updateParameters (const ParameterList &params)
 
void mergeParameters (const ParameterList &params)
 
virtual void setRhs (rhs_type &rhs)
 
virtual MField_tgetHessian ()
 
void setGradient (grad_type &grad)
 

Static Public Attributes

static constexpr unsigned Dim = FieldLHS::dim
 

Protected Member Functions

void setDefaultParameters () override
 

Protected Attributes

std::unique_ptr< CG< OperatorRet, LowerRet, UpperRet, UpperAndLowerRet, InverseDiagonalRet, DiagRet, FieldLHS, FieldRHS > > algo_m
 
- Protected Attributes inherited from ippl::Poisson< FieldLHS, FieldRHS >
ParameterList params_m
 
rhs_type * rhs_mp = nullptr
 
lhs_type * lhs_mp = nullptr
 
grad_typegrad_mp
 

Member Function Documentation

◆ getIterationCount()

template<typename FieldLHS , typename FieldRHS = FieldLHS>
int ippl::PoissonCG< FieldLHS, FieldRHS >::getIterationCount ( )
inline

Query how many iterations were required to obtain the solution the last time this solver was used

Returns
Iteration count of last solve

◆ getResidue()

template<typename FieldLHS , typename FieldRHS = FieldLHS>
Tlhs ippl::PoissonCG< FieldLHS, FieldRHS >::getResidue ( ) const
inline

Query the residue

Returns
Residue norm from last solve

◆ setDefaultParameters()

template<typename FieldLHS , typename FieldRHS = FieldLHS>
void ippl::PoissonCG< FieldLHS, FieldRHS >::setDefaultParameters ( )
inlineoverrideprotectedvirtual

Utility function for initializing a solver's default parameters (to be overridden for each base class)

Reimplemented from ippl::Poisson< FieldLHS, FieldRHS >.

◆ setLhs()

template<typename FieldLHS , typename FieldRHS = FieldLHS>
void ippl::PoissonCG< FieldLHS, FieldRHS >::setLhs ( lhs_type &  lhs)
inlineoverridevirtual

Set the problem LHS

Parameters
lhsReference to problem LHS field

Reimplemented from ippl::Poisson< FieldLHS, FieldRHS >.

◆ solve()

template<typename FieldLHS , typename FieldRHS = FieldLHS>
void ippl::PoissonCG< FieldLHS, FieldRHS >::solve ( )
inlineoverridevirtual

Solve the Poisson problem described by -laplace(lhs) = rhs

Implements ippl::Poisson< FieldLHS, FieldRHS >.


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