Peano
|
The SPH particle base class. More...
Public Member Functions | |
__init__ (self, name, dimensions_hydro=2, cfl_factor=0.1, initial_time_step_size=1e-4, constant_time_step_size=True, swift_project_namespace="SPH", particles_per_cell=0, min_h=0.3, max_h=0.3) | |
Initialise the particle. | |
set_parameters (self) | |
This function translates "global" particle parameters which are constant throughout the simulation (like CFL factor, minimal time step size, viscosity parameters...) into dastgen attributes of the C++ particle class. | |
algorithm_steps (self) | |
Return algorithm steps: A list of AlgorithmStep objects to be executed in that order for this particle. | |
initialisation_steps (self) | |
Return the list of algorithm steps to be executed during initialisation. | |
hydro_dimensions (self) | |
Forbid users to modify hydro dimensions on-the-fly. | |
hydro_dimensions (self, hydro_dimensions) | |
eta_factor (self) | |
Set the eta factor used by the SPH kernel to target a certain number of neighbour particles. | |
eta_factor (self, eta_factor) | |
h_hydro_min (self) | |
Set the limits allowed for the SPH smoothing length. | |
h_hydro_min (self, h_hydro_min) | |
h_hydro_max (self) | |
h_hydro_max (self, h_hydro_max) | |
h_tolerance (self) | |
Tolerance for Newton-Raphson convergence criterion. | |
h_tolerance (self, h_tolerance) | |
h_max_iterations (self) | |
Max number of iterations to adapt the SPH smoothing length. | |
h_max_iterations (self, h_max_iterations) | |
mantissa_size (self) | |
Set the mantissa size of doubles and Peano double arrays if we want to use reduced precission via Clang annotations. | |
mantissa_size (self, mantissa_size) | |
get_cpp_namespace_from_project_namespace (self) | |
Transform namespace into cpp format. | |
readme_descriptor (self) | |
Create default readme descriptor. | |
switch_namespace_of_all_particle_iterators (self, new_namespace, old_namespace="::swift2::kernels::") | |
Switch the prefix (namespace) of all particle iterators. | |
Public Member Functions inherited from peano4.datamodel.DaStGen2.DaStGen2 | |
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) | |
Public Member Functions inherited from peano4.datamodel.DoF.DoF | |
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 | |
mass | |
velocity | |
acceleration | |
density | |
pressure | |
smoothL | |
u | |
uDot | |
v_full | |
u_full | |
wcount | |
wcount_dh | |
f | |
hDot | |
rho_dh | |
sml_iteration_count | |
sml_iter_left_bound | |
sml_iter_right_bound | |
has_no_neighbours | |
sml_converged | |
density_neighbourcount | |
force_neighbourcount | |
Data Fields inherited from swift2.particle.Particle.Particle | |
particles_per_cell | |
min_h | |
max_h | |
name | |
Data Fields inherited from peano4.toolbox.particles.Particle.Particle | |
name | |
partid | |
Data Fields inherited from peano4.datamodel.DaStGen2.DaStGen2 | |
generator | |
data | |
peano4_mpi_and_storage_aspect | |
Data Fields inherited from peano4.datamodel.DoF.DoF | |
association | |
name | |
namespace | |
subdirectory | |
Protected Member Functions | |
_setup_algorithm_steps (self) | |
Set up the internal list of algorithm steps for this particle. | |
_setup_initialisation_steps (self) | |
Define the algorithm steps to be taken during initialization here. | |
Protected Member Functions inherited from swift2.particle.Particle.Particle | |
_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 | |
_sph_flavour | |
_cfl_factor | |
_initial_time_step_size | |
_constant_time_step_size | |
_hydro_dimensions | |
_eta_factor | |
_h_max_iterations | |
_h_hydro_min | |
_h_hydro_max | |
_h_tolerance | |
_swift_project_namespace | |
_mantissa_size | |
Protected Attributes inherited from swift2.particle.Particle.Particle | |
_algorithm_steps | |
_initialisation_steps | |
Protected Attributes inherited from peano4.datamodel.DaStGen2.DaStGen2 | |
_additional_load_and_store_arguments | |
Protected Attributes inherited from peano4.datamodel.DoF.DoF | |
_additional_load_and_store_arguments | |
Additional Inherited Members | |
Static Public Attributes inherited from swift2.particle.Particle.Particle | |
str | DependencyChecks_Attribute_Prefix = "dependencyChecks" |
list | DependencyChecks_Ifdefs = ["PeanoDebug > 0"] |
Static Public Attributes inherited from peano4.datamodel.DaStGen2.DaStGen2 | |
str | readme_package_descriptor |
The SPH particle base class.
Contains the bare minimum of data required for the base algorithm, in particular the neighboursearch/ smoothing length computation, to work. Actual SPH implementations should inherit these properties from this class. Note that this base class contains no algorithm steps. The derived classes will have to implement that individually.
The data contained in this super class are:
General simulation data:
Smoothing length related global simulation parameters:
Implementation specifics:
Particle Data:
Smoothing lenght related particle fields:
Additional Particle fields
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.
This type can be used with aggressively optimised kernels if you follow Performance optimisation Performance optimisation and use the map_particle_steps_onto_separate_mesh_traversals_insert_dummy_sweeps_for_coalesced_memory_access graph compiler from the Sequential suite; or literally any other flavour which yields coalesced memory.
Definition at line 17 of file SPHParticle.py.
swift2.particle.SPHParticle.SPHParticle.__init__ | ( | self, | |
name, | |||
particles_per_cell = 2, | |||
min_h = 0.1, | |||
max_h = 1e-4, | |||
constant_time_step_size = True, | |||
swift_project_namespace = "SPH", | |||
particles_per_cell = 0, | |||
min_h = 0.3, | |||
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.
Reimplemented in swift2.particle.tests.testDensityCalculation.testDensityCalculation, and swift2.particle.SPHLeapfrogFixedSearchRadius.SPHLeapfrogFixedSearchRadius.
Definition at line 87 of file SPHParticle.py.
References swift2.particle.SPHParticle.SPHParticle.__init__().
Referenced by swift2.particle.SPHParticle.SPHParticle.__init__().
|
protected |
Set up the internal list of algorithm steps for this particle.
We need to maintain an individual instance of this list for cases where we modify the algorithm steps later on. This can happen for example when adding debugging/dependency checks later on.
The algorithm steps shall be a list of AlgorithmStep objects to be executed in that order.
Definitions of the algorithm steps stored in the algorithm_steps_dict are placed in get_algorithm_steps_dict(self). The dict is set up during instantiation of this class, and reads in all available algorithm steps defined in AlgorithmStepLibrary.py.
Reimplemented in swift2.particle.SPHLeapfrogFixedSearchRadius.SPHLeapfrogFixedSearchRadius, and swift2.particle.tests.testDensityCalculation.testDensityCalculation.
Definition at line 290 of file SPHParticle.py.
Referenced by swift2.particle.tests.testDensityCalculation.testDensityCalculation.__init__().
|
protected |
Define the algorithm steps to be taken during initialization here.
This follows the same logic as _setup_algorithm_steps. See documentation there for more info.
Make sure self._setup_algorithm_steps_dict() has been called before.
Every derived class must implement this function depending on its own requirements.
Reimplemented in swift2.particle.SPHLeapfrogFixedSearchRadius.SPHLeapfrogFixedSearchRadius, and swift2.particle.tests.testDensityCalculation.testDensityCalculation.
Definition at line 322 of file SPHParticle.py.
Referenced by swift2.particle.tests.testDensityCalculation.testDensityCalculation.__init__().
swift2.particle.SPHParticle.SPHParticle.algorithm_steps | ( | self | ) |
Return algorithm steps: A list of AlgorithmStep objects to be executed in that order for this particle.
Make sure that self._setup_algorithm_steps_dict() and self._setup_algorithm_steps() have been called before using this function.
Reimplemented from swift2.particle.Particle.Particle.
Definition at line 308 of file SPHParticle.py.
Referenced by swift2.particle.Particle.Particle._add_dependency_checks().
swift2.particle.SPHParticle.SPHParticle.eta_factor | ( | self | ) |
Set the eta factor used by the SPH kernel to target a certain number of neighbour particles.
The default value is eta = 1.2348.
Definition at line 359 of file SPHParticle.py.
References swift2.particle.SPHParticle.SPHParticle._eta_factor.
swift2.particle.SPHParticle.SPHParticle.eta_factor | ( | self, | |
eta_factor ) |
Definition at line 370 of file SPHParticle.py.
References swift2.particle.SPHParticle.SPHParticle._eta_factor.
swift2.particle.SPHParticle.SPHParticle.get_cpp_namespace_from_project_namespace | ( | self | ) |
Transform namespace into cpp format.
Could be used to append namespace to constants in kernels (not used currently).
Reimplemented in swift2.particle.SPHLeapfrogFixedSearchRadius.SPHLeapfrogFixedSearchRadius.
Definition at line 448 of file SPHParticle.py.
References swift2.particle.SPHParticle.SPHParticle._swift_project_namespace.
swift2.particle.SPHParticle.SPHParticle.h_hydro_max | ( | self | ) |
Definition at line 394 of file SPHParticle.py.
References swift2.particle.SPHParticle.SPHParticle._h_hydro_max.
swift2.particle.SPHParticle.SPHParticle.h_hydro_max | ( | self, | |
h_hydro_max ) |
Definition at line 398 of file SPHParticle.py.
References swift2.particle.SPHParticle.SPHParticle._h_hydro_max, and swift2.particle.SPHParticle.SPHParticle._h_hydro_min.
swift2.particle.SPHParticle.SPHParticle.h_hydro_min | ( | self | ) |
Set the limits allowed for the SPH smoothing length.
Notice that the max value is bounded by Peano's search radius as h_max = R_search_max = max_grid_size / gamma_k, where gamma_k is the SPH kernel factor that relates h and H. Typically gamma_k = 2, so h_max = max_grid_size / 2.
Definition at line 376 of file SPHParticle.py.
References swift2.particle.SPHParticle.SPHParticle._h_hydro_min.
swift2.particle.SPHParticle.SPHParticle.h_hydro_min | ( | self, | |
h_hydro_min ) |
Definition at line 388 of file SPHParticle.py.
References swift2.particle.SPHParticle.SPHParticle._h_hydro_max, and swift2.particle.SPHParticle.SPHParticle._h_hydro_min.
swift2.particle.SPHParticle.SPHParticle.h_max_iterations | ( | self | ) |
Max number of iterations to adapt the SPH smoothing length.
Definition at line 419 of file SPHParticle.py.
References swift2.particle.SPHParticle.SPHParticle._h_max_iterations.
swift2.particle.SPHParticle.SPHParticle.h_max_iterations | ( | self, | |
h_max_iterations ) |
Definition at line 426 of file SPHParticle.py.
References swift2.particle.SPHParticle.SPHParticle._h_max_iterations.
swift2.particle.SPHParticle.SPHParticle.h_tolerance | ( | self | ) |
Tolerance for Newton-Raphson convergence criterion.
Definition at line 404 of file SPHParticle.py.
References swift2.particle.SPHParticle.SPHParticle._h_tolerance.
swift2.particle.SPHParticle.SPHParticle.h_tolerance | ( | self, | |
h_tolerance ) |
Definition at line 413 of file SPHParticle.py.
References swift2.particle.SPHParticle.SPHParticle._h_tolerance.
swift2.particle.SPHParticle.SPHParticle.hydro_dimensions | ( | self | ) |
Forbid users to modify hydro dimensions on-the-fly.
Definition at line 346 of file SPHParticle.py.
References swift2.particle.SPHLeapfrogFixedSearchRadius.SPHLeapfrogFixedSearchRadius._hydro_dimensions, and swift2.particle.SPHParticle.SPHParticle._hydro_dimensions.
swift2.particle.SPHParticle.SPHParticle.hydro_dimensions | ( | self, | |
hydro_dimensions ) |
Definition at line 353 of file SPHParticle.py.
swift2.particle.SPHParticle.SPHParticle.initialisation_steps | ( | self | ) |
Return the list of algorithm steps to be executed during initialisation.
Make sure self._setup_algorithm_steps_dict() and self._setup_initialisation_steps() have been called before.
Every derived class must implement this function depending on its own requirements.
Reimplemented from swift2.particle.Particle.Particle.
Definition at line 335 of file SPHParticle.py.
swift2.particle.SPHParticle.SPHParticle.mantissa_size | ( | self | ) |
Set the mantissa size of doubles and Peano double arrays if we want to use reduced precission via Clang annotations.
As a reference, floats have mantissa size = 23.
Definition at line 432 of file SPHParticle.py.
References swift2.particle.SPHParticle.SPHParticle._mantissa_size, and swift2.particle.tests.DastgenTestDummyParticle.DastgenTestDummyParticle._mantissa_size.
swift2.particle.SPHParticle.SPHParticle.mantissa_size | ( | self, | |
mantissa_size ) |
Definition at line 443 of file SPHParticle.py.
swift2.particle.SPHParticle.SPHParticle.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.
Reimplemented in swift2.particle.SPHLeapfrogFixedSearchRadius.SPHLeapfrogFixedSearchRadius.
Definition at line 461 of file SPHParticle.py.
swift2.particle.SPHParticle.SPHParticle.set_parameters | ( | self | ) |
This function translates "global" particle parameters which are constant throughout the simulation (like CFL factor, minimal time step size, viscosity parameters...) into dastgen attributes of the C++ particle class.
If you modify any of the attributes manually outside of the particle initialisation, e.g. by invoking
you need to call this function manually so your changes propagate into the generated C++ files.
Reimplemented in swift2.particle.SPHLeapfrogFixedSearchRadius.SPHLeapfrogFixedSearchRadius.
Definition at line 216 of file SPHParticle.py.
References swift2.particle.SPHLeapfrogFixedSearchRadius.SPHLeapfrogFixedSearchRadius._cfl_factor, swift2.particle.SPHParticle.SPHParticle._cfl_factor, swift2.particle.tests.testLeapfrogFixedTimeStepSize.testLeapfrogFixedTimeStepSize._cfl_factor, swift2.particle.SPHParticle.SPHParticle._constant_time_step_size, swift2.particle.SPHParticle.SPHParticle._eta_factor, swift2.particle.SPHParticle.SPHParticle._h_hydro_max, swift2.particle.SPHParticle.SPHParticle._h_hydro_min, swift2.particle.SPHParticle.SPHParticle._h_max_iterations, swift2.particle.SPHParticle.SPHParticle._h_tolerance, swift2.particle.SPHLeapfrogFixedSearchRadius.SPHLeapfrogFixedSearchRadius._hydro_dimensions, swift2.particle.SPHParticle.SPHParticle._hydro_dimensions, swift2.particle.SPHLeapfrogFixedSearchRadius.SPHLeapfrogFixedSearchRadius._initial_time_step_size, swift2.particle.SPHParticle.SPHParticle._initial_time_step_size, swift2.particle.tests.testLeapfrogFixedTimeStepSize.testLeapfrogFixedTimeStepSize._initial_time_step_size, peano4.datamodel.DaStGen2.DaStGen2.data, peano4.datamodel.DaStGenToLegacyTool.DaStGenToLegacyTool.data, peano4.datamodel.DynamicArrayOverPrimitivesToStdVector.DynamicArrayOverPrimitivesToStdVector.data, peano4.datamodel.PatchToDoubleArray.PatchToDoubleArray.data, convert::data::DataSet.data, convert::data::PatchData.data, exahype2::EnclaveBookkeeping::Entry.data, tarch::la::DynamicMatrix.data(), tarch::la::Matrix< Rows, Cols, Scalar >.data(), tarch::la::Vector< TwoTimesD, int >.data(), tarch::la::Vector< TwoPowerD, int >.data(), tarch::la::Vector< Dimensions, int >.data(), tarch::la::Vector< DimensionsTimesTwo, int >.data(), tarch::la::Vector< Size, Scalar >.data(), tarch::la::Vector< Dimensions, double >.data(), Vec< ITEM, ALLOCATOR >.data(), tarch::la::DynamicMatrix.data(), tarch::la::Matrix< Rows, Cols, Scalar >.data(), tarch::la::Vector< Size, Scalar >.data(), tarch::la::Vector< Dimensions, int >.data(), tarch::la::Vector< Dimensions, double >.data(), tarch::la::Vector< DimensionsTimesTwo, int >.data(), tarch::la::Vector< TwoPowerD, int >.data(), tarch::la::Vector< TwoTimesD, int >.data(), toolbox::blockstructured::GlobalDatabase::Entry.data, toolbox::particles::memorypool::GlobalContinuousMemoryPool< T >::GlobalMemory.data, and toolbox::particles::TrajectoryDatabase::Entry.data.
swift2.particle.SPHParticle.SPHParticle.switch_namespace_of_all_particle_iterators | ( | self, | |
new_namespace, | |||
old_namespace = "::swift2::kernels::" ) |
Switch the prefix (namespace) of all particle iterators.
Run through all iterators/kernels and replace the iterator namespaces. This is a simple text replacement and should be used with care. Usually, we may assume that an algorithm step does already pick a proper realisation by default, but you might want to change this default behaviour. The problem is that you will overwrite any bespoke choice, i.e. if a particle species developer has carefully ported some kernels to the GPU but others not, you overwrite these decisions maybe and switch to a different implementation.
The realisation is very simple: We run over all algorithm steps and replace all "forAll" function calls with the leading namespace old_namespace with a new namespace.
new_namespace | String Please ensure that it starts with :: (to avoid namespace confusion) and ends with ::, too. |
Definition at line 465 of file SPHParticle.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.
|
protected |
Definition at line 112 of file SPHParticle.py.
Referenced by swift2.particle.SPHParticle.SPHParticle.set_parameters(), and swift2.particle.tests.testLeapfrogFixedTimeStepSize.testLeapfrogFixedTimeStepSize.set_parameters().
|
protected |
Definition at line 114 of file SPHParticle.py.
Referenced by swift2.particle.SPHParticle.SPHParticle.set_parameters().
|
protected |
Definition at line 120 of file SPHParticle.py.
Referenced by swift2.particle.SPHParticle.SPHParticle.eta_factor(), swift2.particle.SPHParticle.SPHParticle.eta_factor(), and swift2.particle.SPHParticle.SPHParticle.set_parameters().
|
protected |
|
protected |
|
protected |
Definition at line 123 of file SPHParticle.py.
Referenced by swift2.particle.SPHParticle.SPHParticle.h_max_iterations(), swift2.particle.SPHParticle.SPHParticle.h_max_iterations(), and swift2.particle.SPHParticle.SPHParticle.set_parameters().
|
protected |
Definition at line 132 of file SPHParticle.py.
Referenced by swift2.particle.SPHParticle.SPHParticle.h_tolerance(), swift2.particle.SPHParticle.SPHParticle.h_tolerance(), and swift2.particle.SPHParticle.SPHParticle.set_parameters().
|
protected |
Definition at line 117 of file SPHParticle.py.
Referenced by swift2.particle.SPHParticle.SPHParticle.hydro_dimensions(), and swift2.particle.SPHParticle.SPHParticle.set_parameters().
|
protected |
Definition at line 113 of file SPHParticle.py.
Referenced by swift2.particle.SPHParticle.SPHParticle.set_parameters(), and swift2.particle.tests.testLeapfrogFixedTimeStepSize.testLeapfrogFixedTimeStepSize.set_parameters().
|
protected |
Definition at line 446 of file SPHParticle.py.
Referenced by swift2.particle.SPHParticle.SPHParticle.mantissa_size(), and swift2.particle.tests.DastgenTestDummyParticle.DastgenTestDummyParticle.mantissa_size().
|
protected |
Definition at line 109 of file SPHParticle.py.
|
protected |
Definition at line 136 of file SPHParticle.py.
Referenced by swift2.particle.SPHLeapfrogFixedSearchRadius.SPHLeapfrogFixedSearchRadius.get_cpp_namespace_from_project_namespace(), swift2.particle.SPHParticle.SPHParticle.get_cpp_namespace_from_project_namespace(), and swift2.particle.tests.DastgenTestDummyParticle.DastgenTestDummyParticle.get_cpp_namespace_from_project_namespace().
swift2.particle.SPHParticle.SPHParticle.acceleration |
Definition at line 153 of file SPHParticle.py.
swift2.particle.SPHParticle.SPHParticle.density |
Definition at line 159 of file SPHParticle.py.
swift2.particle.SPHParticle.SPHParticle.density_neighbourcount |
Definition at line 203 of file SPHParticle.py.
swift2.particle.SPHParticle.SPHParticle.f |
Definition at line 181 of file SPHParticle.py.
Referenced by swift2.sphtools.riemann.RiemannSolver.solve(), swift2.sphtools.riemann.RiemannSolver.solve_brent(), and swift2.sphtools.riemann.RiemannSolver.solve_middle_state().
swift2.particle.SPHParticle.SPHParticle.force_neighbourcount |
Definition at line 206 of file SPHParticle.py.
swift2.particle.SPHParticle.SPHParticle.has_no_neighbours |
Definition at line 199 of file SPHParticle.py.
swift2.particle.SPHParticle.SPHParticle.hDot |
Definition at line 182 of file SPHParticle.py.
swift2.particle.SPHParticle.SPHParticle.mass |
Definition at line 151 of file SPHParticle.py.
swift2.particle.SPHParticle.SPHParticle.pressure |
Definition at line 160 of file SPHParticle.py.
swift2.particle.SPHParticle.SPHParticle.rho_dh |
Definition at line 183 of file SPHParticle.py.
swift2.particle.SPHParticle.SPHParticle.sml_converged |
Definition at line 200 of file SPHParticle.py.
swift2.particle.SPHParticle.SPHParticle.sml_iter_left_bound |
Definition at line 187 of file SPHParticle.py.
swift2.particle.SPHParticle.SPHParticle.sml_iter_right_bound |
Definition at line 188 of file SPHParticle.py.
swift2.particle.SPHParticle.SPHParticle.sml_iteration_count |
Definition at line 184 of file SPHParticle.py.
swift2.particle.SPHParticle.SPHParticle.smoothL |
Definition at line 163 of file SPHParticle.py.
swift2.particle.SPHParticle.SPHParticle.u |
Definition at line 164 of file SPHParticle.py.
swift2.particle.SPHParticle.SPHParticle.u_full |
Definition at line 174 of file SPHParticle.py.
swift2.particle.SPHParticle.SPHParticle.uDot |
Definition at line 165 of file SPHParticle.py.
swift2.particle.SPHParticle.SPHParticle.v_full |
Definition at line 173 of file SPHParticle.py.
swift2.particle.SPHParticle.SPHParticle.velocity |
Definition at line 152 of file SPHParticle.py.
swift2.particle.SPHParticle.SPHParticle.wcount |
Definition at line 179 of file SPHParticle.py.
swift2.particle.SPHParticle.SPHParticle.wcount_dh |
Definition at line 180 of file SPHParticle.py.