IPPL (Independent Parallel Particle Layer)
IPPL
Loading...
Searching...
No Matches
ippl::FFTOpenPoissonSolver< FieldLHS, FieldRHS > Class Template Reference

#include <FFTOpenPoissonSolver.h>

Inheritance diagram for ippl::FFTOpenPoissonSolver< FieldLHS, FieldRHS >:
Collaboration diagram for ippl::FFTOpenPoissonSolver< FieldLHS, FieldRHS >:

Public Types

enum  Algorithm { HOCKNEY = 0b01 , VICO = 0b10 , BIHARMONIC = 0b11 , DCT_VICO = 0b100 }
using Base = Poisson<FieldLHS, FieldRHS>
typedef FFT< RCTransform, FieldRHS > FFT_t
typedef FieldRHS Field_t
typedef FieldLHS::Centering_t Centering
typedef Field< int, Dim, mesh_type, CenteringCenteringIField_t
typedef Field< Tg, Dim, mesh_type, CenteringCenteringField_gt
typedef Field< Kokkos::complex< Tg >, Dim, mesh_type, CenteringCenteringCxField_gt
typedef FFT_t::ComplexField CxField_t
typedef Vector< Trhs, DimVector_t
typedef mesh_type::matrix_type Matrix_t
typedef Field< Matrix_t, Dim, mesh_type, CenteringCenteringMField_t
typedef FieldLayout< DimFieldLayout_t
using memory_space = typename FieldLHS::memory_space
using buffer_type = mpi::Communicator::buffer_type<memory_space>
using vector_type = typename mesh_type::vector_type
using scalar_type = typename mesh_type::value_type
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

 FFTOpenPoissonSolver ()
 FFTOpenPoissonSolver (rhs_type &rhs, ParameterList &params)
 FFTOpenPoissonSolver (lhs_type &lhs, rhs_type &rhs, ParameterList &params)
 ~FFTOpenPoissonSolver ()=default
void setRhs (rhs_type &rhs) override
void setGradFD ()
void solve () override
MField_tgetHessian () override
void greensFunction ()
void initializeFields ()
void communicateVico (Vector< int, Dim > size, typename CxField_gt::view_type view_g, const ippl::NDIndex< Dim > ldom_g, const int nghost_g, typename Field_t::view_type view, const ippl::NDIndex< Dim > ldom, const int nghost)
void communicateVico (Vector< int, Dim > size, typename Field_t::view_type view_g, const ippl::NDIndex< Dim > ldom_g, const int nghost_g, typename Field_t::view_type view, const ippl::NDIndex< Dim > ldom, const int nghost)
template<typename T>
void updateParameter (const std::string &key, const T &value)
void updateParameters (const ParameterList &params)
void mergeParameters (const ParameterList &params)
void setLhs (lhs_type &lhs)
void setGradient (grad_type &grad)

Protected Member Functions

virtual void setDefaultParameters () override

Protected Attributes

ParameterList params_m
rhs_typerhs_mp = nullptr
lhs_typelhs_mp = nullptr
grad_typegrad_mp

Private Types

using Trhs = typename FieldRHS::value_type
using mesh_type = typename FieldLHS::Mesh_t
using Tg = typename FieldLHS::value_type::value_type
typedef FieldLHS::Mesh_t Mesh

Private Attributes

Field_t storage_field
Field_trho2_mr
Field_tgrn_mr = storage_field
CxField_t rho2tr_m
CxField_t grntr_m
CxField_t temp_m
IField_t grnIField_m [Dim]
MField_t hess_m
std::unique_ptr< FFT_tfft_m
mesh_typemesh_mp
FieldLayout_tlayout_mp
std::unique_ptr< mesh_typemesh2_m
std::unique_ptr< FieldLayout_tlayout2_m
std::unique_ptr< mesh_typemeshComplex_m
std::unique_ptr< FieldLayout_tlayoutComplex_m
NDIndex< Dimdomain_m
NDIndex< Dimdomain2_m
NDIndex< DimdomainComplex_m
vector_type hr_m
Vector< int, Dimnr_m
std::string alg_m
CxField_gt grnL_m
std::unique_ptr< FFT< CCTransform, CxField_gt > > fft4n_m
std::unique_ptr< mesh_typemesh4_m
std::unique_ptr< FieldLayout_tlayout4_m
NDIndex< Dimdomain4_m
Field_t grn2n1_m
std::unique_ptr< FFT< Cos1Transform, Field_t > > fft2n1_m
std::unique_ptr< mesh_typemesh2n1_m
std::unique_ptr< FieldLayout_tlayout2n1_m
NDIndex< Dimdomain2n1_m
bool isGradFD_m
detail::FieldBufferData< Trhsfd_m

