6 #ifndef OPENFPM_PDATA_DCPSEINTERPOLATION_HPP
7 #define OPENFPM_PDATA_DCPSEINTERPOLATION_HPP
8 #include "DCPSE/Dcpse.hpp"
30 template<
typename particlesSupport_type,
typename particlesDomain_type,
typename VerletList_type,
size_t NORMAL_ID = INT_MAX>
36 particlesSupport_type & particlesSupport;
37 particlesDomain_type & particlesDomain;
53 particlesSupport_type &particlesSupport,
54 particlesDomain_type &particlesDomain,
55 VerletList_type& verletList,
57 typename particlesSupport_type::stype rCut,
58 support_options opt = support_options::RADIUS
60 particlesSupport(particlesSupport),
61 particlesDomain(particlesDomain)
66 particlesSupport_type::dims,
68 particlesSupport_type,
96 particlesSupport_type &particlesSupport,
97 particlesDomain_type &particlesDomain,
98 VerletList_type& verletList,
100 typename particlesSupport_type::stype rCut,
101 typename particlesSupport_type::stype nSpacing,
102 bool isSurfaceInterpolation,
103 support_options opt = support_options::RADIUS
105 particlesSupport(particlesSupport),
106 particlesDomain(particlesDomain)
110 dcpse =
new SurfaceDcpse<particlesSupport_type::dims,VerletList_type,particlesSupport_type,particlesDomain_type>(particlesSupport, particlesDomain, verletList, p, ord, rCut, nSpacing,
static_cast<unsigned int>(rCut/nSpacing), value_t<NORMAL_ID>(), opt);
114 delete (Dcpse<particlesSupport_type::dims, VerletList_type, particlesSupport_type, particlesDomain_type> *) dcpse;
132 template<
unsigned int propSupport,
unsigned int propDomain>
134 auto dcpse_temp = (Dcpse<particlesSupport_type::dims, VerletList_type, particlesSupport_type, particlesDomain_type>*) dcpse;
135 dcpse_temp->template p2p<propSupport,propDomain>();
148 template<
unsigned int propSupport,
unsigned int propDomain,
size_t N1>
150 auto dcpse_temp = (Dcpse<particlesSupport_type::dims, VerletList_type, particlesSupport_type, particlesDomain_type>*) dcpse;
151 dcpse_temp->template p2p<propSupport,propDomain,N1>();
179 auto dcpse_temp = (Dcpse<particlesSupport_type::dims, VerletList_type, particlesSupport_type, particlesDomain_type> *) dcpse;
180 dcpse_temp->initializeUpdate(particlesSupport,particlesDomain);
Class to perform particle to particle interpolation using DC-PSE kernels.
void p2p()
Method to perform the particle to particle interpolation of SCALAR fields using DC-PSE kernels.
void update()
Method for Updating the DCPSE Operator by recomputing DCPSE Kernels.
PPInterpolation(particlesSupport_type &particlesSupport, particlesDomain_type &particlesDomain, VerletList_type &verletList, unsigned int ord, typename particlesSupport_type::stype rCut, support_options opt=support_options::RADIUS)
Constructor for Creating the DCPSE Operator Dx and objects and computes DCPSE Kernels.
This class implement the point shape in an N-dimensional space.