|
OPALX (Object Oriented Parallel Accelerator Library for Exascale) MINIorX
OPALX
|
#include <FFTTruncatedGreenPeriodicPoissonSolver.h>


Public Types | |
| using | Base = Poisson< FieldLHS, FieldRHS > |
| typedef FFT< RCTransform, FieldRHS > | FFT_t |
| typedef FieldRHS | Field_t |
| typedef Field< int, Dim, mesh_type, typename FieldLHS::Centering_t > | IField_t |
| typedef FFT_t::ComplexField | CxField_t |
| typedef Vector< Trhs, Dim > | Vector_t |
| typedef FieldLayout< Dim > | FieldLayout_t |
| using | lhs_type = FieldLHS |
| using | rhs_type = FieldRHS |
| enum | OutputType { SOL = 0b01 , GRAD = 0b10 , SOL_AND_GRAD = 0b11 } |
| using | Tlhs = typename FieldLHS::value_type |
| using | grad_type = Field< Vector< Tlhs, Dim >, Dim, Mesh, Centering > |
Public Member Functions | |
| FFTTruncatedGreenPeriodicPoissonSolver () | |
| FFTTruncatedGreenPeriodicPoissonSolver (rhs_type &rhs, ParameterList ¶ms) | |
| FFTTruncatedGreenPeriodicPoissonSolver (lhs_type &lhs, rhs_type &rhs, ParameterList ¶ms) | |
| ~FFTTruncatedGreenPeriodicPoissonSolver ()=default | |
| void | setRhs (rhs_type &rhs) override |
| void | solve () override |
| void | initializeFields () |
| void | greensFunction () |
| template<typename T > | |
| 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 MField_t * | getHessian () |
| void | setGradient (grad_type &grad) |
Protected Member Functions | |
| void | setDefaultParameters () override |
Protected Attributes | |
| ParameterList | params_m |
| rhs_type * | rhs_mp = nullptr |
| lhs_type * | lhs_mp = nullptr |
| grad_type * | grad_mp |
Private Types | |
| using | Trhs = typename FieldRHS::value_type |
| using | mesh_type = typename FieldRHS::Mesh_t |
| typedef FieldLHS::Mesh_t | Mesh |
| typedef FieldLHS::Centering_t | Centering |
| typedef Mesh::matrix_type | Matrix_t |
| typedef Field< Matrix_t, Dim, Mesh, Centering > | MField_t |
Private Attributes | |
| Field_t | grn_m |
| CxField_t | rhotr_m |
| CxField_t | grntr_m |
| CxField_t | tempFieldComplex_m |
| IField_t | grnIField_m [Dim] |
| std::unique_ptr< FFT_t > | fft_m |
| mesh_type * | mesh_mp |
| FieldLayout_t * | layout_mp |
| std::unique_ptr< mesh_type > | meshComplex_m |
| std::unique_ptr< FieldLayout_t > | layoutComplex_m |
| NDIndex< Dim > | domain_m |
| NDIndex< Dim > | domainComplex_m |
| Vector_t | hr_m |
| Vector< int, Dim > | nr_m |
Static Private Attributes | |
| static constexpr unsigned | Dim = FieldLHS::dim |
Definition at line 26 of file FFTTruncatedGreenPeriodicPoissonSolver.h.
| using ippl::FFTTruncatedGreenPeriodicPoissonSolver< FieldLHS, FieldRHS >::Base = Poisson<FieldLHS, FieldRHS> |
Definition at line 33 of file FFTTruncatedGreenPeriodicPoissonSolver.h.
|
privateinherited |
| typedef FFT_t::ComplexField ippl::FFTTruncatedGreenPeriodicPoissonSolver< FieldLHS, FieldRHS >::CxField_t |
Definition at line 46 of file FFTTruncatedGreenPeriodicPoissonSolver.h.
| typedef FFT<RCTransform, FieldRHS> ippl::FFTTruncatedGreenPeriodicPoissonSolver< FieldLHS, FieldRHS >::FFT_t |
Definition at line 39 of file FFTTruncatedGreenPeriodicPoissonSolver.h.
| typedef FieldRHS ippl::FFTTruncatedGreenPeriodicPoissonSolver< FieldLHS, FieldRHS >::Field_t |
Definition at line 44 of file FFTTruncatedGreenPeriodicPoissonSolver.h.
| typedef FieldLayout<Dim> ippl::FFTTruncatedGreenPeriodicPoissonSolver< FieldLHS, FieldRHS >::FieldLayout_t |
Definition at line 50 of file FFTTruncatedGreenPeriodicPoissonSolver.h.
| typedef Field<int, Dim, mesh_type, typename FieldLHS::Centering_t> ippl::FFTTruncatedGreenPeriodicPoissonSolver< FieldLHS, FieldRHS >::IField_t |
Definition at line 45 of file FFTTruncatedGreenPeriodicPoissonSolver.h.
| using ippl::Poisson< FieldLHS, FieldRHS >::lhs_type = FieldLHS |
|
privateinherited |
|
privateinherited |
|
private |
Definition at line 29 of file FFTTruncatedGreenPeriodicPoissonSolver.h.
| using ippl::Poisson< FieldLHS, FieldRHS >::rhs_type = FieldRHS |
|
inherited |
|
private |
Definition at line 28 of file FFTTruncatedGreenPeriodicPoissonSolver.h.
| typedef Vector<Trhs, Dim> ippl::FFTTruncatedGreenPeriodicPoissonSolver< FieldLHS, FieldRHS >::Vector_t |
Definition at line 47 of file FFTTruncatedGreenPeriodicPoissonSolver.h.
|
inherited |
| ippl::FFTTruncatedGreenPeriodicPoissonSolver< FieldLHS, FieldRHS >::FFTTruncatedGreenPeriodicPoissonSolver |
Definition at line 18 of file FFTTruncatedGreenPeriodicPoissonSolver.hpp.
References ippl::FFTTruncatedGreenPeriodicPoissonSolver< FieldLHS, FieldRHS >::setDefaultParameters().