Static Private Attributes

static constexpr unsigned Dim = FieldLHS::dim

Detailed Description

template<typename FieldLHS, typename FieldRHS>
class ippl::FFTOpenPoissonSolver< FieldLHS, FieldRHS >

Definition at line 72 of file FFTOpenPoissonSolver.h.

Member Typedef Documentation

◆ Base

template<typename FieldLHS, typename FieldRHS>
using ippl::FFTOpenPoissonSolver< FieldLHS, FieldRHS >::Base = Poisson<FieldLHS, FieldRHS>

Definition at line 80 of file FFTOpenPoissonSolver.h.

◆ buffer_type

template<typename FieldLHS, typename FieldRHS>
using ippl::FFTOpenPoissonSolver< FieldLHS, FieldRHS >::buffer_type = mpi::Communicator::buffer_type<memory_space>

Definition at line 115 of file FFTOpenPoissonSolver.h.

◆ Centering

template<typename FieldLHS, typename FieldRHS>
typedef FieldLHS::Centering_t ippl::FFTOpenPoissonSolver< FieldLHS, FieldRHS >::Centering

Definition at line 101 of file FFTOpenPoissonSolver.h.

◆ CxField_gt

template<typename FieldLHS, typename FieldRHS>
typedef Field<Kokkos::complex<Tg>, Dim, mesh_type, CenteringCentering> ippl::FFTOpenPoissonSolver< FieldLHS, FieldRHS >::CxField_gt

Definition at line 104 of file FFTOpenPoissonSolver.h.

◆ CxField_t

template<typename FieldLHS, typename FieldRHS>
typedef FFT_t::ComplexField ippl::FFTOpenPoissonSolver< FieldLHS, FieldRHS >::CxField_t

Definition at line 105 of file FFTOpenPoissonSolver.h.

◆ FFT_t

template<typename FieldLHS, typename FieldRHS>
typedef FFT<RCTransform, FieldRHS> ippl::FFTOpenPoissonSolver< FieldLHS, FieldRHS >::FFT_t

Definition at line 86 of file FFTOpenPoissonSolver.h.

◆ Field_gt

template<typename FieldLHS, typename FieldRHS>
typedef Field<Tg, Dim, mesh_type, CenteringCentering> ippl::FFTOpenPoissonSolver< FieldLHS, FieldRHS >::Field_gt

Definition at line 103 of file FFTOpenPoissonSolver.h.

◆ Field_t

template<typename FieldLHS, typename FieldRHS>
typedef FieldRHS ippl::FFTOpenPoissonSolver< FieldLHS, FieldRHS >::Field_t

Definition at line 100 of file FFTOpenPoissonSolver.h.

◆ FieldLayout_t

template<typename FieldLHS, typename FieldRHS>
typedef FieldLayout<Dim> ippl::FFTOpenPoissonSolver< FieldLHS, FieldRHS >::FieldLayout_t

Definition at line 111 of file FFTOpenPoissonSolver.h.

◆ grad_type

template<typename FieldLHS, typename FieldRHS>
using ippl::Poisson< FieldLHS, FieldRHS >::grad_type = Field<Vector<Tlhs, Dim>, Dim, Mesh, CenteringCentering>
inherited

Definition at line 29 of file Poisson.h.

◆ IField_t

template<typename FieldLHS, typename FieldRHS>
typedef Field<int, Dim, mesh_type, CenteringCentering> ippl::FFTOpenPoissonSolver< FieldLHS, FieldRHS >::IField_t

Definition at line 102 of file FFTOpenPoissonSolver.h.

◆ lhs_type

template<typename FieldLHS, typename FieldRHS>
using ippl::Poisson< FieldLHS, FieldRHS >::lhs_type

Definition at line 24 of file Poisson.h.

◆ Matrix_t

template<typename FieldLHS, typename FieldRHS>
typedef mesh_type::matrix_type ippl::FFTOpenPoissonSolver< FieldLHS, FieldRHS >::Matrix_t

