11#ifndef IPPL_TRUNCATEDGREEN_SHORTRANGE_H
12#define IPPL_TRUNCATEDGREEN_SHORTRANGE_H
25 template <
typename ParticleContainer,
typename VectorAttribute,
typename ScalarAttribute>
29 using Vector_t =
typename VectorAttribute::value_type;
30 using Scalar_t =
typename ScalarAttribute::value_type;
32 static_assert(std::is_same_v<execution_space, typename ScalarAttribute::execution_space>);
45 const VectorAttribute& R,
const ScalarAttribute& QM,
58 void solve()
override;
73 const VectorAttribute&
R_m;
75 const ScalarAttribute&
QM_m;
ParticleInteractionBase(const ParticleContainer &pc, const ParameterList ¶ms)
VectorAttribute & Field_m
! The electric or gravitational field
const ScalarAttribute & QM_m
! Charge or Mass of the particles
TruncatedGreenParticleInteraction(const ParticleContainer &pc, VectorAttribute &F, const VectorAttribute &R, const ScalarAttribute &QM, const ParameterList ¶ms)
typename ScalarAttribute::value_type Scalar_t
typename VectorAttribute::execution_space execution_space
const VectorAttribute & R_m
! Positions of the particles
static KOKKOS_INLINE_FUNCTION constexpr Vector_t fieldFromPair(const Vector_t &dist, Scalar_t r2, Scalar_t alpha, Scalar_t forceConstant, Scalar_t qm)
ParticleInteractionBase< ParticleContainer > Base
~TruncatedGreenParticleInteraction() override=default
typename VectorAttribute::value_type Vector_t