| ippl::FFTTruncatedGreenPeriodicPoissonSolver< FieldLHS, FieldRHS >::FFTTruncatedGreenPeriodicPoissonSolver | ( | rhs_type & | rhs, |
| ParameterList & | params | ||
| ) |
Definition at line 28 of file FFTTruncatedGreenPeriodicPoissonSolver.hpp.
References ippl::ParameterList::merge(), ippl::Poisson< FieldLHS, FieldRHS >::params_m, ippl::FFTTruncatedGreenPeriodicPoissonSolver< FieldLHS, FieldRHS >::setDefaultParameters(), ippl::FFTTruncatedGreenPeriodicPoissonSolver< FieldLHS, FieldRHS >::setRhs(), ippl::Poisson< FieldLHS, FieldRHS >::SOL, and ippl::ParameterList::update().

| ippl::FFTTruncatedGreenPeriodicPoissonSolver< FieldLHS, FieldRHS >::FFTTruncatedGreenPeriodicPoissonSolver | ( | lhs_type & | lhs, |
| rhs_type & | rhs, | ||
| ParameterList & | params | ||
| ) |
Definition at line 42 of file FFTTruncatedGreenPeriodicPoissonSolver.hpp.
References ippl::ParameterList::merge(), ippl::Poisson< FieldLHS, FieldRHS >::params_m, ippl::FFTTruncatedGreenPeriodicPoissonSolver< FieldLHS, FieldRHS >::setDefaultParameters(), ippl::Poisson< FieldLHS, FieldRHS >::setLhs(), and ippl::FFTTruncatedGreenPeriodicPoissonSolver< FieldLHS, FieldRHS >::setRhs().

|
default |
|
inlinevirtualinherited |
Get the Hessian matrix of the solution
Reimplemented in ippl::FFTOpenPoissonSolver< FieldLHS, FieldRHS >.
| void ippl::FFTTruncatedGreenPeriodicPoissonSolver< FieldLHS, FieldRHS >::greensFunction |
Definition at line 307 of file FFTTruncatedGreenPeriodicPoissonSolver.hpp.
References Physics::alpha, Dim, ippl::FORWARD, ippl::getRangePolicy(), and ippl::parallel_for().

| void ippl::FFTTruncatedGreenPeriodicPoissonSolver< FieldLHS, FieldRHS >::initializeFields |
Definition at line 65 of file FFTTruncatedGreenPeriodicPoissonSolver.hpp.
References Dim, ippl::getRangePolicy(), and ippl::parallel_for().

|
inlineinherited |
Merges another parameter set into the solver's parameters, overwriting existing parameters in case of conflict
| params | Parameter list with desired values |
Definition at line 84 of file Poisson.h.
References ippl::ParameterList::merge(), and ippl::Poisson< FieldLHS, FieldRHS >::params_m.

|
inlineoverrideprotectedvirtual |
Utility function for initializing a solver's default parameters (to be overridden for each base class)
Reimplemented from ippl::Poisson< FieldLHS, FieldRHS >.
Definition at line 103 of file FFTTruncatedGreenPeriodicPoissonSolver.h.
References ippl::a2a, ippl::a2av, ippl::ParameterList::add(), ippl::p2p, ippl::p2p_pl, and ippl::Poisson< FieldLHS, FieldRHS >::params_m.
Referenced by ippl::FFTTruncatedGreenPeriodicPoissonSolver< FieldLHS, FieldRHS >::FFTTruncatedGreenPeriodicPoissonSolver().

|
inlineinherited |
Set the field in which the gradient of the computed potential should be stored
| grad | Reference to field in which to store the gradient |
Definition at line 109 of file Poisson.h.
References ippl::grad(), and ippl::Poisson< FieldLHS, FieldRHS >::grad_mp.