Definition at line 107 of file FFTOpenPoissonSolver.h.

◆ memory_space

template<typename FieldLHS, typename FieldRHS>
using ippl::FFTOpenPoissonSolver< FieldLHS, FieldRHS >::memory_space = typename FieldLHS::memory_space

Definition at line 114 of file FFTOpenPoissonSolver.h.

◆ Mesh

template<typename FieldLHS, typename FieldRHS>
typedef FieldLHS::Mesh_t ippl::Poisson< FieldLHS, FieldRHS >::Mesh
privateinherited

Definition at line 18 of file Poisson.h.

◆ mesh_type

template<typename FieldLHS, typename FieldRHS>
using ippl::FFTOpenPoissonSolver< FieldLHS, FieldRHS >::mesh_type = typename FieldLHS::Mesh_t
private

Definition at line 75 of file FFTOpenPoissonSolver.h.

◆ MField_t

template<typename FieldLHS, typename FieldRHS>
typedef Field<Matrix_t, Dim, mesh_type, CenteringCentering> ippl::FFTOpenPoissonSolver< FieldLHS, FieldRHS >::MField_t

Definition at line 108 of file FFTOpenPoissonSolver.h.

◆ rhs_type

template<typename FieldLHS, typename FieldRHS>
using ippl::Poisson< FieldLHS, FieldRHS >::rhs_type

Definition at line 25 of file Poisson.h.

◆ scalar_type

template<typename FieldLHS, typename FieldRHS>
using ippl::FFTOpenPoissonSolver< FieldLHS, FieldRHS >::scalar_type = typename mesh_type::value_type

Definition at line 119 of file FFTOpenPoissonSolver.h.

◆ Tg

template<typename FieldLHS, typename FieldRHS>
using ippl::FFTOpenPoissonSolver< FieldLHS, FieldRHS >::Tg = typename FieldLHS::value_type::value_type
private

Definition at line 76 of file FFTOpenPoissonSolver.h.

◆ Tlhs

template<typename FieldLHS, typename FieldRHS>
using ippl::Poisson< FieldLHS, FieldRHS >::Tlhs = typename FieldLHS::value_type
inherited

Definition at line 26 of file Poisson.h.

◆ Trhs

template<typename FieldLHS, typename FieldRHS>
using ippl::FFTOpenPoissonSolver< FieldLHS, FieldRHS >::Trhs = typename FieldRHS::value_type
private

Definition at line 74 of file FFTOpenPoissonSolver.h.

◆ Vector_t

template<typename FieldLHS, typename FieldRHS>
typedef Vector<Trhs, Dim> ippl::FFTOpenPoissonSolver< FieldLHS, FieldRHS >::Vector_t

Definition at line 106 of file FFTOpenPoissonSolver.h.

◆ vector_type

template<typename FieldLHS, typename FieldRHS>
using ippl::FFTOpenPoissonSolver< FieldLHS, FieldRHS >::vector_type = typename mesh_type::vector_type

Definition at line 118 of file FFTOpenPoissonSolver.h.

Member Enumeration Documentation

◆ Algorithm

template<typename FieldLHS, typename FieldRHS>
enum ippl::FFTOpenPoissonSolver::Algorithm
Enumerator
HOCKNEY 
VICO 
BIHARMONIC 
DCT_VICO 

Definition at line 89 of file FFTOpenPoissonSolver.h.

◆ OutputType

template<typename FieldLHS, typename FieldRHS>
enum ippl::Poisson::OutputType
inherited

Represents the types of fields that should be output by the solver

Enumerator
SOL 
GRAD 
SOL_AND_GRAD 

Definition at line 35 of file Poisson.h.

Constructor & Destructor Documentation

◆ FFTOpenPoissonSolver() [1/3]

template<typename FieldLHS, typename FieldRHS>
ippl::FFTOpenPoissonSolver< FieldLHS, FieldRHS >::FFTOpenPoissonSolver ( )

Definition at line 157 of file FFTOpenPoissonSolver.hpp.

References isGradFD_m, layout2_m, layout2n1_m, layout4_m, layout_mp, layoutComplex_m, mesh2_m, mesh2n1_m, mesh4_m, mesh_mp, meshComplex_m, and setDefaultParameters().

Here is the call graph for this function:

◆ FFTOpenPoissonSolver() [2/3]

