Peano
Loading...
Searching...
No Matches
swift2.particle.SPHParticle.SPHParticle Class Reference

The SPH particle base class. More...

Inheritance diagram for swift2.particle.SPHParticle.SPHParticle:
Collaboration diagram for swift2.particle.SPHParticle.SPHParticle:

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
 

Detailed Description

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:

  • CFL factor
  • initial time step size
  • hydro dimension

Smoothing length related global simulation parameters:

  • eta factor (resolution eta, which determines number of neighbours)
  • max h iterations
  • h_min
  • h_max
  • h_tolerance: Convergence criterion for smoothing length iteration

Implementation specifics:

  • particle interaction kernel realisation
  • swift project namespace

Particle Data:

  • mass
  • velocity
  • acceleration
  • density
  • pressure
  • smoothing length
  • specific internal energy u
  • time derivative of specific internal energy uDot

Smoothing lenght related particle fields:

  • wcount : Neighbour weight number
  • wcount_dh : derivative of eighbour weight number w.r.t smoothing length
  • hDot: derivative of smoothing length w.r.t. time
  • f: a collected factor required for sml computation
  • sml_iteration_count

Additional Particle fields

  • hasNoNeighbours: Flag whether particle has no neighbours

Attributes

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.

Vectorisation

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.

See also
peano4::datamanagement::CellMarker
peano4::datamanagement::VertexMarker

Definition at line 17 of file SPHParticle.py.

Constructor & Destructor Documentation

◆ __init__()

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:

  • A position which is a double vector with Dimension entries.
  • A search radius which describes the range with which other particles a particle might theoretically interact. The effective interaction might be smaller if a code decides to ignore potential interaction partners, i.e. this is an absolute maximum. The search radius will decide on which resolution level within the tree a particle is held.
  • A MoveState flag. This flag is essential. We use it later to label those particles that have been moved to avoid that we move particles multiple times.
  • A flag that indicates if a particle has been updated within a cell. Consult our code release papers: In short, a particle does not uniquely belong to one cell but can belong to many cells. We nevertheless want to update them only once.
See also
swift2.actionsets.UpdateParticleMarker

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__().

Here is the call graph for this function:
Here is the caller graph for this function:

Member Function Documentation

◆ _setup_algorithm_steps()

swift2.particle.SPHParticle.SPHParticle._setup_algorithm_steps ( self)
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__().

Here is the caller graph for this function:

◆ _setup_initialisation_steps()

swift2.particle.SPHParticle.SPHParticle._setup_initialisation_steps ( self)
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__().

Here is the caller graph for this function:

◆ algorithm_steps()

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().

Here is the caller graph for this function:

◆ eta_factor() [1/2]

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.

◆ eta_factor() [2/2]

swift2.particle.SPHParticle.SPHParticle.eta_factor ( self,
eta_factor )

◆ get_cpp_namespace_from_project_namespace()

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.

◆ h_hydro_max() [1/2]

swift2.particle.SPHParticle.SPHParticle.h_hydro_max ( self)

◆ h_hydro_max() [2/2]

swift2.particle.SPHParticle.SPHParticle.h_hydro_max ( self,
h_hydro_max )

◆ h_hydro_min() [1/2]

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.

◆ h_hydro_min() [2/2]

swift2.particle.SPHParticle.SPHParticle.h_hydro_min ( self,
h_hydro_min )

◆ h_max_iterations() [1/2]

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.

◆ h_max_iterations() [2/2]

swift2.particle.SPHParticle.SPHParticle.h_max_iterations ( self,
h_max_iterations )

◆ h_tolerance() [1/2]

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.

◆ h_tolerance() [2/2]

swift2.particle.SPHParticle.SPHParticle.h_tolerance ( self,
h_tolerance )

◆ hydro_dimensions() [1/2]

swift2.particle.SPHParticle.SPHParticle.hydro_dimensions ( self)

◆ hydro_dimensions() [2/2]

swift2.particle.SPHParticle.SPHParticle.hydro_dimensions ( self,
hydro_dimensions )

Definition at line 353 of file SPHParticle.py.

◆ initialisation_steps()

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.

◆ mantissa_size() [1/2]

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.

◆ mantissa_size() [2/2]

swift2.particle.SPHParticle.SPHParticle.mantissa_size ( self,
mantissa_size )

