![]() |
Peano
|
Leapfrog ODE integrator. More...
Public Member Functions | |
__init__ (self, name, cfl_factor, initial_time_step_size, enter_cell_kernel="", touch_particles_of_set_first_time_kernel="", touch_particles_of_set_last_time_kernel="", particles_per_cell=0, min_h=0.005, max_h=0.3, add_partid=False) | |
Initialise the particle. | |
touch_particles_of_set_first_time_kernel (self) | |
touch_particles_of_set_first_time_kernel (self, value) | |
touch_particles_of_set_last_time_kernel (self) | |
touch_particles_of_set_last_time_kernel (self, value) | |
cell_kernel (self) | |
cell_kernel (self, value) | |
add_to_reduction (self, value) | |
algorithm_steps (self) | |
Return sequence of algorithm steps that have to be called per time step. | |
initialisation_steps (self) | |
Return sequence of algorithm steps that have to be performed throughout initialisation. | |
readme_descriptor (self) | |
Create default readme descriptor. | |
![]() | |
configure (self, namespace, association, subdirectory="") | |
Configure output. | |
additional_load_and_store_arguments (self) | |
additional_load_and_store_arguments (self, new_arguments) | |
hosts_smart_pointer_attribute (self) | |
Does class host a smart pointer attribute. | |
![]() | |
get_full_qualified_type (self) | |
get_logical_type_name (self) | |
What should the data type be called within the data repository, or within action sets. | |
get_enumeration_type (self) | |
What should the data type be called within the data repository. | |
additional_load_and_store_arguments_for_other_dof (self, argument_name, use_dof_association=None) | |
You can make Peano's store and load arguments of any DoF depend on other DoFs that you have loaded before. | |
subnamespace (self) | |
Data Fields | |
cfl_factor | |
initial_time_step_size | |
velocity | |
accelerator | |
partid | |
enter_cell_kernel | |
touch_particles_of_set_first_time_kernel | |
touch_particles_of_set_last_time_kernel | |
![]() | |
particles_per_cell | |
min_h | |
max_h | |
name | |
![]() | |
name | |
partid | |
![]() | |
generator | |
data | |
peano4_mpi_and_storage_aspect | |
![]() | |
association | |
name | |
namespace | |
subdirectory | |
Protected Member Functions | |
_setup_algorithm_steps_dict (self) | |
Create a repository of algorithmic steps which are then ordered into the actual time stepping sequence. | |
_setup_algorithm_steps (self) | |
Create algorithm steps behind leapfrog. | |
_setup_initialisation_steps (self) | |
Technically nothing really required, but. | |
![]() | |
_dependency_checks_modify_steps (self, steplist, step_type_name, peano4_event_enum) | |
Add dependency checks as well as mesh consistency checks to the algorithm steps. | |
_add_dependency_checks (self) | |
Add dependency (particle consistency) checks. | |
Protected Attributes | |
_algorithm_steps_dict | |
_algorithm_steps | |
_initialisation_steps | |
![]() | |
_algorithm_steps | |
_initialisation_steps | |
![]() | |
_additional_load_and_store_arguments | |
![]() | |
_additional_load_and_store_arguments | |
Additional Inherited Members | |
![]() | |
str | DependencyChecks_Attribute_Prefix = "dependencyChecks" |
list | DependencyChecks_Ifdefs = ["PeanoDebug > 0"] |
![]() | |
str | readme_package_descriptor |
Leapfrog ODE integrator.
Simple particle with a fixed interaction radius h which moves according to leapfrog KDK scheme. By default, it uses global time stepping, i.e. the combination of maximum velocity and minimal mesh size determines the time step size of the subsequent time step. Besides the default variables x and h, the particle has the following properties:
You can add further properties via
myparticle.data.add_attribute( peano4.dastgen2.Peano4DoubleArray("myFancyArray","Dimensions") )
in your code. Or you can create a subclass which adds additional fields after it has called the baseline constructor.
You will need to add further properties for any SPH project.
Study swift2.particle.ExplicitEulerFixedSearchRadius for further information including all parameter documentation.
add_partid | Whether to add a particle ID. Normally, that is done in the Particle super class if PeanoDebug > 0. For certain tests however, a particle ID is required even in release mode. So switch this on if you need it and are building release mode. |
Definition at line 14 of file LeapfrogFixedSearchRadius.py.
swift2.particle.LeapfrogFixedSearchRadius.LeapfrogFixedSearchRadius.__init__ | ( | self, | |
name, | |||
particles_per_cell, | |||
min_h, | |||
max_h = "", | |||
touch_particles_of_set_first_time_kernel = "", | |||
touch_particles_of_set_last_time_kernel = "", | |||
particles_per_cell = 0, | |||
min_h = 0.005, | |||
max_h = 0.3, | |||
add_partid = False ) |
Initialise the particle.
This is the baseclass for a particle, i.e. we only add the absolute minimum of information to a particle. As we inherit from the toolbox particle, we already have some attributes defined. These are the guys which are not explicitly visible from the code snippet below, i.e. they are introduced by the superclass constructor.
Here's an overview of pre-defined attributes that each and every particle hosts:
Reimplemented from swift2.particle.Particle.Particle.
Definition at line 48 of file LeapfrogFixedSearchRadius.py.
References swift2.particle.LeapfrogFixedSearchRadius.LeapfrogFixedSearchRadius.__init__().
Referenced by swift2.particle.LeapfrogFixedSearchRadius.LeapfrogFixedSearchRadius.__init__().
|
protected |
Create algorithm steps behind leapfrog.
Leapfrog consists basically of four steps per particle. We first determine the force. Then we update the velocity by half a timestep and move the particle by a full timestep. Then the force is re-computed and the second half of the velocity update is done. Some variations of this KDK form re-arrange the steps executed per timestep to avoid a second force loop.
Definition at line 308 of file LeapfrogFixedSearchRadius.py.
References swift2.particle.LeapfrogFixedSearchRadius.LeapfrogFixedSearchRadius._algorithm_steps_dict.
Referenced by swift2.particle.tests.testDensityCalculation.testDensityCalculation.__init__().
|
protected |
Create a repository of algorithmic steps which are then ordered into the actual time stepping sequence.
Definition at line 143 of file LeapfrogFixedSearchRadius.py.
References swift2.particle.ExplicitEulerDynamicSearchRadius.ExplicitEulerDynamicSearchRadius.cfl_factor, swift2.particle.ExplicitEulerFixedSearchRadius.ExplicitEulerFixedSearchRadius.cfl_factor, swift2.particle.LeapfrogFixedSearchRadius.LeapfrogFixedSearchRadius.cfl_factor, swift2.particle.tests.DisappearingParticleTest.DisappearingParticleTest.cfl_factor, swift2.particle.ExplicitEulerDynamicSearchRadius.ExplicitEulerDynamicSearchRadius.initial_time_step_size, swift2.particle.ExplicitEulerFixedSearchRadius.ExplicitEulerFixedSearchRadius.initial_time_step_size, swift2.particle.LeapfrogFixedSearchRadius.LeapfrogFixedSearchRadius.initial_time_step_size, swift2.particle.tests.DisappearingParticleTest.DisappearingParticleTest.initial_time_step_size, dastgen2.attributes.Attribute.Attribute.name(), exahype2.solvers.aderdg.kernels.Gemms.Gemms.name, exahype2.solvers.elliptic.ConstrainedPoissonEquationForMarkerOnCells.ConstrainedPoissonEquationForMarkerOnCells.name(), exahype2.solvers.fv.FV.FV.name(), exahype2.solvers.rkfd.CellCenteredFiniteDifferences.CellCenteredFiniteDifferences.name(), peano4.datamodel.DoF.DoF.name, peano4.solversteps.Step.Step.name, peano4.solversteps.UserActionSet.UserActionSet.name, peano4.toolbox.particles.Particle.Particle.name, swift2.particle.AlgorithmStep.AlgorithmStep.name, swift2.particle.Particle.Particle.name, swift2.particle.tests.DisappearingParticleTest.DisappearingParticleTest.name, swift2.particle.tests.testLeapfrogFixedTimeStepSize.testLeapfrogFixedTimeStepSize.name, convert::data::Variable.name, solvers.api.Solver.Solver.name(), and api.solvers.Solver.Solver.name().
|
protected |
Technically nothing really required, but.
Definition at line 335 of file LeapfrogFixedSearchRadius.py.
References swift2.particle.LeapfrogFixedSearchRadius.LeapfrogFixedSearchRadius._algorithm_steps_dict.
Referenced by swift2.particle.tests.testDensityCalculation.testDensityCalculation.__init__().
swift2.particle.LeapfrogFixedSearchRadius.LeapfrogFixedSearchRadius.add_to_reduction | ( | self, | |
value ) |
Definition at line 130 of file LeapfrogFixedSearchRadius.py.
References swift2.particle.LeapfrogFixedSearchRadius.LeapfrogFixedSearchRadius._algorithm_steps_dict.
swift2.particle.LeapfrogFixedSearchRadius.LeapfrogFixedSearchRadius.algorithm_steps | ( | self | ) |
Return sequence of algorithm steps that have to be called per time step.
Reimplemented from swift2.particle.Particle.Particle.
Definition at line 135 of file LeapfrogFixedSearchRadius.py.
References swift2.particle.ExplicitEulerFixedSearchRadius.ExplicitEulerFixedSearchRadius._algorithm_steps, swift2.particle.LeapfrogFixedSearchRadius.LeapfrogFixedSearchRadius._algorithm_steps, swift2.particle.Particle.Particle._algorithm_steps, swift2.particle.SPHLeapfrogFixedSearchRadius.SPHLeapfrogFixedSearchRadius._algorithm_steps, and swift2.particle.tests.testDensityCalculation.testDensityCalculation._algorithm_steps.
Referenced by swift2.particle.Particle.Particle._add_dependency_checks().
swift2.particle.LeapfrogFixedSearchRadius.LeapfrogFixedSearchRadius.cell_kernel | ( | self | ) |
Definition at line 123 of file LeapfrogFixedSearchRadius.py.
References swift2.particle.LeapfrogFixedSearchRadius.LeapfrogFixedSearchRadius._algorithm_steps_dict.
swift2.particle.LeapfrogFixedSearchRadius.LeapfrogFixedSearchRadius.cell_kernel | ( | self, | |
value ) |
Definition at line 127 of file LeapfrogFixedSearchRadius.py.
References swift2.particle.LeapfrogFixedSearchRadius.LeapfrogFixedSearchRadius._algorithm_steps_dict.
swift2.particle.LeapfrogFixedSearchRadius.LeapfrogFixedSearchRadius.initialisation_steps | ( | self | ) |
Return sequence of algorithm steps that have to be performed throughout initialisation.
Reimplemented from swift2.particle.Particle.Particle.
Definition at line 139 of file LeapfrogFixedSearchRadius.py.
References swift2.particle.LeapfrogFixedSearchRadius.LeapfrogFixedSearchRadius._initialisation_steps, swift2.particle.Particle.Particle._initialisation_steps, swift2.particle.SPHLeapfrogFixedSearchRadius.SPHLeapfrogFixedSearchRadius._initialisation_steps, and swift2.particle.tests.testDensityCalculation.testDensityCalculation._initialisation_steps.
swift2.particle.LeapfrogFixedSearchRadius.LeapfrogFixedSearchRadius.readme_descriptor | ( | self | ) |
Create default readme descriptor.
You might want to overwrite this for your particular particle species to get more detailed info the the README.md file generated by Peano.
Reimplemented from swift2.particle.Particle.Particle.
Definition at line 346 of file LeapfrogFixedSearchRadius.py.
References swift2.particle.ExplicitEulerDynamicSearchRadius.ExplicitEulerDynamicSearchRadius.cfl_factor, swift2.particle.ExplicitEulerFixedSearchRadius.ExplicitEulerFixedSearchRadius.cfl_factor, swift2.particle.LeapfrogFixedSearchRadius.LeapfrogFixedSearchRadius.cfl_factor, swift2.particle.tests.DisappearingParticleTest.DisappearingParticleTest.cfl_factor, swift2.particle.ExplicitEulerDynamicSearchRadius.ExplicitEulerDynamicSearchRadius.initial_time_step_size, swift2.particle.ExplicitEulerFixedSearchRadius.ExplicitEulerFixedSearchRadius.initial_time_step_size, swift2.particle.LeapfrogFixedSearchRadius.LeapfrogFixedSearchRadius.initial_time_step_size, and swift2.particle.tests.DisappearingParticleTest.DisappearingParticleTest.initial_time_step_size.
swift2.particle.LeapfrogFixedSearchRadius.LeapfrogFixedSearchRadius.touch_particles_of_set_first_time_kernel | ( | self | ) |
Definition at line 99 of file LeapfrogFixedSearchRadius.py.
References swift2.particle.LeapfrogFixedSearchRadius.LeapfrogFixedSearchRadius._algorithm_steps_dict.
Referenced by swift2.particle.ExplicitEulerDynamicSearchRadius.ExplicitEulerDynamicSearchRadius.algorithm_steps(), swift2.particle.tests.DisappearingParticleTest.DisappearingParticleTest.algorithm_steps(), and swift2.particle.tests.testLeapfrogFixedTimeStepSize.testLeapfrogFixedTimeStepSize.algorithm_steps().
swift2.particle.LeapfrogFixedSearchRadius.LeapfrogFixedSearchRadius.touch_particles_of_set_first_time_kernel | ( | self, | |
value ) |
Definition at line 105 of file LeapfrogFixedSearchRadius.py.
References swift2.particle.LeapfrogFixedSearchRadius.LeapfrogFixedSearchRadius._algorithm_steps_dict.
Referenced by swift2.particle.ExplicitEulerDynamicSearchRadius.ExplicitEulerDynamicSearchRadius.algorithm_steps(), swift2.particle.tests.DisappearingParticleTest.DisappearingParticleTest.algorithm_steps(), and swift2.particle.tests.testLeapfrogFixedTimeStepSize.testLeapfrogFixedTimeStepSize.algorithm_steps().
swift2.particle.LeapfrogFixedSearchRadius.LeapfrogFixedSearchRadius.touch_particles_of_set_last_time_kernel | ( | self | ) |
Definition at line 111 of file LeapfrogFixedSearchRadius.py.
References swift2.particle.LeapfrogFixedSearchRadius.LeapfrogFixedSearchRadius._algorithm_steps_dict.
Referenced by swift2.particle.ExplicitEulerDynamicSearchRadius.ExplicitEulerDynamicSearchRadius.algorithm_steps().
swift2.particle.LeapfrogFixedSearchRadius.LeapfrogFixedSearchRadius.touch_particles_of_set_last_time_kernel | ( | self, | |
value ) |
Definition at line 117 of file LeapfrogFixedSearchRadius.py.
References swift2.particle.LeapfrogFixedSearchRadius.LeapfrogFixedSearchRadius._algorithm_steps_dict.
Referenced by swift2.particle.ExplicitEulerDynamicSearchRadius.ExplicitEulerDynamicSearchRadius.algorithm_steps().
|
protected |
Definition at line 332 of file LeapfrogFixedSearchRadius.py.
Referenced by swift2.particle.SPHLeapfrogFixedSearchRadius.SPHLeapfrogFixedSearchRadius._setup_algorithm_steps(), swift2.particle.ExplicitEulerFixedSearchRadius.ExplicitEulerFixedSearchRadius.add_to_reduction(), swift2.particle.ExplicitEulerFixedSearchRadius.ExplicitEulerFixedSearchRadius.algorithm_steps(), swift2.particle.LeapfrogFixedSearchRadius.LeapfrogFixedSearchRadius.algorithm_steps(), swift2.particle.ExplicitEulerFixedSearchRadius.ExplicitEulerFixedSearchRadius.cell_kernel(), swift2.particle.ExplicitEulerFixedSearchRadius.ExplicitEulerFixedSearchRadius.cell_kernel(), swift2.particle.ExplicitEulerFixedSearchRadius.ExplicitEulerFixedSearchRadius.initialisation_steps(), swift2.particle.SPHParticle.SPHParticle.switch_namespace_of_all_particle_iterators(), swift2.particle.ExplicitEulerFixedSearchRadius.ExplicitEulerFixedSearchRadius.touch_particles_of_set_first_time_kernel(), swift2.particle.ExplicitEulerFixedSearchRadius.ExplicitEulerFixedSearchRadius.touch_particles_of_set_first_time_kernel(), swift2.particle.ExplicitEulerFixedSearchRadius.ExplicitEulerFixedSearchRadius.touch_particles_of_set_last_time_kernel(), and swift2.particle.ExplicitEulerFixedSearchRadius.ExplicitEulerFixedSearchRadius.touch_particles_of_set_last_time_kernel().
|
protected |
Definition at line 155 of file LeapfrogFixedSearchRadius.py.
Referenced by swift2.particle.LeapfrogFixedSearchRadius.LeapfrogFixedSearchRadius._setup_algorithm_steps(), swift2.particle.LeapfrogFixedSearchRadius.LeapfrogFixedSearchRadius._setup_initialisation_steps(), swift2.particle.LeapfrogFixedSearchRadius.LeapfrogFixedSearchRadius.add_to_reduction(), swift2.particle.LeapfrogFixedSearchRadius.LeapfrogFixedSearchRadius.cell_kernel(), swift2.particle.LeapfrogFixedSearchRadius.LeapfrogFixedSearchRadius.cell_kernel(), swift2.particle.LeapfrogFixedSearchRadius.LeapfrogFixedSearchRadius.touch_particles_of_set_first_time_kernel(), swift2.particle.LeapfrogFixedSearchRadius.LeapfrogFixedSearchRadius.touch_particles_of_set_first_time_kernel(), swift2.particle.LeapfrogFixedSearchRadius.LeapfrogFixedSearchRadius.touch_particles_of_set_last_time_kernel(), and swift2.particle.LeapfrogFixedSearchRadius.LeapfrogFixedSearchRadius.touch_particles_of_set_last_time_kernel().
|
protected |
swift2.particle.LeapfrogFixedSearchRadius.LeapfrogFixedSearchRadius.accelerator |
Definition at line 73 of file LeapfrogFixedSearchRadius.py.
swift2.particle.LeapfrogFixedSearchRadius.LeapfrogFixedSearchRadius.cfl_factor |
Definition at line 68 of file LeapfrogFixedSearchRadius.py.
Referenced by swift2.particle.ExplicitEulerFixedSearchRadius.ExplicitEulerFixedSearchRadius.__setup_algorithm_steps(), swift2.particle.LeapfrogFixedSearchRadius.LeapfrogFixedSearchRadius._setup_algorithm_steps_dict(), swift2.particle.ExplicitEulerDynamicSearchRadius.ExplicitEulerDynamicSearchRadius.algorithm_steps(), swift2.particle.ExplicitEulerFixedSearchRadius.ExplicitEulerFixedSearchRadius.readme_descriptor(), and swift2.particle.LeapfrogFixedSearchRadius.LeapfrogFixedSearchRadius.readme_descriptor().
swift2.particle.LeapfrogFixedSearchRadius.LeapfrogFixedSearchRadius.enter_cell_kernel |
Definition at line 85 of file LeapfrogFixedSearchRadius.py.
swift2.particle.LeapfrogFixedSearchRadius.LeapfrogFixedSearchRadius.initial_time_step_size |
Definition at line 69 of file LeapfrogFixedSearchRadius.py.
Referenced by swift2.particle.ExplicitEulerFixedSearchRadius.ExplicitEulerFixedSearchRadius.__setup_algorithm_steps(), swift2.particle.LeapfrogFixedSearchRadius.LeapfrogFixedSearchRadius._setup_algorithm_steps_dict(), swift2.particle.ExplicitEulerDynamicSearchRadius.ExplicitEulerDynamicSearchRadius.algorithm_steps(), swift2.particle.ExplicitEulerFixedSearchRadius.ExplicitEulerFixedSearchRadius.readme_descriptor(), and swift2.particle.LeapfrogFixedSearchRadius.LeapfrogFixedSearchRadius.readme_descriptor().
swift2.particle.LeapfrogFixedSearchRadius.LeapfrogFixedSearchRadius.partid |
Definition at line 78 of file LeapfrogFixedSearchRadius.py.
swift2.particle.LeapfrogFixedSearchRadius.LeapfrogFixedSearchRadius.touch_particles_of_set_first_time_kernel |
Definition at line 86 of file LeapfrogFixedSearchRadius.py.
Referenced by swift2.particle.ExplicitEulerDynamicSearchRadius.ExplicitEulerDynamicSearchRadius.algorithm_steps(), swift2.particle.tests.DisappearingParticleTest.DisappearingParticleTest.algorithm_steps(), and swift2.particle.tests.testLeapfrogFixedTimeStepSize.testLeapfrogFixedTimeStepSize.algorithm_steps().
swift2.particle.LeapfrogFixedSearchRadius.LeapfrogFixedSearchRadius.touch_particles_of_set_last_time_kernel |
Definition at line 89 of file LeapfrogFixedSearchRadius.py.
Referenced by swift2.particle.ExplicitEulerDynamicSearchRadius.ExplicitEulerDynamicSearchRadius.algorithm_steps().
swift2.particle.LeapfrogFixedSearchRadius.LeapfrogFixedSearchRadius.velocity |
Definition at line 72 of file LeapfrogFixedSearchRadius.py.