template<typename FieldLHS, typename FieldRHS>
ippl::FFTOpenPoissonSolver< FieldLHS, FieldRHS >::FFTOpenPoissonSolver ( rhs_type & rhs,
ParameterList & params )

Definition at line 174 of file FFTOpenPoissonSolver.hpp.

References isGradFD_m, layout2_m, layout2n1_m, layout4_m, layout_mp, layoutComplex_m, mesh2_m, mesh2n1_m, mesh4_m, mesh_mp, meshComplex_m, ippl::Poisson< FieldLHS, FieldRHS >::params_m, setDefaultParameters(), setRhs(), and ippl::Poisson< FieldLHS, FieldRHS >::SOL.

Here is the call graph for this function:

◆ FFTOpenPoissonSolver() [3/3]

template<typename FieldLHS, typename FieldRHS>
ippl::FFTOpenPoissonSolver< FieldLHS, FieldRHS >::FFTOpenPoissonSolver ( lhs_type & lhs,
rhs_type & rhs,
ParameterList & params )

Definition at line 198 of file FFTOpenPoissonSolver.hpp.

References isGradFD_m, layout2_m, layout2n1_m, layout4_m, layout_mp, layoutComplex_m, mesh2_m, mesh2n1_m, mesh4_m, mesh_mp, meshComplex_m, ippl::Poisson< FieldLHS, FieldRHS >::params_m, setDefaultParameters(), ippl::Poisson< FieldLHS, FieldRHS >::setLhs(), and setRhs().

Here is the call graph for this function:

◆ ~FFTOpenPoissonSolver()

template<typename FieldLHS, typename FieldRHS>
ippl::FFTOpenPoissonSolver< FieldLHS, FieldRHS >::~FFTOpenPoissonSolver ( )
default

Member Function Documentation

◆ communicateVico() [1/2]

template<typename FieldLHS, typename FieldRHS>
void ippl::FFTOpenPoissonSolver< FieldLHS, FieldRHS >::communicateVico ( Vector< int, Dim > size,
typename CxField_gt::view_type view_g,
const ippl::NDIndex< Dim > ldom_g,
const int nghost_g,
typename Field_t::view_type view,
const ippl::NDIndex< Dim > ldom,
const int nghost )

Definition at line 1380 of file FFTOpenPoissonSolver.hpp.

References ippl::Comm, Dim, fd_m, first(), ippl::NDIndex< Dim >::intersect(), layout2_m, layout4_m, solver_recv(), solver_send(), ippl::NDIndex< Dim >::touches(), and ippl::mpi::tag::VICO_SOLVER.

Referenced by greensFunction().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ communicateVico() [2/2]

template<typename FieldLHS, typename FieldRHS>
void ippl::FFTOpenPoissonSolver< FieldLHS, FieldRHS >::communicateVico ( Vector< int, Dim > size,
typename Field_t::view_type view_g,
const ippl::NDIndex< Dim > ldom_g,
const int nghost_g,
typename Field_t::view_type view,
const ippl::NDIndex< Dim > ldom,
const int nghost )

Definition at line 1783 of file FFTOpenPoissonSolver.hpp.

References ippl::Comm, Dim, fd_m, first(), ippl::NDIndex< Dim >::intersect(), layout2_m, layout2n1_m, solver_recv(), solver_send(), ippl::NDIndex< Dim >::touches(), and ippl::mpi::tag::VICO_SOLVER.

Here is the call graph for this function:

◆ getHessian()

template<typename FieldLHS, typename FieldRHS>
MField_t * ippl::FFTOpenPoissonSolver< FieldLHS, FieldRHS >::getHessian ( )
inlineoverridevirtual

Get the Hessian matrix of the solution

Returns
Matrix field containing the Hessian of the lhs

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

Definition at line 140 of file FFTOpenPoissonSolver.h.

References ippl::get(), hess_m, and ippl::Poisson< FieldLHS, FieldRHS >::params_m.

Here is the call graph for this function:

◆ greensFunction()

template<typename FieldLHS, typename FieldRHS>
void ippl::FFTOpenPoissonSolver< FieldLHS, FieldRHS >::greensFunction ( )

Definition at line 1055 of file FFTOpenPoissonSolver.hpp.