Definition at line 443 of file SPHParticle.py.

◆ readme_descriptor()

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.

◆ set_parameters()

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

particle = SPHParticle(initial_time_step_size=ABC, ...)
particle.initial_time_step_size = XYZ

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.

Here is the call graph for this function:

◆ switch_namespace_of_all_particle_iterators()

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.

Parameters
new_namespaceString 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.

Field Documentation

◆ _cfl_factor

swift2.particle.SPHParticle.SPHParticle._cfl_factor
protected

◆ _constant_time_step_size

swift2.particle.SPHParticle.SPHParticle._constant_time_step_size
protected

◆ _eta_factor

◆ _h_hydro_max

◆ _h_hydro_min

◆ _h_max_iterations

◆ _h_tolerance

◆ _hydro_dimensions

swift2.particle.SPHParticle.SPHParticle._hydro_dimensions
protected

◆ _initial_time_step_size

swift2.particle.SPHParticle.SPHParticle._initial_time_step_size
protected

◆ _mantissa_size

swift2.particle.SPHParticle.SPHParticle._mantissa_size
protected

◆ _sph_flavour

swift2.particle.SPHParticle.SPHParticle._sph_flavour
protected

Definition at line 109 of file SPHParticle.py.

◆ _swift_project_namespace

◆ acceleration

swift2.particle.SPHParticle.SPHParticle.acceleration

Definition at line 153 of file SPHParticle.py.

◆ density

swift2.particle.SPHParticle.SPHParticle.density

Definition at line 159 of file SPHParticle.py.

◆ density_neighbourcount

swift2.particle.SPHParticle.SPHParticle.density_neighbourcount

Definition at line 203 of file SPHParticle.py.

◆ f

◆ force_neighbourcount

swift2.particle.SPHParticle.SPHParticle.force_neighbourcount

Definition at line 206 of file SPHParticle.py.

◆ has_no_neighbours

swift2.particle.SPHParticle.SPHParticle.has_no_neighbours

Definition at line 199 of file SPHParticle.py.

◆ hDot

swift2.particle.SPHParticle.SPHParticle.hDot

Definition at line 182 of file SPHParticle.py.

◆ mass

swift2.particle.SPHParticle.SPHParticle.mass

Definition at line 151 of file SPHParticle.py.

◆ pressure

swift2.particle.SPHParticle.SPHParticle.pressure

Definition at line 160 of file SPHParticle.py.

◆ rho_dh

swift2.particle.SPHParticle.SPHParticle.rho_dh

Definition at line 183 of file SPHParticle.py.

◆ sml_converged

swift2.particle.SPHParticle.SPHParticle.sml_converged

Definition at line 200 of file SPHParticle.py.

◆ sml_iter_left_bound

swift2.particle.SPHParticle.SPHParticle.sml_iter_left_bound

Definition at line 187 of file SPHParticle.py.

◆ sml_iter_right_bound

swift2.particle.SPHParticle.SPHParticle.sml_iter_right_bound

Definition at line 188 of file SPHParticle.py.

◆ sml_iteration_count

swift2.particle.SPHParticle.SPHParticle.sml_iteration_count

Definition at line 184 of file SPHParticle.py.

◆ smoothL

swift2.particle.SPHParticle.SPHParticle.smoothL

Definition at line 163 of file SPHParticle.py.

◆ u

swift2.particle.SPHParticle.SPHParticle.u

Definition at line 164 of file SPHParticle.py.

◆ u_full

swift2.particle.SPHParticle.SPHParticle.u_full

Definition at line 174 of file SPHParticle.py.

◆ uDot

swift2.particle.SPHParticle.SPHParticle.uDot

Definition at line 165 of file SPHParticle.py.

◆ v_full

swift2.particle.SPHParticle.SPHParticle.v_full

Definition at line 173 of file SPHParticle.py.

◆ velocity

swift2.particle.SPHParticle.SPHParticle.velocity

Definition at line 152 of file SPHParticle.py.

◆ wcount

swift2.particle.SPHParticle.SPHParticle.wcount

Definition at line 179 of file SPHParticle.py.

◆ wcount_dh

swift2.particle.SPHParticle.SPHParticle.wcount_dh

Definition at line 180 of file SPHParticle.py.


The documentation for this class was generated from the following file: