![]() |
ESPResSo
Extensible Simulation Package for Research on Soft Matter Systems
|
#include <config/config.hpp>#include "magnetostatics/dipolar_direct_sum.hpp"#include "magnetostatics/dipolar_direct_sum_kernels.hpp"#include "BoxGeometry.hpp"#include "cells.hpp"#include "communication.hpp"#include "errorhandling.hpp"#include "particle_reduction.hpp"#include "system/System.hpp"#include <Kokkos_Core.hpp>#include <Kokkos_ScatterView.hpp>#include <utils/Vector.hpp>#include <utils/math/tensor_product.hpp>#include <utils/mpi/iall_gatherv.hpp>#include <boost/mpi/collectives.hpp>#include <boost/mpi/communicator.hpp>#include <mpi.h>#include <cassert>#include <cstddef>#include <numeric>#include <stdexcept>#include <tuple>#include <utility>#include <vector>
Include dependency graph for dipolar_direct_sum.cpp:Go to the source code of this file.
Classes | |
| struct | PosMom |
| Position and dipole moment of one particle. More... | |
Functions | |
| static auto | gather_particle_data (BoxGeometry const &box_geo, ParticleRange const &particles) |
| static auto | get_n_cut (BoxGeometry const &box_geo, int n_replicas) |
| static std::vector< Utils::Vector3d > | make_image_shifts (Utils::Vector3i const &ncut, Utils::Vector3d const &box_l) |
| Real-space image shifts n x box_l inside the |ncut| sphere. | |
|
static |
Definition at line 68 of file dipolar_direct_sum.cpp.
References comm_cart, BoxGeometry::folded_position(), Utils::Mpi::iall_gatherv(), ParticleRange::size(), and stream.
Referenced by DipolarDirectSum::add_long_range_forces_cpu(), DipolarDirectSum::dipole_field_at_part_cpu(), DipolarDirectSum::long_range_energy_cpu(), and DipolarDirectSum::long_range_pressure().
|
static |
Definition at line 108 of file dipolar_direct_sum.cpp.
References BoxGeometry::periodic().
Referenced by DipolarDirectSum::add_long_range_forces_cpu(), DipolarDirectSum::dipole_field_at_part_cpu(), DipolarDirectSum::long_range_energy_cpu(), and DipolarDirectSum::long_range_pressure().
|
static |
Real-space image shifts n x box_l inside the |ncut| sphere.
Index 0 is the primary (zero) shift so self-interaction loops start at index 1.
Definition at line 119 of file dipolar_direct_sum.cpp.
References Utils::Vector< T, N >::norm2(), and stream.
Referenced by DipolarDirectSum::add_long_range_forces_cpu(), DipolarDirectSum::dipole_field_at_part_cpu(), DipolarDirectSum::long_range_energy_cpu(), and DipolarDirectSum::long_range_pressure().