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

#include <Poisson.h>

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

Public Types

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, CenteringCentering>

Public Member Functions

 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)
void setLhs (lhs_type &lhs)
virtual void setRhs (rhs_type &rhs)
virtual MField_tgetHessian ()
void setGradient (grad_type &grad)
virtual void solve ()=0
virtual ~Poisson ()

Protected Member Functions

virtual void setDefaultParameters ()

Protected Attributes

ParameterList params_m
rhs_typerhs_mp = nullptr
lhs_typelhs_mp = nullptr
grad_typegrad_mp

Private Types

typedef FieldLHS::Mesh_t Mesh
typedef FieldLHS::Centering_t Centering
typedef Mesh::matrix_type Matrix_t
typedef Field< Matrix_t, Dim, Mesh, CenteringCenteringMField_t

Static Private Attributes

static constexpr unsigned Dim = FieldLHS::dim

Detailed Description

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

Definition at line 16 of file Poisson.h.

Member Typedef Documentation

◆ Centering

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

Definition at line 19 of file Poisson.h.

◆ grad_type

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

Definition at line 29 of file Poisson.h.

◆ lhs_type

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

Definition at line 24 of file Poisson.h.

◆ Matrix_t

template<typename FieldLHS, typename FieldRHS>
typedef Mesh::matrix_type ippl::Poisson< FieldLHS, FieldRHS >::Matrix_t
private

Definition at line 20 of file Poisson.h.

◆ Mesh

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

Definition at line 18 of file Poisson.h.

◆ MField_t

template<typename FieldLHS, typename FieldRHS>
typedef Field<Matrix_t, Dim, Mesh, CenteringCentering> ippl::Poisson< FieldLHS, FieldRHS >::MField_t
private

Definition at line 21 of file Poisson.h.

◆ rhs_type

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

Definition at line 25 of file Poisson.h.

◆ Tlhs

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

Definition at line 26 of file Poisson.h.

◆ Trhs

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

Definition at line 27 of file Poisson.h.

Member Enumeration Documentation

◆ OutputType

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

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

◆ Poisson() [1/2]

template<typename FieldLHS, typename FieldRHS>
ippl::Poisson< FieldLHS, FieldRHS >::Poisson ( )
inline

Default constructor for electrostatic solvers; desired output type defaults to solution only

Definition at line 45 of file Poisson.h.

References grad_mp, and setDefaultParameters().

Here is the call graph for this function:

◆ Poisson() [2/2]

template<typename FieldLHS, typename FieldRHS>
ippl::Poisson< FieldLHS, FieldRHS >::Poisson ( lhs_type & lhs,
rhs_type & rhs )
inline

Definition at line 51 of file Poisson.h.

References grad_mp, setDefaultParameters(), setLhs(), and setRhs().

Here is the call graph for this function:

◆ ~Poisson()

template<typename FieldLHS, typename FieldRHS>
virtual ippl::Poisson< FieldLHS, FieldRHS >::~Poisson ( )
inlinevirtual

Definition at line 117 of file Poisson.h.

Member Function Documentation

◆ getHessian()

template<typename FieldLHS, typename FieldRHS>
virtual MField_t * ippl::Poisson< FieldLHS, FieldRHS >::getHessian ( )
inlinevirtual

Get the Hessian matrix of the solution

Returns
Matrix field containing the Hessian of the lhs

Reimplemented in ippl::FFTOpenPoissonSolver< FieldLHS, FieldRHS >.

Definition at line 102 of file Poisson.h.

◆ mergeParameters()

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

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::Poisson< FieldLHS, FieldRHS >::setDefaultParameters ( )
inlineprotectedvirtual

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

Reimplemented in ippl::FEMPoissonSolver< FieldLHS, FieldRHS, Order, QuadNumNodes >, ippl::FFTOpenPoissonSolver< FieldLHS, FieldRHS >, ippl::FFTPeriodicPoissonSolver< FieldLHS, FieldRHS >, ippl::FFTTruncatedGreenPeriodicPoissonSolver< FieldLHS, FieldRHS >, ippl::PoissonCG< FieldLHS, FieldRHS >, ippl::PoissonCG< Field< T, Dim >, Field_t< Dim > >, and ippl::PreconditionedFEMPoissonSolver< FieldLHS, FieldRHS >.

Definition at line 131 of file Poisson.h.

References ippl::ParameterList::add(), and SOL.

Referenced by ippl::NullSolver< VField_t< T, Dim >, Field_t< Dim > >::NullSolver(), Poisson(), and Poisson().

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

◆ setGradient()

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

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)
inline

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>
virtual void ippl::Poisson< FieldLHS, FieldRHS >::setRhs ( rhs_type & rhs)
inlinevirtual

◆ solve()

◆ updateParameter()

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

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)
inline

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

◆ Dim

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

Definition at line 17 of file Poisson.h.

◆ grad_mp

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

Definition at line 125 of file Poisson.h.

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

◆ lhs_mp

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

◆ params_m

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

◆ rhs_mp


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