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> 38 using namespace ::Particles;
85 local_integrate_step(
const typename ParticleHandler<dim>::particle_iterator &begin_particle,
86 const typename ParticleHandler<dim>::particle_iterator &end_particle,
87 const std::vector<Tensor<1,dim>> &old_velocities,
88 const std::vector<Tensor<1,dim>> &velocities,
101 virtual bool new_integration_step();
115 virtual std::size_t get_data_size()
const;
126 virtual std::array<bool, 3> required_solution_vectors()
const = 0;
142 read_data(
const typename ParticleHandler<dim>::particle_iterator &particle,
159 write_data(
const typename ParticleHandler<dim>::particle_iterator &particle,
181 parse_parameters (ParameterHandler &prm);
211 const std::string &description,
212 void (*declare_parameters_function) (ParameterHandler &),
226 std::unique_ptr<Interface<dim>>
260 #define ASPECT_REGISTER_PARTICLE_INTEGRATOR(classname, name, description) \ 261 template class classname<2>; \ 262 template class classname<3>; \ 263 namespace ASPECT_REGISTER_PARTICLE_INTEGRATOR_ ## classname \ 265 aspect::internal::Plugins::RegisterHelper<aspect::Particle::Integrator::Interface<2>,classname<2>> \ 266 dummy_ ## classname ## _2d (&aspect::Particle::Integrator::register_particle_integrator<2>, \ 267 name, description); \ 268 aspect::internal::Plugins::RegisterHelper<aspect::Particle::Integrator::Interface<3>,classname<3>> \ 269 dummy_ ## classname ## _3d (&aspect::Particle::Integrator::register_particle_integrator<3>, \ 270 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)
std::string integrator_object_names()
void write_plugin_graph(std::ostream &output_stream)
void declare_parameters(ParameterHandler &prm)