|
IPPL (Independent Parallel Particle Layer)
IPPL
|
#include <PoissonCG.h>
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 |
| using | rhs_type |
| enum | OutputType |
| using | Trhs |
| using | grad_type |
Public Member Functions | |
| PoissonCG () | |
| PoissonCG (lhs_type &lhs, rhs_type &rhs) | |
| void | setSolver (lhs_type lhs) |
| void | solve () override |
| int | getIterationCount () |
| Tlhs | getResidue () const |
| void | updateParameter (const std::string &key, const T &value) |
| void | updateParameters (const ParameterList ¶ms) |
| void | mergeParameters (const ParameterList ¶ms) |
| void | setLhs (lhs_type &lhs) |
| virtual void | setRhs (rhs_type &rhs) |
| virtual MField_t * | getHessian () |
| 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 |
| ParameterList | params_m |
| rhs_type * | rhs_mp |
| lhs_type * | lhs_mp |
| grad_type * | grad_mp |
Private Types | |
| using | Tlhs = typename FieldLHS::value_type |
| typedef FieldLHS::Mesh_t | Mesh |
| typedef FieldLHS::Centering_t | Centering |
| typedef Mesh::matrix_type | Matrix_t |
| typedef Field< Matrix_t, Dim, Mesh, CenteringCentering > | MField_t |
Definition at line 23 of file PoissonCG.h.
| using ippl::PoissonCG< FieldLHS, FieldRHS >::Base = Poisson<FieldLHS, FieldRHS> |
Definition at line 27 of file PoissonCG.h.
|
privateinherited |
| using ippl::PoissonCG< FieldLHS, FieldRHS >::DiagRet = double |
Definition at line 35 of file PoissonCG.h.
|
inherited |
| using ippl::PoissonCG< FieldLHS, FieldRHS >::InverseDiagonalRet = double |
Definition at line 34 of file PoissonCG.h.
| using ippl::Poisson< FieldLHS, FieldRHS >::lhs_type |
| using ippl::PoissonCG< FieldLHS, FieldRHS >::LowerRet = UnaryMinus<detail::meta_lower_laplace<lhs_type>> |
Definition at line 31 of file PoissonCG.h.
|
privateinherited |
|
privateinherited |
| using ippl::PoissonCG< FieldLHS, FieldRHS >::OperatorRet = UnaryMinus<detail::meta_laplace<lhs_type>> |
Definition at line 30 of file PoissonCG.h.
| using ippl::Poisson< FieldLHS, FieldRHS >::rhs_type |
|
private |
Definition at line 24 of file PoissonCG.h.
|
inherited |
| using ippl::PoissonCG< FieldLHS, FieldRHS >::UpperAndLowerRet = UnaryMinus<detail::meta_upper_and_lower_laplace<lhs_type>> |
Definition at line 33 of file PoissonCG.h.
| using ippl::PoissonCG< FieldLHS, FieldRHS >::UpperRet = UnaryMinus<detail::meta_upper_laplace<lhs_type>> |
Definition at line 32 of file PoissonCG.h.
|
inherited |
|
inline |
Definition at line 37 of file PoissonCG.h.
|
inline |
Definition at line 44 of file PoissonCG.h.
|
inlinevirtualinherited |
|
inline |
Query how many iterations were required to obtain the solution the last time this solver was used
Definition at line 139 of file PoissonCG.h.
Referenced by ChargedParticles< PLayout, T, Dim >::runSolver(), and FieldSolver< T, Dim >::runSolver().
|
inline |
Query the residue
Definition at line 145 of file PoissonCG.h.
Referenced by ChargedParticles< PLayout, T, Dim >::runSolver(), and FieldSolver< T, Dim >::runSolver().
|
inlineinherited |
|
inlineoverrideprotectedvirtual |
Utility function for initializing a solver's default parameters (to be overridden for each base class)
Reimplemented from ippl::Poisson< FieldLHS, FieldLHS >.
Definition at line 152 of file PoissonCG.h.
Referenced by ippl::PoissonCG< Field< T, Dim >, Field_t< Dim > >::PoissonCG(), and ippl::PoissonCG< Field< T, Dim >, Field_t< Dim > >::PoissonCG().
|
inlineinherited |
|
inlineinherited |
|
inlinevirtualinherited |
|
inline |
Definition at line 51 of file PoissonCG.h.
Referenced by ippl::PoissonCG< Field< T, Dim >, Field_t< Dim > >::solve().
|
inlineoverridevirtual |
Solve the Poisson problem described by -laplace(lhs) = rhs
Implements ippl::Poisson< FieldLHS, FieldLHS >.
Definition at line 123 of file PoissonCG.h.
Referenced by ChargedParticles< PLayout, T, Dim >::runSolver(), and FieldSolver< T, Dim >::runSolver().
|
inlineinherited |
Update one of the solver's parameters
| key | The parameter key |
| value | The new value |
| IpplException | Fails if there is no existing parameter with the given key |
|
inlineinherited |
Updates all solver parameters based on values in another parameter set
| params | Parameter list with updated values |
| IpplException | Fails if the provided parameter list includes keys not already present |
|
protected |
Definition at line 150 of file PoissonCG.h.
|
staticconstexpr |
Definition at line 28 of file PoissonCG.h.
|
protectedinherited |
Definition at line 125 of file Poisson.h.
Referenced by ippl::FEMPoissonSolver< FieldLHS, FieldRHS, Order, QuadNumNodes >::solve(), and ippl::PreconditionedFEMPoissonSolver< FieldLHS, FieldRHS >::solve().
|
protectedinherited |
Definition at line 123 of file Poisson.h.
Referenced by ippl::FEMPoissonSolver< FieldLHS, FieldRHS, Order, QuadNumNodes >::getAvg(), ippl::PreconditionedFEMPoissonSolver< FieldLHS, FieldRHS >::getAvg(), ippl::FEMPoissonSolver< FieldLHS, FieldRHS, Order, QuadNumNodes >::getL2Error(), ippl::PreconditionedFEMPoissonSolver< FieldLHS, FieldRHS >::getL2Error(), ippl::FEMPoissonSolver< FieldLHS, FieldRHS, Order, QuadNumNodes >::solve(), and ippl::PreconditionedFEMPoissonSolver< FieldLHS, FieldRHS >::solve().
|
protectedinherited |
Definition at line 120 of file Poisson.h.
Referenced by ippl::FEMPoissonSolver< FieldLHS, FieldRHS, Order, QuadNumNodes >::setDefaultParameters(), ippl::PreconditionedFEMPoissonSolver< FieldLHS, FieldRHS >::setDefaultParameters(), ippl::FEMPoissonSolver< FieldLHS, FieldRHS, Order, QuadNumNodes >::solve(), and ippl::PreconditionedFEMPoissonSolver< FieldLHS, FieldRHS >::solve().
|
protectedinherited |
Definition at line 122 of file Poisson.h.
Referenced by ippl::FEMPoissonSolver< FieldLHS, FieldRHS, Order, QuadNumNodes >::solve(), and ippl::PreconditionedFEMPoissonSolver< FieldLHS, FieldRHS >::solve().