References ippl::BACKWARD, BIHARMONIC, ippl::Comm, communicateVico(), DCT_VICO, Dim, fft2n1_m, fft4n_m, fft_m, ippl::FORWARD, ippl::get(), IpplTimings::getTimer(), grn2n1_m, grn_mr, grnIField_m, grnL_m, grntr_m, hr_m, layout2_m, layout2n1_m, layout4_m, mesh2n1_m, mesh4_m, nr_m, ippl::Poisson< FieldLHS, FieldRHS >::params_m, pi, IpplTimings::startTimer(), IpplTimings::stopTimer(), and VICO.

Referenced by initializeFields(), and solve().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ initializeFields()

template<typename FieldLHS, typename FieldRHS>
void ippl::FFTOpenPoissonSolver< FieldLHS, FieldRHS >::initializeFields ( )

Definition at line 258 of file FFTOpenPoissonSolver.hpp.

References BIHARMONIC, DCT_VICO, Dim, domain2_m, domain2n1_m, domain4_m, domain_m, domainComplex_m, fft2n1_m, fft4n_m, fft_m, ippl::get(), IpplTimings::getTimer(), ippl::Poisson< FieldLHS, FieldRHS >::GRAD, greensFunction(), grn2n1_m, grnIField_m, grnL_m, grntr_m, hess_m, HOCKNEY, hr_m, isGradFD_m, layout2_m, layout2n1_m, layout4_m, layout_mp, layoutComplex_m, mesh2_m, mesh2n1_m, mesh4_m, mesh_mp, meshComplex_m, nr_m, ippl::Poisson< FieldLHS, FieldRHS >::params_m, rho2_mr, rho2tr_m, ippl::Poisson< FieldLHS, FieldRHS >::rhs_mp, ippl::Poisson< FieldLHS, FieldRHS >::SOL_AND_GRAD, IpplTimings::startTimer(), IpplTimings::stopTimer(), storage_field, temp_m, and VICO.

Referenced by setRhs().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ mergeParameters()

template<typename FieldLHS, typename FieldRHS>
void ippl::Poisson< FieldLHS, FieldRHS >::mergeParameters ( const ParameterList & params)
inlineinherited

Merges another parameter set into the solver's parameters, overwriting existing parameters in case of conflict

Parameters
paramsParameter list with desired values

Definition at line 84 of file Poisson.h.

References params_m.

◆ setDefaultParameters()

template<typename FieldLHS, typename FieldRHS>
virtual void ippl::FFTOpenPoissonSolver< 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 >.

Definition at line 248 of file FFTOpenPoissonSolver.h.

References ippl::a2a, ippl::a2av, HOCKNEY, ippl::p2p, ippl::p2p_pl, and ippl::Poisson< FieldLHS, FieldRHS >::params_m.

Referenced by FFTOpenPoissonSolver(), FFTOpenPoissonSolver(), and FFTOpenPoissonSolver().

Here is the caller graph for this function:

◆ setGradFD()

template<typename FieldLHS, typename FieldRHS>
void ippl::FFTOpenPoissonSolver< FieldLHS, FieldRHS >::setGradFD ( )

Definition at line 241 of file FFTOpenPoissonSolver.hpp.

References ippl::get(), isGradFD_m, ippl::Poisson< FieldLHS, FieldRHS >::params_m, and ippl::Poisson< FieldLHS, FieldRHS >::SOL_AND_GRAD.

Here is the call graph for this function:

◆ setGradient()

template<typename FieldLHS, typename FieldRHS>
void ippl::Poisson< FieldLHS, FieldRHS >::setGradient ( grad_type & grad)
inlineinherited

Set the field in which the gradient of the computed potential should be stored

Parameters
gradReference to field in which to store the gradient

Definition at line 109 of file Poisson.h.

References ippl::grad(), and grad_mp.

Here is the call graph for this function:

◆ setLhs()

template<typename FieldLHS, typename FieldRHS>
void ippl::Poisson< FieldLHS, FieldRHS >::setLhs ( lhs_type & lhs)
inlineinherited

Set the problem LHS

Parameters
lhsReference 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().

Here is the caller graph for this function:

◆ setRhs()

template<typename FieldLHS, typename FieldRHS>
void ippl::FFTOpenPoissonSolver< FieldLHS, FieldRHS >::setRhs ( rhs_type & rhs)
overridevirtual

Set the problem RHS

Parameters
rhsReference to problem RHS field

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

Definition at line 224 of file FFTOpenPoissonSolver.hpp.

