diff --git a/bfps/cpp/particles/particles_interp_spline.hpp b/bfps/cpp/particles/particles_generic_interp.hpp similarity index 74% rename from bfps/cpp/particles/particles_interp_spline.hpp rename to bfps/cpp/particles/particles_generic_interp.hpp index 8d1fa9a285b9000dc85a96bea6b45f758b03603a..9832bce98eeb84b1907a12f7212f3d258b93955c 100644 --- a/bfps/cpp/particles/particles_interp_spline.hpp +++ b/bfps/cpp/particles/particles_generic_interp.hpp @@ -1,23 +1,24 @@ -#ifndef PARTICLES_INTER_SPLINE_HPP -#define PARTICLES_INTER_SPLINE_HPP +#ifndef PARTICLES_GENERIC_INTERP_HPP +#define PARTICLES_GENERIC_INTERP_HPP template <class real_number, int interp_neighbours, int mode> -class particles_interp_spline; +class particles_generic_interp; +#include "Lagrange_polys.hpp" #include "spline.hpp" template <> -class particles_interp_spline<double, 1,0>{ +class particles_generic_interp<double, 1,0>{ public: using real_number = double; void compute_beta(const int in_derivative, const double in_part_val, double poly_val[]) const { - beta_n1_m0(in_derivative, in_part_val, poly_val); + beta_Lagrange_n1(in_derivative, in_part_val, poly_val); } }; template <> -class particles_interp_spline<double, 1,1>{ +class particles_generic_interp<double, 1,1>{ public: using real_number = double; @@ -27,7 +28,7 @@ public: }; template <> -class particles_interp_spline<double, 1,2>{ +class particles_generic_interp<double, 1,2>{ public: using real_number = double; @@ -37,17 +38,17 @@ public: }; template <> -class particles_interp_spline<double, 2,0>{ +class particles_generic_interp<double, 2,0>{ public: using real_number = double; void compute_beta(const int in_derivative, const double in_part_val, double poly_val[]) const { - beta_n2_m0(in_derivative, in_part_val, poly_val); + beta_Lagrange_n2(in_derivative, in_part_val, poly_val); } }; template <> -class particles_interp_spline<double, 2,1>{ +class particles_generic_interp<double, 2,1>{ public: using real_number = double; @@ -57,7 +58,7 @@ public: }; template <> -class particles_interp_spline<double, 2,2>{ +class particles_generic_interp<double, 2,2>{ public: using real_number = double; @@ -67,17 +68,17 @@ public: }; template <> -class particles_interp_spline<double, 3,0>{ +class particles_generic_interp<double, 3,0>{ public: using real_number = double; void compute_beta(const int in_derivative, const double in_part_val, double poly_val[]) const { - beta_n3_m0(in_derivative, in_part_val, poly_val); + beta_Lagrange_n3(in_derivative, in_part_val, poly_val); } }; template <> -class particles_interp_spline<double, 3,1>{ +class particles_generic_interp<double, 3,1>{ public: using real_number = double; @@ -87,7 +88,7 @@ public: }; template <> -class particles_interp_spline<double, 3,2>{ +class particles_generic_interp<double, 3,2>{ public: using real_number = double; @@ -97,17 +98,17 @@ public: }; template <> -class particles_interp_spline<double, 4,0>{ +class particles_generic_interp<double, 4,0>{ public: using real_number = double; void compute_beta(const int in_derivative, const double in_part_val, double poly_val[]) const { - beta_n4_m0(in_derivative, in_part_val, poly_val); + beta_Lagrange_n4(in_derivative, in_part_val, poly_val); } }; template <> -class particles_interp_spline<double, 4,1>{ +class particles_generic_interp<double, 4,1>{ public: using real_number = double; @@ -117,7 +118,7 @@ public: }; template <> -class particles_interp_spline<double, 4,2>{ +class particles_generic_interp<double, 4,2>{ public: using real_number = double; @@ -127,17 +128,17 @@ public: }; template <> -class particles_interp_spline<double, 5,0>{ +class particles_generic_interp<double, 5,0>{ public: using real_number = double; void compute_beta(const int in_derivative, const double in_part_val, double poly_val[]) const { - beta_n5_m0(in_derivative, in_part_val, poly_val); + beta_Lagrange_n5(in_derivative, in_part_val, poly_val); } }; template <> -class particles_interp_spline<double, 5,1>{ +class particles_generic_interp<double, 5,1>{ public: using real_number = double; @@ -147,7 +148,7 @@ public: }; template <> -class particles_interp_spline<double, 5,2>{ +class particles_generic_interp<double, 5,2>{ public: using real_number = double; @@ -158,17 +159,17 @@ public: template <> -class particles_interp_spline<double, 6,0>{ +class particles_generic_interp<double, 6,0>{ public: using real_number = double; void compute_beta(const int in_derivative, const double in_part_val, double poly_val[]) const { - beta_n6_m0(in_derivative, in_part_val, poly_val); + beta_Lagrange_n6(in_derivative, in_part_val, poly_val); } }; template <> -class particles_interp_spline<double, 6,1>{ +class particles_generic_interp<double, 6,1>{ public: using real_number = double; @@ -178,7 +179,7 @@ public: }; template <> -class particles_interp_spline<double, 6,2>{ +class particles_generic_interp<double, 6,2>{ public: using real_number = double; @@ -189,17 +190,17 @@ public: template <> -class particles_interp_spline<double, 7,0>{ +class particles_generic_interp<double, 7,0>{ public: using real_number = double; void compute_beta(const int in_derivative, const double in_part_val, double poly_val[]) const { - beta_n7_m0(in_derivative, in_part_val, poly_val); + beta_Lagrange_n7(in_derivative, in_part_val, poly_val); } }; template <> -class particles_interp_spline<double, 7,1>{ +class particles_generic_interp<double, 7,1>{ public: using real_number = double; @@ -209,7 +210,7 @@ public: }; template <> -class particles_interp_spline<double, 7,2>{ +class particles_generic_interp<double, 7,2>{ public: using real_number = double; @@ -220,17 +221,17 @@ public: template <> -class particles_interp_spline<double, 8,0>{ +class particles_generic_interp<double, 8,0>{ public: using real_number = double; void compute_beta(const int in_derivative, const double in_part_val, double poly_val[]) const { - beta_n8_m0(in_derivative, in_part_val, poly_val); + beta_Lagrange_n8(in_derivative, in_part_val, poly_val); } }; template <> -class particles_interp_spline<double, 8,1>{ +class particles_generic_interp<double, 8,1>{ public: using real_number = double; @@ -240,7 +241,7 @@ public: }; template <> -class particles_interp_spline<double, 8,2>{ +class particles_generic_interp<double, 8,2>{ public: using real_number = double; @@ -251,17 +252,18 @@ public: template <> -class particles_interp_spline<double, 9,0>{ +class particles_generic_interp<double, 9,0>{ public: using real_number = double; void compute_beta(const int in_derivative, const double in_part_val, double poly_val[]) const { + // TODO use beta_Lagrange_n9(in_derivative, in_part_val, poly_val); beta_n9_m0(in_derivative, in_part_val, poly_val); } }; template <> -class particles_interp_spline<double, 9,1>{ +class particles_generic_interp<double, 9,1>{ public: using real_number = double; @@ -271,7 +273,7 @@ public: }; template <> -class particles_interp_spline<double, 9,2>{ +class particles_generic_interp<double, 9,2>{ public: using real_number = double; @@ -282,17 +284,18 @@ public: template <> -class particles_interp_spline<double, 10,0>{ +class particles_generic_interp<double, 10,0>{ public: using real_number = double; void compute_beta(const int in_derivative, const double in_part_val, double poly_val[]) const { + // TODO use beta_Lagrange_n10(in_derivative, in_part_val, poly_val); beta_n10_m0(in_derivative, in_part_val, poly_val); } }; template <> -class particles_interp_spline<double, 10,1>{ +class particles_generic_interp<double, 10,1>{ public: using real_number = double; @@ -302,7 +305,7 @@ public: }; template <> -class particles_interp_spline<double, 10,2>{ +class particles_generic_interp<double, 10,2>{ public: using real_number = double; @@ -311,4 +314,4 @@ public: } }; -#endif +#endif//PARTICLES_INTERP_SPLINE_HPP diff --git a/bfps/cpp/particles/particles_system_builder.hpp b/bfps/cpp/particles/particles_system_builder.hpp index d92c69065e22e0c4e5bc38c1941c9396bdef2c90..6a61a5b340588fb22074ffa559f5947b7fbb9840 100644 --- a/bfps/cpp/particles/particles_system_builder.hpp +++ b/bfps/cpp/particles/particles_system_builder.hpp @@ -6,7 +6,7 @@ #include "abstract_particles_system.hpp" #include "particles_system.hpp" #include "particles_input_hdf5.hpp" -#include "particles_interp_spline.hpp" +#include "particles_generic_interp.hpp" #include "field.hpp" #include "kspace.hpp" @@ -192,8 +192,8 @@ struct particles_system_build_container { const particles_rnumber my_spatial_up_limit_z = particles_rnumber(local_field_offset[IDX_Z]+local_field_dims[IDX_Z])*spatial_partition_width[IDX_Z]; // Create the particles system - particles_system<partsize_t, particles_rnumber, field_rnumber, field<field_rnumber, be, THREE>, particles_interp_spline<particles_rnumber, interpolation_size,spline_mode>, interpolation_size>* part_sys - = new particles_system<partsize_t, particles_rnumber, field_rnumber, field<field_rnumber, be, THREE>, particles_interp_spline<particles_rnumber, interpolation_size,spline_mode>, interpolation_size>(field_grid_dim, + particles_system<partsize_t, particles_rnumber, field_rnumber, field<field_rnumber, be, THREE>, particles_generic_interp<particles_rnumber, interpolation_size,spline_mode>, interpolation_size>* part_sys + = new particles_system<partsize_t, particles_rnumber, field_rnumber, field<field_rnumber, be, THREE>, particles_generic_interp<particles_rnumber, interpolation_size,spline_mode>, interpolation_size>(field_grid_dim, spatial_box_width, spatial_box_offset, spatial_partition_width, diff --git a/setup.py b/setup.py index eaa5c929f0a57609ba69dd0b4185c7102ffd2b39..2ccc9c77bb517b7c60ed2b84517ab018549dd0fe 100644 --- a/setup.py +++ b/setup.py @@ -129,13 +129,13 @@ particle_headers = [ 'cpp/particles/particles_adams_bashforth.hpp', 'cpp/particles/particles_field_computer.hpp', 'cpp/particles/particles_input_hdf5.hpp', - 'cpp/particles/particles_interp_spline.hpp', + 'cpp/particles/particles_generic_interp.hpp', 'cpp/particles/particles_output_hdf5.hpp', 'cpp/particles/particles_output_mpiio.hpp', 'cpp/particles/particles_system_builder.hpp', 'cpp/particles/particles_system.hpp', 'cpp/particles/particles_utils.hpp', - 'cpp/particles/env_utils.hpp'] + 'cpp/particles/env_utils.hpp' ] full_code_headers = ['cpp/full_code/main_code.hpp', 'cpp/full_code/codes_with_no_output.hpp',