ESPResSo
Extensible Simulation Package for Research on Soft Matter Systems
Loading...
Searching...
No Matches
interpolation.hpp File Reference
#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.
 

Function Documentation

◆ p3m_calculate_interpolation_weights()

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.

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.

◆ p3m_interpolate()

template<int cao, template< int > class WeightsStorage, class Kernel >
void p3m_interpolate ( P3MLocalMesh const local_mesh,
WeightsStorage< cao > const weights,
Kernel  kernel 
)