![]() |
ASPECT
|
Public Member Functions | |
virtual | ~Interface ()=default |
virtual void | initialize () |
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 |
virtual bool | new_integration_step () |
virtual std::size_t | get_data_size () const |
virtual const void * | read_data (const typename ParticleHandler< dim >::particle_iterator &particle, const void *data) |
virtual void * | write_data (const typename ParticleHandler< dim >::particle_iterator &particle, void *data) const |
virtual void | parse_parameters (ParameterHandler &prm) |
Static Public Member Functions | |
static void | declare_parameters (ParameterHandler &prm) |
An abstract class defining virtual methods for performing integration of particle paths through the simulation velocity field.
Definition at line 47 of file interface.h.
|
virtualdefault |
Destructor. Made virtual so that derived classes can be created and destroyed through pointers to the base class.
|
virtual |
Initialization function. This function is called once at the beginning of the program after parse_parameters is run.
Reimplemented in aspect::Particle::Integrator::RK2< dim >, and aspect::Particle::Integrator::RK4< dim >.
|
pure virtual |
Perform an integration step of moving the particles of one cell by the specified timestep dt. Implementations of this function must update the particle location. Between calls to this function the velocity at the updated particle positions is evaluated and passed as input argument during the next call.
[in] | begin_particle | An iterator to the first particle to be moved. |
[in] | end_particle | An iterator to the last particle to be moved. |
[in] | old_velocities | The velocities at t_n, i.e. before the particle movement, for all particles between begin_particle and end_particle at their current position. |
[in] | velocities | The velocities at the particle positions at t_{n+1}, i.e. after the particle movement. Note that this is the velocity at the old positions, but at the new time. It is the responsibility of this function to compute the new location of the particles. |
[in] | dt | The length of the integration timestep. |
Implemented in aspect::Particle::Integrator::RK2< dim >, aspect::Particle::Integrator::RK4< dim >, and aspect::Particle::Integrator::Euler< dim >.
|
virtual |
This function is called at the end of every integration step. In case of multi-step integrators it signals the beginning of a new integration step. The default implementation always returns false, which is ok for single-step integration methods.
Reimplemented in aspect::Particle::Integrator::RK2< dim >, and aspect::Particle::Integrator::RK4< dim >.
|
virtual |
Return data length of the integration related data required for communication in terms of number of bytes. When data about particles is transported from one processor to another, or stored on disk for snapshots, integrators get the chance to store whatever information they need with each particle. This function returns how many pieces of additional information a concrete integrator class needs to store for each particle.
|
virtual |
Read integration related data for a particle specified by particle_id from the data array. This function is called after transferring a particle to the local domain during an integration step.
[in] | data | A pointer into the data array. The pointer marks the position where this function starts reading. |
[in] | particle | An iterator pointing to the particle to read the data for. |
data
advanced by get_data_size() bytes.
|
virtual |
Write integration related data to a vector for a particle specified by particle_id. This function is called in cases where particles leave the local domain during an integration step to transfer this data to another process.
[in] | particle | An iterator pointing to the particle to write the data for. |
[in] | data | A pointer into the array of integrator data. |
data
advanced by get_data_size() bytes.
|
static |
Declare the parameters this class takes through input files. The default implementation of this function does not describe any parameters. Consequently, derived classes do not have to overload this function if they do not take any runtime parameters.
|
virtual |
Read the parameters this class declares from the parameter file. The default implementation of this function does not read any parameters. Consequently, derived classes do not have to overload this function if they do not take any runtime parameters.
Reimplemented in aspect::Particle::Integrator::RK2< dim >.