46#ifdef ESPRESSO_DIPOLES
54 auto const &actor = *ptr;
65 operator()(std::shared_ptr<DipolarLayerCorrection>
const &ptr)
const {
66 return std::visit(*
this, ptr->base_solver);
76#ifdef ESPRESSO_DIPOLES
84 auto const &actor = *ptr;
88 return actor.pair_energy(
p1,
p2, d,
dist, dist2);
94 operator()(std::shared_ptr<DipolarLayerCorrection>
const &ptr)
const {
95 return std::visit(*
this, ptr->base_solver);
100inline std::optional<Solver::ShortRangeForceKernel>
102#ifdef ESPRESSO_DIPOLES
103 if (
auto &solver =
impl->solver; solver.has_value()) {
105 return std::visit(
visitor, *solver);
111inline std::optional<Solver::ShortRangeEnergyKernel>
113#ifdef ESPRESSO_DIPOLES
114 if (
auto &solver =
impl->solver; solver.has_value()) {
116 return std::visit(
visitor, *solver);
Vector implementation and trait types for boost qvm interoperability.
cudaStream_t stream[1]
CUDA streams for parallel computing on CPU and GPU.
P3M algorithm for long-range magnetic dipole-dipole interaction.
result_type operator()(std::shared_ptr< T > const &) const
std::optional< kernel_type > result_type
result_type operator()(std::shared_ptr< DipolarLayerCorrection > const &ptr) const
Solver::ShortRangeEnergyKernel kernel_type
result_type operator()(std::shared_ptr< DipolarP3M > const &ptr) const
result_type operator()(std::shared_ptr< DipolarLayerCorrection > const &ptr) const
std::optional< kernel_type > result_type
result_type operator()(std::shared_ptr< T > const &) const
Solver::ShortRangeForceKernel kernel_type
result_type operator()(std::shared_ptr< DipolarP3M > const &ptr) const
std::function< ParticleForce(double, Utils::Vector3d const &, Utils::Vector3d const &, Utils::Vector3d const &, double, double)> ShortRangeForceKernel
std::optional< ShortRangeForceKernel > pair_force_kernel() const
std::unique_ptr< Implementation > impl
Pointer-to-implementation.
std::function< double(Particle const &, Particle const &, Utils::Vector3d const &, double, double)> ShortRangeEnergyKernel
std::optional< ShortRangeEnergyKernel > pair_energy_kernel() const
Struct holding all information for one particle.