21 #ifndef _aspect_particle_integrator_interface_h 22 #define _aspect_particle_integrator_interface_h 27 #include <deal.II/particles/particle.h> 28 #include <deal.II/particles/particle_handler.h> 29 #include <deal.II/base/parameter_handler.h> 37 using namespace ::Particles;
71 const typename ParticleHandler<dim>::particle_iterator &end_particle,
72 const std::vector<Tensor<1,dim>> &old_velocities,
73 const std::vector<Tensor<1,dim>> &velocities,
127 read_data(
const typename ParticleHandler<dim>::particle_iterator &particle,
144 write_data(
const typename ParticleHandler<dim>::particle_iterator &particle,
175 const std::string &description,
176 void (*declare_parameters_function) (ParameterHandler &),
190 std::unique_ptr<Interface<dim>>
224 #define ASPECT_REGISTER_PARTICLE_INTEGRATOR(classname, name, description) \ 225 template class classname<2>; \ 226 template class classname<3>; \ 227 namespace ASPECT_REGISTER_PARTICLE_INTEGRATOR_ ## classname \ 229 aspect::internal::Plugins::RegisterHelper<aspect::Particle::Integrator::Interface<2>,classname<2>> \ 230 dummy_ ## classname ## _2d (&aspect::Particle::Integrator::register_particle_integrator<2>, \ 231 name, description); \ 232 aspect::internal::Plugins::RegisterHelper<aspect::Particle::Integrator::Interface<3>,classname<3>> \ 233 dummy_ ## classname ## _3d (&aspect::Particle::Integrator::register_particle_integrator<3>, \ 234 name, description); \ void register_particle_integrator(const std::string &name, const std::string &description, void(*declare_parameters_function)(ParameterHandler &), std::unique_ptr< Interface< dim >>(*factory_function)())
std::unique_ptr< Interface< dim > > create_particle_integrator(ParameterHandler &prm)
virtual void local_integrate_step(const typename ParticleHandler< dim >::particle_iterator &begin_particle, const typename ParticleHandler< dim >::particle_iterator &end_particle, const std::vector< Tensor< 1, dim >> &old_velocities, const std::vector< Tensor< 1, dim >> &velocities, const double dt)=0
std::string integrator_object_names()
void write_plugin_graph(std::ostream &output_stream)
virtual bool new_integration_step()
virtual void * write_data(const typename ParticleHandler< dim >::particle_iterator &particle, void *data) const
virtual std::size_t get_data_size() const
virtual const void * read_data(const typename ParticleHandler< dim >::particle_iterator &particle, const void *data)
static void declare_parameters(ParameterHandler &prm)
virtual std::array< bool, 3 > required_solution_vectors() const =0