![]() |
Peano
|
Extension of the explicit Euler to support dynamic search radius adoption. More...
Public Member Functions | |
__init__ (self, name, cfl_factor, initial_time_step_size, particle_particle_interaction_over_particle_sets_kernel="", touch_particles_of_set_first_time_kernel="", touch_particles_of_set_last_time_kernel="", number_of_interaction_partners=64, particles_per_cell=0, min_h=0.005, max_h=0.3) | |
Initialise the particle. | |
algorithm_steps (self) | |
The explicit Euler basically consists of two steps per particle. | |
initialisation_steps (self) | |
No particular initialisation required. | |
![]() | |
readme_descriptor (self) | |
Create default readme descriptor. | |
![]() | |
configure (self, namespace, association, subdirectory="") | |
I always need the MPI aspect, but I can't add the right one before I don't know whether this DaStGen model is used for vertices, faces or cells. | |
additional_load_and_store_arguments (self) | |
additional_load_and_store_arguments (self, new_arguments) | |
![]() | |
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 | |
velocity | |
accelerator | |
cfl_factor | |
initial_time_step_size | |
particle_particle_interaction_over_particle_sets_kernel | |
touch_particles_of_set_first_time_kernel | |
touch_particles_of_set_last_time_kernel | |
number_of_interaction_partners | |
![]() | |
particles_per_cell | |
min_h | |
max_h | |
name | |
![]() | |
name | |
partid | |
![]() | |
generator | |
data | |
peano4_mpi_and_storage_aspect | |
![]() | |
association | |
name | |
namespace | |
subdirectory | |
Additional Inherited Members | |
![]() | |
str | DependencyChecks_Attribute_Prefix = "dependencyChecks" |
list | DependencyChecks_Ifdefs = ["PeanoDebug > 0"] |
![]() | |
str | readme_package_descriptor |
![]() | |
_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. | |
![]() | |
_algorithm_steps | |
_initialisation_steps | |
![]() | |
_additional_load_and_store_arguments | |
![]() | |
_additional_load_and_store_arguments | |
Extension of the explicit Euler to support dynamic search radius adoption.
We try to keep a constant number of particles.
name: String To be in line with other conventions, I recommend you start with an uppercase letter. This has to be a valid C++ identifier, i.e. don't use any special symbols besides an underscore.
Definition at line 11 of file ExplicitEulerDynamicSearchRadius.py.
swift2.particle.ExplicitEulerDynamicSearchRadius.ExplicitEulerDynamicSearchRadius.__init__ | ( | self, | |
name, | |||
particles_per_cell, | |||
min_h, | |||
max_h = "", | |||
touch_particles_of_set_first_time_kernel = "", | |||
touch_particles_of_set_last_time_kernel = "", | |||
number_of_interaction_partners = 64, | |||
particles_per_cell = 0, | |||
min_h = 0.005, | |||
max_h = 0.3 ) |
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 30 of file ExplicitEulerDynamicSearchRadius.py.
References swift2.particle.ExplicitEulerDynamicSearchRadius.ExplicitEulerDynamicSearchRadius.__init__().
Referenced by swift2.particle.ExplicitEulerDynamicSearchRadius.ExplicitEulerDynamicSearchRadius.__init__().
swift2.particle.ExplicitEulerDynamicSearchRadius.ExplicitEulerDynamicSearchRadius.algorithm_steps | ( | self | ) |
The explicit Euler basically consists of two steps per particle.
We first determine the force. For this, we need access to the neighbours. The step solely alters the individual particle's state. In the next algorithm step, we need this state, as well as global data (the admissible time step size) to update position and velocity. We also determine the CFL condition here.
Reimplemented from swift2.particle.Particle.Particle.
Definition at line 71 of file ExplicitEulerDynamicSearchRadius.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(), api.solvers.Solver.Solver.name(), swift2.particle.ExplicitEulerDynamicSearchRadius.ExplicitEulerDynamicSearchRadius.number_of_interaction_partners, swift2.particle.ExplicitEulerDynamicSearchRadius.ExplicitEulerDynamicSearchRadius.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_first_time_kernel(), swift2.particle.LeapfrogFixedSearchRadius.LeapfrogFixedSearchRadius.touch_particles_of_set_first_time_kernel(), swift2.particle.ExplicitEulerFixedSearchRadius.ExplicitEulerFixedSearchRadius.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_first_time_kernel(), swift2.particle.tests.DisappearingParticleTest.DisappearingParticleTest.touch_particles_of_set_first_time_kernel, swift2.particle.tests.testLeapfrogFixedTimeStepSize.testLeapfrogFixedTimeStepSize.touch_particles_of_set_first_time_kernel, swift2.particle.ExplicitEulerDynamicSearchRadius.ExplicitEulerDynamicSearchRadius.touch_particles_of_set_last_time_kernel, swift2.particle.ExplicitEulerFixedSearchRadius.ExplicitEulerFixedSearchRadius.touch_particles_of_set_last_time_kernel, swift2.particle.ExplicitEulerFixedSearchRadius.ExplicitEulerFixedSearchRadius.touch_particles_of_set_last_time_kernel(), swift2.particle.LeapfrogFixedSearchRadius.LeapfrogFixedSearchRadius.touch_particles_of_set_last_time_kernel(), swift2.particle.ExplicitEulerFixedSearchRadius.ExplicitEulerFixedSearchRadius.touch_particles_of_set_last_time_kernel(), swift2.particle.LeapfrogFixedSearchRadius.LeapfrogFixedSearchRadius.touch_particles_of_set_last_time_kernel, swift2.particle.LeapfrogFixedSearchRadius.LeapfrogFixedSearchRadius.touch_particles_of_set_last_time_kernel(), swift2.particle.tests.DisappearingParticleTest.DisappearingParticleTest.touch_particles_of_set_last_time_kernel, and swift2.particle.tests.testLeapfrogFixedTimeStepSize.testLeapfrogFixedTimeStepSize.touch_particles_of_set_last_time_kernel.
Referenced by swift2.particle.Particle.Particle._add_dependency_checks().
swift2.particle.ExplicitEulerDynamicSearchRadius.ExplicitEulerDynamicSearchRadius.initialisation_steps | ( | self | ) |
No particular initialisation required.
Reimplemented from swift2.particle.Particle.Particle.
Definition at line 160 of file ExplicitEulerDynamicSearchRadius.py.
swift2.particle.ExplicitEulerDynamicSearchRadius.ExplicitEulerDynamicSearchRadius.accelerator |
Definition at line 51 of file ExplicitEulerDynamicSearchRadius.py.
swift2.particle.ExplicitEulerDynamicSearchRadius.ExplicitEulerDynamicSearchRadius.cfl_factor |
Definition at line 55 of file ExplicitEulerDynamicSearchRadius.py.
Referenced by swift2.particle.ExplicitEulerFixedSearchRadius.ExplicitEulerFixedSearchRadius.__setup_algorithm_steps(), swift2.particle.LeapfrogFixedSearchRadius.LeapfrogFixedSearchRadius.__setup_algorithm_steps(), swift2.particle.ExplicitEulerDynamicSearchRadius.ExplicitEulerDynamicSearchRadius.algorithm_steps(), swift2.particle.ExplicitEulerFixedSearchRadius.ExplicitEulerFixedSearchRadius.readme_descriptor(), and swift2.particle.LeapfrogFixedSearchRadius.LeapfrogFixedSearchRadius.readme_descriptor().
swift2.particle.ExplicitEulerDynamicSearchRadius.ExplicitEulerDynamicSearchRadius.initial_time_step_size |
Definition at line 56 of file ExplicitEulerDynamicSearchRadius.py.
Referenced by swift2.particle.ExplicitEulerFixedSearchRadius.ExplicitEulerFixedSearchRadius.__setup_algorithm_steps(), swift2.particle.LeapfrogFixedSearchRadius.LeapfrogFixedSearchRadius.__setup_algorithm_steps(), swift2.particle.ExplicitEulerDynamicSearchRadius.ExplicitEulerDynamicSearchRadius.algorithm_steps(), swift2.particle.ExplicitEulerFixedSearchRadius.ExplicitEulerFixedSearchRadius.readme_descriptor(), and swift2.particle.LeapfrogFixedSearchRadius.LeapfrogFixedSearchRadius.readme_descriptor().
swift2.particle.ExplicitEulerDynamicSearchRadius.ExplicitEulerDynamicSearchRadius.number_of_interaction_partners |
Definition at line 67 of file ExplicitEulerDynamicSearchRadius.py.
Referenced by swift2.particle.ExplicitEulerDynamicSearchRadius.ExplicitEulerDynamicSearchRadius.algorithm_steps().
swift2.particle.ExplicitEulerDynamicSearchRadius.ExplicitEulerDynamicSearchRadius.particle_particle_interaction_over_particle_sets_kernel |
Definition at line 58 of file ExplicitEulerDynamicSearchRadius.py.
swift2.particle.ExplicitEulerDynamicSearchRadius.ExplicitEulerDynamicSearchRadius.touch_particles_of_set_first_time_kernel |
Definition at line 61 of file ExplicitEulerDynamicSearchRadius.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.ExplicitEulerDynamicSearchRadius.ExplicitEulerDynamicSearchRadius.touch_particles_of_set_last_time_kernel |
Definition at line 64 of file ExplicitEulerDynamicSearchRadius.py.
Referenced by swift2.particle.ExplicitEulerDynamicSearchRadius.ExplicitEulerDynamicSearchRadius.algorithm_steps().
swift2.particle.ExplicitEulerDynamicSearchRadius.ExplicitEulerDynamicSearchRadius.velocity |
Definition at line 50 of file ExplicitEulerDynamicSearchRadius.py.