ESPResSo
Extensible Simulation Package for Research on Soft Matter Systems
Loading...
Searching...
No Matches
p3m.hpp File Reference

P3M algorithm for long-range Coulomb interaction. More...

#include <config/config.hpp>
#include "electrostatics/actor.hpp"
#include "p3m/common.hpp"
#include "p3m/data_struct.hpp"
#include "p3m/math.hpp"
#include "ParticleRange.hpp"
#include <utils/Vector.hpp>
#include <utils/math/AS_erfc_part.hpp>
#include <cmath>
#include <cstddef>
#include <numbers>
+ Include dependency graph for p3m.hpp:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  CoulombP3M
 P3M solver. More...
 

Functions

std::shared_ptr< CoulombP3Mnew_coulomb_p3m_heffte (P3MParameters &&p3m_params, TuningParameters const &tuning_params, double prefactor, bool single_precision, Arch arch)
 

Detailed Description

P3M algorithm for long-range Coulomb interaction.

We use a P3M (Particle-Particle Particle-Mesh) method based on the Ewald summation. Details of the used method can be found in [23] and [11] [12].

Further reading: [19], [23], [11], [12], [13], [14], [10].

Implementation in p3m.cpp.

Definition in file p3m.hpp.

Function Documentation

◆ new_coulomb_p3m_heffte()

std::shared_ptr< CoulombP3M > new_coulomb_p3m_heffte ( P3MParameters &&  p3m_params,
TuningParameters const tuning_params,
double  prefactor,
bool  single_precision,
Arch  arch 
)

Definition at line 47 of file p3m_heffte.cpp.

References CPU, and stream.

Referenced by ScriptInterface::Coulomb::CoulombP3M< Architecture >::do_construct().