|
IPPL (Independent Parallel Particle Layer)
IPPL
|
#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 |
| using | rhs_type |
| 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, CenteringCentering> |
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, CenteringCentering > | 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 |
|
privateinherited |
|
privateinherited |
|
private |
Definition at line 29 of file FFTTruncatedGreenPeriodicPoissonSolver.h.
| using ippl::Poisson< FieldLHS, FieldRHS >::rhs_type |
|
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 layout_mp, layoutComplex_m, mesh_mp, meshComplex_m, and setDefaultParameters().
| ippl::FFTTruncatedGreenPeriodicPoissonSolver< FieldLHS, FieldRHS >::FFTTruncatedGreenPeriodicPoissonSolver | ( | rhs_type & | rhs, |
| ParameterList & | params ) |
Definition at line 28 of file FFTTruncatedGreenPeriodicPoissonSolver.hpp.
References layout_mp, layoutComplex_m, mesh_mp, meshComplex_m, ippl::Poisson< FieldLHS, FieldRHS >::params_m, setDefaultParameters(), setRhs(), and ippl::Poisson< FieldLHS, FieldRHS >::SOL.
| ippl::FFTTruncatedGreenPeriodicPoissonSolver< FieldLHS, FieldRHS >::FFTTruncatedGreenPeriodicPoissonSolver | ( | lhs_type & | lhs, |
| rhs_type & | rhs, | ||
| ParameterList & | params ) |
Definition at line 42 of file FFTTruncatedGreenPeriodicPoissonSolver.hpp.
References layout_mp, layoutComplex_m, mesh_mp, meshComplex_m, ippl::Poisson< FieldLHS, FieldRHS >::params_m, setDefaultParameters(), ippl::Poisson< FieldLHS, FieldRHS >::setLhs(), and 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 Dim, fft_m, ippl::FORWARD, ippl::get(), ippl::getRangePolicy(), grn_m, grnIField_m, grntr_m, hr_m, layout_mp, and ippl::Poisson< FieldLHS, FieldRHS >::params_m.
Referenced by initializeFields(), and solve().
| void ippl::FFTTruncatedGreenPeriodicPoissonSolver< FieldLHS, FieldRHS >::initializeFields | ( | ) |
Definition at line 65 of file FFTTruncatedGreenPeriodicPoissonSolver.hpp.
References Dim, domain_m, domainComplex_m, fft_m, ippl::get(), ippl::getRangePolicy(), greensFunction(), grn_m, grnIField_m, grntr_m, hr_m, layout_mp, layoutComplex_m, mesh_mp, meshComplex_m, nr_m, ippl::Poisson< FieldLHS, FieldRHS >::params_m, rhotr_m, ippl::Poisson< FieldLHS, FieldRHS >::rhs_mp, and tempFieldComplex_m.
Referenced by setRhs().
|
inlineinherited |
|
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::p2p, ippl::p2p_pl, and ippl::Poisson< FieldLHS, FieldRHS >::params_m.
Referenced by FFTTruncatedGreenPeriodicPoissonSolver(), FFTTruncatedGreenPeriodicPoissonSolver(), and 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 grad_mp.
|
inlineinherited |
Set the problem LHS
| lhs | Reference to problem LHS field |
Definition at line 90 of file Poisson.h.
References lhs_mp.
Referenced by ippl::FFTOpenPoissonSolver< FieldLHS, FieldRHS >::FFTOpenPoissonSolver(), ippl::FFTTruncatedGreenPeriodicPoissonSolver< FieldLHS, FieldRHS >::FFTTruncatedGreenPeriodicPoissonSolver(), and 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.
References initializeFields(), and ippl::Poisson< FieldLHS, FieldRHS >::setRhs().
Referenced by FFTTruncatedGreenPeriodicPoissonSolver(), and 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, fft_m, ippl::FORWARD, ippl::get(), ippl::getRangePolicy(), ippl::Poisson< FieldLHS, FieldRHS >::GRAD, greensFunction(), grntr_m, hr_m, layoutComplex_m, ippl::Poisson< FieldLHS, FieldRHS >::lhs_mp, mesh_mp, meshComplex_m, nr_m, ippl::parallel_for(), ippl::Poisson< FieldLHS, FieldRHS >::params_m, pi, rhotr_m, ippl::Poisson< FieldLHS, FieldRHS >::rhs_mp, ippl::Poisson< FieldLHS, FieldRHS >::SOL, ippl::Poisson< FieldLHS, FieldRHS >::SOL_AND_GRAD, and tempFieldComplex_m.
|
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 params_m.
|
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 params_m.
|
staticconstexprprivate |
Definition at line 27 of file FFTTruncatedGreenPeriodicPoissonSolver.h.
Referenced by greensFunction(), initializeFields(), and solve().
|
private |
Definition at line 95 of file FFTTruncatedGreenPeriodicPoissonSolver.h.
Referenced by initializeFields().
|
private |
Definition at line 96 of file FFTTruncatedGreenPeriodicPoissonSolver.h.
Referenced by initializeFields().
|
private |
Definition at line 84 of file FFTTruncatedGreenPeriodicPoissonSolver.h.
Referenced by greensFunction(), initializeFields(), and solve().
|
protectedinherited |
Definition at line 125 of file Poisson.h.
Referenced by Poisson(), Poisson(), and setGradient().
|
private |
Definition at line 74 of file FFTTruncatedGreenPeriodicPoissonSolver.h.
Referenced by greensFunction(), and initializeFields().
|
private |
Definition at line 81 of file FFTTruncatedGreenPeriodicPoissonSolver.h.
Referenced by greensFunction(), and initializeFields().
|
private |
Definition at line 77 of file FFTTruncatedGreenPeriodicPoissonSolver.h.
Referenced by greensFunction(), initializeFields(), and solve().
|
private |
Definition at line 99 of file FFTTruncatedGreenPeriodicPoissonSolver.h.
Referenced by greensFunction(), initializeFields(), and solve().
|
private |
Definition at line 88 of file FFTTruncatedGreenPeriodicPoissonSolver.h.
Referenced by FFTTruncatedGreenPeriodicPoissonSolver(), FFTTruncatedGreenPeriodicPoissonSolver(), FFTTruncatedGreenPeriodicPoissonSolver(), greensFunction(), and initializeFields().
|
private |
Definition at line 92 of file FFTTruncatedGreenPeriodicPoissonSolver.h.
Referenced by FFTTruncatedGreenPeriodicPoissonSolver(), FFTTruncatedGreenPeriodicPoissonSolver(), FFTTruncatedGreenPeriodicPoissonSolver(), initializeFields(), and solve().
|
protectedinherited |
Definition at line 123 of file Poisson.h.
Referenced by setLhs(), ippl::FFTOpenPoissonSolver< FieldLHS, FieldRHS >::solve(), ippl::FFTPeriodicPoissonSolver< FieldLHS, FieldRHS >::solve(), and ippl::FFTTruncatedGreenPeriodicPoissonSolver< FieldLHS, FieldRHS >::solve().
|
private |
Definition at line 87 of file FFTTruncatedGreenPeriodicPoissonSolver.h.
Referenced by FFTTruncatedGreenPeriodicPoissonSolver(), FFTTruncatedGreenPeriodicPoissonSolver(), FFTTruncatedGreenPeriodicPoissonSolver(), initializeFields(), and solve().
|
private |
Definition at line 91 of file FFTTruncatedGreenPeriodicPoissonSolver.h.
Referenced by FFTTruncatedGreenPeriodicPoissonSolver(), FFTTruncatedGreenPeriodicPoissonSolver(), FFTTruncatedGreenPeriodicPoissonSolver(), initializeFields(), and solve().
|
private |
Definition at line 100 of file FFTTruncatedGreenPeriodicPoissonSolver.h.
Referenced by initializeFields(), and solve().
|
protectedinherited |
Definition at line 120 of file Poisson.h.
Referenced by ippl::FFTOpenPoissonSolver< FieldLHS, FieldRHS >::FFTOpenPoissonSolver(), ippl::FFTOpenPoissonSolver< FieldLHS, FieldRHS >::FFTOpenPoissonSolver(), ippl::FFTTruncatedGreenPeriodicPoissonSolver< FieldLHS, FieldRHS >::FFTTruncatedGreenPeriodicPoissonSolver(), ippl::FFTTruncatedGreenPeriodicPoissonSolver< FieldLHS, FieldRHS >::FFTTruncatedGreenPeriodicPoissonSolver(), ippl::FFTOpenPoissonSolver< FieldLHS, FieldRHS >::getHessian(), ippl::FFTOpenPoissonSolver< FieldLHS, FieldRHS >::greensFunction(), ippl::FFTTruncatedGreenPeriodicPoissonSolver< FieldLHS, FieldRHS >::greensFunction(), ippl::FFTPeriodicPoissonSolver< FieldLHS, FieldRHS >::initialize(), ippl::FFTOpenPoissonSolver< FieldLHS, FieldRHS >::initializeFields(), ippl::FFTTruncatedGreenPeriodicPoissonSolver< FieldLHS, FieldRHS >::initializeFields(), mergeParameters(), ippl::FFTOpenPoissonSolver< FieldLHS, FieldRHS >::setDefaultParameters(), ippl::FFTPeriodicPoissonSolver< FieldLHS, FieldRHS >::setDefaultParameters(), ippl::FFTTruncatedGreenPeriodicPoissonSolver< FieldLHS, FieldRHS >::setDefaultParameters(), ippl::FFTOpenPoissonSolver< FieldLHS, FieldRHS >::setGradFD(), ippl::FFTOpenPoissonSolver< FieldLHS, FieldRHS >::solve(), ippl::FFTPeriodicPoissonSolver< FieldLHS, FieldRHS >::solve(), ippl::FFTTruncatedGreenPeriodicPoissonSolver< FieldLHS, FieldRHS >::solve(), updateParameter(), and updateParameters().
|
private |
Definition at line 76 of file FFTTruncatedGreenPeriodicPoissonSolver.h.
Referenced by initializeFields(), and solve().
|
protectedinherited |
Definition at line 122 of file Poisson.h.
Referenced by ippl::FFTPeriodicPoissonSolver< FieldLHS, FieldRHS >::initialize(), ippl::FFTOpenPoissonSolver< FieldLHS, FieldRHS >::initializeFields(), ippl::FFTTruncatedGreenPeriodicPoissonSolver< FieldLHS, FieldRHS >::initializeFields(), setRhs(), ippl::FFTOpenPoissonSolver< FieldLHS, FieldRHS >::solve(), ippl::FFTPeriodicPoissonSolver< FieldLHS, FieldRHS >::solve(), and ippl::FFTTruncatedGreenPeriodicPoissonSolver< FieldLHS, FieldRHS >::solve().
|
private |
Definition at line 78 of file FFTTruncatedGreenPeriodicPoissonSolver.h.
Referenced by initializeFields(), and solve().