4 #ifndef _EXAMPLES__BORIS__BINDINGS__WRAPPER_SIMPLE_PHYSICS_SOLVER_HPP_
5 #define _EXAMPLES__BORIS__BINDINGS__WRAPPER_SIMPLE_PHYSICS_SOLVER_HPP_
12 #include "../particle_cloud.hpp"
38 shared_ptr<solver::SimplePhysicsSolverConfig>
config;
44 virtual size_t vector_to_array(
const vector<scalar>& vec, scalar* arr);
45 virtual size_t vector2d_to_array(
const vector<scalar>& vec, scalar* arr);
47 virtual size_t pack_positions(
const particle_cloud_type& particles, scalar* packed)
override;
49 virtual size_t pack_velocities(
const particle_cloud_type& particles, scalar* packed)
override;
51 virtual size_t pack_charges(
const particle_cloud_type& particles, scalar* packed)
override;
53 virtual size_t pack_masses(
const particle_cloud_type& particles, scalar* packed)
override;
55 virtual size_t pack_all(
const particle_cloud_type& particles,
56 scalar* packed_positions, scalar* packed_velocities,
57 scalar* packed_charges, scalar* packed_masses)
override;
59 virtual vector<scalar> unpack_1d(
const scalar* packed,
const size_t num_particles);
61 const size_t num_particles);
71 virtual scalar energy(
const particle_cloud_type& particles,
const time
t)
override;
76 virtual void set_config(shared_ptr<solver::SimplePhysicsSolverConfig> config);
77 virtual scalar omega_b()
const;
78 virtual scalar omega_e()
const;
79 virtual scalar epsilon()
const;
81 virtual void log(el::base::type::ostream_t& os)
const;
86 template<
typename scalar,
typename time>
90 template<
typename scalar,
typename time,
typename ArgT>
94 template<
typename scalar,
typename time,
typename ArgT,
typename... ArgsT>
103 #endif // _EXAMPLES__BORIS__BINDINGS__WRAPPER_SIMPLE_PHYSICS_SOLVER_HPP_
shared_ptr< ParticleCloud< scalar > > particle_cloud_type
shared_ptr< solver::SimplePhysicsSolverConfig > config
vector< precision > ParticleCloudComponent
void get_b_field_vector(const SimplePhysicsSolverConfig *config, double *b_field_vector)
vector< precision > ParticleComponent
void setup(shared_ptr< WrapperSimplePhysicsSolver< scalar, time >> wrapper, ArgT arg, ArgsT...args)