References IpplTimings::getTimer(), ippl::initialize(), initializeFields(), ippl::Poisson< FieldLHS, FieldRHS >::setRhs(), IpplTimings::startTimer(), and IpplTimings::stopTimer().

Referenced by FFTOpenPoissonSolver(), and FFTOpenPoissonSolver().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ solve()

template<typename FieldLHS, typename FieldRHS>
void ippl::FFTOpenPoissonSolver< FieldLHS, FieldRHS >::solve ( )
overridevirtual

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

Implements ippl::Poisson< FieldLHS, FieldRHS >.

Definition at line 493 of file FFTOpenPoissonSolver.hpp.

References ippl::BACKWARD, BIHARMONIC, ippl::Comm, DCT_VICO, Dim, fd_m, fft_m, ippl::FORWARD, ippl::get(), IpplTimings::getTimer(), ippl::Poisson< FieldLHS, FieldRHS >::GRAD, ippl::grad(), greensFunction(), grntr_m, ippl::hess(), hess_m, HOCKNEY, hr_m, isGradFD_m, layout2_m, layout_mp, layoutComplex_m, ippl::Poisson< FieldLHS, FieldRHS >::lhs_mp, mesh2_m, mesh_mp, meshComplex_m, nr_m, ippl::mpi::tag::OPEN_SOLVER, ippl::Poisson< FieldLHS, FieldRHS >::params_m, pi, rho2_mr, rho2tr_m, ippl::Poisson< FieldLHS, FieldRHS >::rhs_mp, ippl::Poisson< FieldLHS, FieldRHS >::SOL, ippl::Poisson< FieldLHS, FieldRHS >::SOL_AND_GRAD, solve(), solver_send(), IpplTimings::startTimer(), IpplTimings::stopTimer(), temp_m, unpack(), and VICO.

Referenced by solve().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ updateParameter()

template<typename FieldLHS, typename FieldRHS>
template<typename T>
void ippl::Poisson< FieldLHS, FieldRHS >::updateParameter ( const std::string & key,
const T & value )
inlineinherited

Update one of the solver's parameters

Parameters
keyThe parameter key
valueThe new value
Exceptions
IpplExceptionFails if there is no existing parameter with the given key

Definition at line 67 of file Poisson.h.

References params_m.

◆ updateParameters()

template<typename FieldLHS, typename FieldRHS>
void ippl::Poisson< FieldLHS, FieldRHS >::updateParameters ( const ParameterList & params)
inlineinherited

Updates all solver parameters based on values in another parameter set

Parameters
paramsParameter list with updated values
Exceptions
IpplExceptionFails if the provided parameter list includes keys not already present

Definition at line 77 of file Poisson.h.

References params_m.

Member Data Documentation

◆ alg_m

template<typename FieldLHS, typename FieldRHS>
std::string ippl::FFTOpenPoissonSolver< FieldLHS, FieldRHS >::alg_m
private

Definition at line 219 of file FFTOpenPoissonSolver.h.

◆ Dim

template<typename FieldLHS, typename FieldRHS>
unsigned ippl::FFTOpenPoissonSolver< FieldLHS, FieldRHS >::Dim = FieldLHS::dim
staticconstexprprivate

◆ domain2_m

template<typename FieldLHS, typename FieldRHS>
NDIndex<Dim> ippl::FFTOpenPoissonSolver< FieldLHS, FieldRHS >::domain2_m
private

Definition at line 211 of file FFTOpenPoissonSolver.h.

Referenced by initializeFields().

◆ domain2n1_m

template<typename FieldLHS, typename FieldRHS>
NDIndex<Dim> ippl::FFTOpenPoissonSolver< FieldLHS, FieldRHS >::domain2n1_m
private

Definition at line 239 of file FFTOpenPoissonSolver.h.

Referenced by initializeFields().

◆ domain4_m

template<typename FieldLHS, typename FieldRHS>
NDIndex<Dim> ippl::FFTOpenPoissonSolver< FieldLHS, FieldRHS >::domain4_m
private

Definition at line 229 of file FFTOpenPoissonSolver.h.

Referenced by initializeFields().

◆ domain_m

template<typename FieldLHS, typename FieldRHS>
NDIndex<Dim> ippl::FFTOpenPoissonSolver< FieldLHS, FieldRHS >::domain_m
private

