![]() |
ESPResSo
Extensible Simulation Package for Research on Soft Matter Systems
|
#include <config/config.hpp>#include <utils/index.hpp>#include <utils/math/bspline.hpp>#include <Kokkos_Core.hpp>#include <algorithm>#include <cassert>#include <cstddef>#include <iterator>#include <span>#include <tuple>#include <utility>#include <vector>
Include dependency graph for interpolation.hpp:
This graph shows which files directly or indirectly include this file:Go to the source code of this file.
Classes | |
| struct | InterpolationWeights< cao > |
| Interpolation weights for one point. More... | |
| struct | InterpolationWeightsView< cao > |
| class | p3m_interpolation_cache |
| Cache for interpolation weights. More... | |
Functions | |
| template<int cao, Utils::MemoryOrder memory_order> | |
| InterpolationWeights< cao > | p3m_calculate_interpolation_weights (const Utils::Vector3d &position, const Utils::Vector3d &ai, P3MLocalMesh const &local_mesh) |
| Calculate the P-th order interpolation weights. | |
| template<int cao, template< int > class WeightsStorage, class Kernel > | |
| void | p3m_interpolate (P3MLocalMesh const &local_mesh, WeightsStorage< cao > const &weights, Kernel kernel) |
| P3M grid interpolation. | |
| InterpolationWeights< cao > p3m_calculate_interpolation_weights | ( | const Utils::Vector3d & | position, |
| const Utils::Vector3d & | ai, | ||
| P3MLocalMesh const & | local_mesh | ||
| ) |
Calculate the P-th order interpolation weights.
As described in from [23] 5-189 (or 8-61). The weights are also tabulated in [11] [12].
position shift for calc. of first assignment mesh point.
Definition at line 260 of file interpolation.hpp.
References Utils::Vector< T, N >::broadcast(), Utils::bspline(), P3MLocalMesh::dim, InterpolationWeights< cao >::ind, P3MLocalMesh::ld_pos, and stream.
| void p3m_interpolate | ( | P3MLocalMesh const & | local_mesh, |
| WeightsStorage< cao > const & | weights, | ||
| Kernel | kernel | ||
| ) |
P3M grid interpolation.
This runs an kernel for every interpolation point in a set of interpolation weights with the linear grid index and the weight of the point as arguments.
| local_mesh | Mesh info. |
| weights | Set of weights |
| kernel | The kernel to run. |
Definition at line 311 of file interpolation.hpp.
References P3MLocalMesh::q_21_off, P3MLocalMesh::q_2_off, and stream.
Referenced by anonymous_namespace{dp3m_heffte.impl.hpp}::AssignDipole< cao >::operator()(), anonymous_namespace{dp3m_heffte.impl.hpp}::AssignTorques< cao >::operator()(), anonymous_namespace{dp3m_heffte.impl.hpp}::AssignForcesDip< cao >::operator()(), anonymous_namespace{p3m_heffte.impl.hpp}::AssignCharge< cao >::operator()(), anonymous_namespace{p3m_heffte.impl.hpp}::AssignForces< cao >::operator()(), and anonymous_namespace{p3m_heffte.impl.hpp}::AssignCharge< cao >::operator()().