|
IPPL (Independent Parallel Particle Layer)
IPPL
|
#include <TruncatedGreenParticleInteraction.h>
Public Types | |
| using | Base = ParticleInteractionBase<ParticleContainer> |
| using | Vector_t = typename VectorAttribute::value_type |
| using | Scalar_t = typename ScalarAttribute::value_type |
| using | execution_space = typename VectorAttribute::execution_space |
Public Member Functions | |
| TruncatedGreenParticleInteraction (const ParticleContainer &pc, VectorAttribute &F, const VectorAttribute &R, const ScalarAttribute &QM, const ParameterList ¶ms) | |
| ~TruncatedGreenParticleInteraction () override=default | |
| void | solve () override |
| template<typename T> | |
| void | updateParameter (const std::string &key, const T &value) |
| void | updateParameters (const ParameterList ¶ms) |
| void | mergeParameters (const ParameterList ¶ms) |
Protected Member Functions | |
| virtual void | setDefaultParameters () |
Protected Attributes | |
| const ParticleContainer & | pc_m |
| ParameterList | params_m |
Static Private Member Functions | |
| static KOKKOS_INLINE_FUNCTION constexpr Vector_t | fieldFromPair (const Vector_t &dist, Scalar_t r2, Scalar_t alpha, Scalar_t forceConstant, Scalar_t qm) |
Private Attributes | |
| VectorAttribute & | Field_m |
| ! The electric or gravitational field | |
| const VectorAttribute & | R_m |
| ! Positions of the particles | |
| const ScalarAttribute & | QM_m |
| ! Charge or Mass of the particles | |
TruncatedGreenParticleInteraction class definition.
| ParticleContainer | particle container type |
| VectorAttribute | type to store vector valued attributes |
| ScalarAttribute | type to store scalar valued attributes evaluates truncated short range interaction F = - q * forceConstant grad [(1 - erf(alpha * r)) / r]. |
Definition at line 26 of file TruncatedGreenParticleInteraction.h.
| using ippl::TruncatedGreenParticleInteraction< ParticleContainer, VectorAttribute, ScalarAttribute >::Base = ParticleInteractionBase<ParticleContainer> |
Definition at line 28 of file TruncatedGreenParticleInteraction.h.
| using ippl::TruncatedGreenParticleInteraction< ParticleContainer, VectorAttribute, ScalarAttribute >::execution_space = typename VectorAttribute::execution_space |
Definition at line 31 of file TruncatedGreenParticleInteraction.h.
| using ippl::TruncatedGreenParticleInteraction< ParticleContainer, VectorAttribute, ScalarAttribute >::Scalar_t = typename ScalarAttribute::value_type |
Definition at line 30 of file TruncatedGreenParticleInteraction.h.
| using ippl::TruncatedGreenParticleInteraction< ParticleContainer, VectorAttribute, ScalarAttribute >::Vector_t = typename VectorAttribute::value_type |
Definition at line 29 of file TruncatedGreenParticleInteraction.h.
|
inline |
| pc | Particle container |
| F | Field attribute, where the evaluated field will be added to |
| R | Position attribute |
| QM | Charge or Mass like attribute determining the force magnitued |
| params | Parameters, containing at least 'alpha', 'force_constant' and 'rcut'. alpha controls the truncation strength. force_constant to be multiplied with the force. rcut determines the maximal distance between two particles to contribute to the forces. |
Definition at line 44 of file TruncatedGreenParticleInteraction.h.
|
overridedefault |
|
staticconstexprprivate |
Helper function to compute the field = - q * forceConstant grad [(1 - erf(alpha * r)) / r]. generated by an interacting particle
Definition at line 17 of file TruncatedGreenParticleInteraction.hpp.
References fieldFromPair().
Referenced by fieldFromPair(), and solve().
|
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 57 of file ParticleInteractionBase.h.
References params_m.
|
inlineprotectedvirtualinherited |
Utility function for initializing a solver's default parameters (to be overridden for each base class)
Definition at line 71 of file ParticleInteractionBase.h.
Referenced by ParticleInteractionBase(), and ParticleInteractionBase().
|
overridevirtual |
Evaluates the short range interactions F = - q * forceConstant grad [(1 - erf(alpha * r)) / r].
Implements ippl::ParticleInteractionBase< ParticleContainer >.
Definition at line 33 of file TruncatedGreenParticleInteraction.hpp.
References Field_m, fieldFromPair(), ippl::get(), IpplTimings::getTimer(), ippl::ParticleInteractionBase< ParticleContainer >::params_m, ippl::ParticleInteractionBase< ParticleContainer >::pc_m, QM_m, R_m, solve(), IpplTimings::startTimer(), and IpplTimings::stopTimer().
Referenced by solve().
|
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 40 of file ParticleInteractionBase.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 50 of file ParticleInteractionBase.h.
References params_m.
|
private |
! The electric or gravitational field
Definition at line 71 of file TruncatedGreenParticleInteraction.h.
Referenced by solve(), and TruncatedGreenParticleInteraction().
|
protectedinherited |
Definition at line 65 of file ParticleInteractionBase.h.
Referenced by mergeParameters(), ParticleInteractionBase(), ippl::TruncatedGreenParticleInteraction< ParticleContainer, VectorAttribute, ScalarAttribute >::solve(), updateParameter(), and updateParameters().
|
protectedinherited |
Definition at line 64 of file ParticleInteractionBase.h.
Referenced by ParticleInteractionBase(), ParticleInteractionBase(), and ippl::TruncatedGreenParticleInteraction< ParticleContainer, VectorAttribute, ScalarAttribute >::solve().
|
private |
! Charge or Mass of the particles
Definition at line 75 of file TruncatedGreenParticleInteraction.h.
Referenced by solve(), and TruncatedGreenParticleInteraction().
|
private |
! Positions of the particles
Definition at line 73 of file TruncatedGreenParticleInteraction.h.
Referenced by solve(), and TruncatedGreenParticleInteraction().