Definition at line 210 of file FFTOpenPoissonSolver.h.

Referenced by initializeFields().

◆ domainComplex_m

template<typename FieldLHS, typename FieldRHS>
NDIndex<Dim> ippl::FFTOpenPoissonSolver< FieldLHS, FieldRHS >::domainComplex_m
private

Definition at line 212 of file FFTOpenPoissonSolver.h.

Referenced by initializeFields().

◆ fd_m

template<typename FieldLHS, typename FieldRHS>
detail::FieldBufferData<Trhs> ippl::FFTOpenPoissonSolver< FieldLHS, FieldRHS >::fd_m
private

Definition at line 245 of file FFTOpenPoissonSolver.h.

Referenced by communicateVico(), communicateVico(), and solve().

◆ fft2n1_m

template<typename FieldLHS, typename FieldRHS>
std::unique_ptr<FFT<Cos1Transform, Field_t> > ippl::FFTOpenPoissonSolver< FieldLHS, FieldRHS >::fft2n1_m
private

Definition at line 234 of file FFTOpenPoissonSolver.h.

Referenced by greensFunction(), and initializeFields().

◆ fft4n_m

template<typename FieldLHS, typename FieldRHS>
std::unique_ptr<FFT<CCTransform, CxField_gt> > ippl::FFTOpenPoissonSolver< FieldLHS, FieldRHS >::fft4n_m
private

Definition at line 224 of file FFTOpenPoissonSolver.h.

Referenced by greensFunction(), and initializeFields().

◆ fft_m

template<typename FieldLHS, typename FieldRHS>
std::unique_ptr<FFT_t> ippl::FFTOpenPoissonSolver< FieldLHS, FieldRHS >::fft_m
private

Definition at line 195 of file FFTOpenPoissonSolver.h.

Referenced by greensFunction(), initializeFields(), and solve().

◆ grad_mp

template<typename FieldLHS, typename FieldRHS>
grad_type* ippl::Poisson< FieldLHS, FieldRHS >::grad_mp
protectedinherited

Definition at line 125 of file Poisson.h.

Referenced by Poisson(), Poisson(), and setGradient().

◆ grn2n1_m

template<typename FieldLHS, typename FieldRHS>
Field_t ippl::FFTOpenPoissonSolver< FieldLHS, FieldRHS >::grn2n1_m
private

Definition at line 232 of file FFTOpenPoissonSolver.h.

Referenced by greensFunction(), and initializeFields().

◆ grn_mr

template<typename FieldLHS, typename FieldRHS>
Field_t& ippl::FFTOpenPoissonSolver< FieldLHS, FieldRHS >::grn_mr = storage_field
private

Definition at line 175 of file FFTOpenPoissonSolver.h.

Referenced by greensFunction().

◆ grnIField_m

template<typename FieldLHS, typename FieldRHS>
IField_t ippl::FFTOpenPoissonSolver< FieldLHS, FieldRHS >::grnIField_m[Dim]
private

Definition at line 189 of file FFTOpenPoissonSolver.h.

Referenced by greensFunction(), and initializeFields().

◆ grnL_m

template<typename FieldLHS, typename FieldRHS>
CxField_gt ippl::FFTOpenPoissonSolver< FieldLHS, FieldRHS >::grnL_m
private

Definition at line 222 of file FFTOpenPoissonSolver.h.

Referenced by greensFunction(), and initializeFields().

◆ grntr_m

template<typename FieldLHS, typename FieldRHS>
CxField_t ippl::FFTOpenPoissonSolver< FieldLHS, FieldRHS >::grntr_m
private

Definition at line 183 of file FFTOpenPoissonSolver.h.

Referenced by greensFunction(), initializeFields(), and solve().

◆ hess_m

template<typename FieldLHS, typename FieldRHS>
MField_t ippl::FFTOpenPoissonSolver< FieldLHS, FieldRHS >::hess_m
private

Definition at line 192 of file FFTOpenPoissonSolver.h.

Referenced by getHessian(), initializeFields(), and solve().

◆ hr_m

template<typename FieldLHS, typename FieldRHS>
vector_type ippl::FFTOpenPoissonSolver< FieldLHS, FieldRHS >::hr_m
private

Definition at line 215 of file FFTOpenPoissonSolver.h.

Referenced by greensFunction(), initializeFields(), and solve().

◆ isGradFD_m