|
inlineinherited |
Set the problem LHS
| lhs | Reference to problem LHS field |
Definition at line 90 of file Poisson.h.
References ippl::Poisson< FieldLHS, FieldRHS >::lhs_mp.
Referenced by ippl::FFTOpenPoissonSolver< FieldLHS, FieldRHS >::FFTOpenPoissonSolver(), ippl::FFTTruncatedGreenPeriodicPoissonSolver< FieldLHS, FieldRHS >::FFTTruncatedGreenPeriodicPoissonSolver(), and ippl::Poisson< FieldLHS, FieldRHS >::Poisson().
|
overridevirtual |
Set the problem RHS
| rhs | Reference to problem RHS field |
Reimplemented from ippl::Poisson< FieldLHS, FieldRHS >.
Definition at line 56 of file FFTTruncatedGreenPeriodicPoissonSolver.hpp.
Referenced by ippl::FFTTruncatedGreenPeriodicPoissonSolver< FieldLHS, FieldRHS >::FFTTruncatedGreenPeriodicPoissonSolver().
|
overridevirtual |
Solve the Poisson problem described by -laplace(lhs) = rhs
Implements ippl::Poisson< FieldLHS, FieldRHS >.
Definition at line 190 of file FFTTruncatedGreenPeriodicPoissonSolver.hpp.
References ippl::apply(), ippl::BACKWARD, Dim, ippl::FORWARD, ippl::getRangePolicy(), ippl::parallel_for(), and pi.

|
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 |
Definition at line 67 of file Poisson.h.
References ippl::Poisson< FieldLHS, FieldRHS >::params_m, and ippl::ParameterList::update().

|
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 |
Definition at line 77 of file Poisson.h.
References ippl::Poisson< FieldLHS, FieldRHS >::params_m, and ippl::ParameterList::update().

|
staticconstexprprivate |
Definition at line 27 of file FFTTruncatedGreenPeriodicPoissonSolver.h.
|
private |
Definition at line 95 of file FFTTruncatedGreenPeriodicPoissonSolver.h.
|
private |
Definition at line 96 of file FFTTruncatedGreenPeriodicPoissonSolver.h.
|
private |
Definition at line 84 of file FFTTruncatedGreenPeriodicPoissonSolver.h.
|
protectedinherited |
Definition at line 125 of file Poisson.h.
Referenced by ippl::Poisson< FieldLHS, FieldRHS >::setGradient().
|
private |
Definition at line 74 of file FFTTruncatedGreenPeriodicPoissonSolver.h.
|
private |
Definition at line 81 of file FFTTruncatedGreenPeriodicPoissonSolver.h.
|
private |
Definition at line 77 of file FFTTruncatedGreenPeriodicPoissonSolver.h.
|
private |
Definition at line 99 of file FFTTruncatedGreenPeriodicPoissonSolver.h.
|
private |
Definition at line 88 of file FFTTruncatedGreenPeriodicPoissonSolver.h.
|
private |
Definition at line 92 of file FFTTruncatedGreenPeriodicPoissonSolver.h.
|
protectedinherited |
Definition at line 123 of file Poisson.h.
Referenced by ippl::Poisson< FieldLHS, FieldRHS >::setLhs(), and ippl::NullSolver< FieldLHS, FieldRHS >::solve().
|
private |
Definition at line 87 of file FFTTruncatedGreenPeriodicPoissonSolver.h.
|
private |
Definition at line 91 of file FFTTruncatedGreenPeriodicPoissonSolver.h.
|
private |
Definition at line 100 of file FFTTruncatedGreenPeriodicPoissonSolver.h.
|
protectedinherited |
Definition at line 120 of file Poisson.h.
Referenced by ippl::FFTOpenPoissonSolver< FieldLHS, FieldRHS >::FFTOpenPoissonSolver(), ippl::FFTTruncatedGreenPeriodicPoissonSolver< FieldLHS, FieldRHS >::FFTTruncatedGreenPeriodicPoissonSolver(), ippl::FFTOpenPoissonSolver< FieldLHS, FieldRHS >::getHessian(), ippl::Poisson< FieldLHS, FieldRHS >::mergeParameters(), ippl::FFTOpenPoissonSolver< FieldLHS, FieldRHS >::setDefaultParameters(), ippl::FFTPeriodicPoissonSolver< FieldLHS, FieldRHS >::setDefaultParameters(), ippl::FFTTruncatedGreenPeriodicPoissonSolver< FieldLHS, FieldRHS >::setDefaultParameters(), ippl::Poisson< FieldLHS, FieldRHS >::updateParameter(), and ippl::Poisson< FieldLHS, FieldRHS >::updateParameters().
|
private |
Definition at line 76 of file FFTTruncatedGreenPeriodicPoissonSolver.h.
|
protectedinherited |
Definition at line 122 of file Poisson.h.
Referenced by ippl::Poisson< FieldLHS, FieldRHS >::setRhs(), and ippl::NullSolver< FieldLHS, FieldRHS >::solve().
|
private |
Definition at line 78 of file FFTTruncatedGreenPeriodicPoissonSolver.h.