1#include "Vector/vector_dist.hpp"
2#include "Plot/GoogleChart.hpp"
3#include "Operators/Vector/vector_dist_operators.hpp"
7void Init_grid(
size_t (& sz)[3],
30constexpr int velocity_prop = 0;
31constexpr int force_prop = 1;
38 if (rn > r_cut2)
return 0.0;
40 return 24.0*(2.0 * sigma12 / (rn*rn*rn*rn*rn*rn*rn) - sigma6 / (rn*rn*rn*rn)) * r;
43int main(
int argc,
char* argv[])
46 openfpm_init(&argc,&argv);
49 double dt = 0.0005, sigma = 0.1, r_cut = 3.0*sigma;
50 sigma6 = pow(sigma,6), sigma12 = pow(sigma,12);
51 double rc2 = r_cut * r_cut;
55 size_t sz[3] = {10,10,10};
57 size_t bc[3]={PERIODIC,PERIODIC,PERIODIC};
72 auto velocity = getV<velocity_prop>(
particles);
73 auto position = getV<PROP_POS>(
particles);
81 force = applyKernel_in_sim(
particles,NN,lennard_jones);
84 for (
size_t i = 0; i < 10000 ; i++)
89 velocity = velocity + 0.5*dt*force;
90 position = position + velocity*dt;
98 force = applyKernel_in_sim(
particles,NN,lennard_jones);
102 velocity = velocity + 0.5*dt*force;
This class represent an N-dimensional box.
This class implement the point shape in an N-dimensional space.
grid_dist_id_iterator_dec< Decomposition > getGridIterator(const size_t(&sz)[dim])
void ghost_get(size_t opt=WITH_POSITION)
It synchronize the properties and position of the ghost particles.
void map(size_t opt=NONE)
It move all the particles that does not belong to the local processor to the respective processor.
CellL getCellListSym(St r_cut)
Construct a cell list symmetric based on a cut of radius.
auto getLastPos() -> decltype(v_pos.template get< 0 >(0))
Get the position of the last element.
void add()
Add local particle.
void updateCellListSym(CellL &cell_list)
Update a cell list using the stored particles.
aggregate of properties, from a list of object if create a struct that follow the OPENFPM native stru...