template<typename FieldLHS, typename FieldRHS>
bool ippl::FFTOpenPoissonSolver< FieldLHS, FieldRHS >::isGradFD_m
private

◆ layout2_m

template<typename FieldLHS, typename FieldRHS>
std::unique_ptr<FieldLayout_t> ippl::FFTOpenPoissonSolver< FieldLHS, FieldRHS >::layout2_m
private

◆ layout2n1_m

template<typename FieldLHS, typename FieldRHS>
std::unique_ptr<FieldLayout_t> ippl::FFTOpenPoissonSolver< FieldLHS, FieldRHS >::layout2n1_m
private

◆ layout4_m

template<typename FieldLHS, typename FieldRHS>
std::unique_ptr<FieldLayout_t> ippl::FFTOpenPoissonSolver< FieldLHS, FieldRHS >::layout4_m
private

◆ layout_mp

template<typename FieldLHS, typename FieldRHS>
FieldLayout_t* ippl::FFTOpenPoissonSolver< FieldLHS, FieldRHS >::layout_mp
private

◆ layoutComplex_m

template<typename FieldLHS, typename FieldRHS>
std::unique_ptr<FieldLayout_t> ippl::FFTOpenPoissonSolver< FieldLHS, FieldRHS >::layoutComplex_m
private

◆ lhs_mp

template<typename FieldLHS, typename FieldRHS>
lhs_type* ippl::Poisson< FieldLHS, FieldRHS >::lhs_mp = nullptr
protectedinherited

◆ mesh2_m

template<typename FieldLHS, typename FieldRHS>
std::unique_ptr<mesh_type> ippl::FFTOpenPoissonSolver< FieldLHS, FieldRHS >::mesh2_m
private

◆ mesh2n1_m

template<typename FieldLHS, typename FieldRHS>
std::unique_ptr<mesh_type> ippl::FFTOpenPoissonSolver< FieldLHS, FieldRHS >::mesh2n1_m
private

◆ mesh4_m

template<typename FieldLHS, typename FieldRHS>
std::unique_ptr<mesh_type> ippl::FFTOpenPoissonSolver< FieldLHS, FieldRHS >::mesh4_m
private

◆ mesh_mp

template<typename FieldLHS, typename FieldRHS>
mesh_type* ippl::FFTOpenPoissonSolver< FieldLHS, FieldRHS >::mesh_mp
private

◆ meshComplex_m

template<typename FieldLHS, typename FieldRHS>
std::unique_ptr<mesh_type> ippl::FFTOpenPoissonSolver< FieldLHS, FieldRHS >::meshComplex_m
private

◆ nr_m

template<typename FieldLHS, typename FieldRHS>
Vector<int, Dim> ippl::FFTOpenPoissonSolver< FieldLHS, FieldRHS >::nr_m
private

Definition at line 216 of file FFTOpenPoissonSolver.h.

Referenced by greensFunction(), initializeFields(), and solve().

◆ params_m

template<typename FieldLHS, typename FieldRHS>
ParameterList ippl::Poisson< FieldLHS, FieldRHS >::params_m
protectedinherited

◆ rho2_mr

template<typename FieldLHS, typename FieldRHS>
Field_t& ippl::FFTOpenPoissonSolver< FieldLHS, FieldRHS >::rho2_mr
private
Initial value:

Definition at line 173 of file FFTOpenPoissonSolver.h.

Referenced by initializeFields(), and solve().

◆ rho2tr_m

template<typename FieldLHS, typename FieldRHS>
CxField_t ippl::FFTOpenPoissonSolver< FieldLHS, FieldRHS >::rho2tr_m
private

Definition at line 179 of file FFTOpenPoissonSolver.h.

Referenced by initializeFields(), and solve().

◆ rhs_mp

◆ storage_field

template<typename FieldLHS, typename FieldRHS>
Field_t ippl::FFTOpenPoissonSolver< FieldLHS, FieldRHS >::storage_field
private

Definition at line 171 of file FFTOpenPoissonSolver.h.

Referenced by initializeFields().

◆ temp_m

template<typename FieldLHS, typename FieldRHS>
CxField_t ippl::FFTOpenPoissonSolver< FieldLHS, FieldRHS >::temp_m
private

Definition at line 186 of file FFTOpenPoissonSolver.h.

Referenced by initializeFields(), and solve().


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