PySDM_examples.Long_1974.simulation
1from PySDM_examples.utils import BasicSimulation 2 3from PySDM.backends import CPU 4from PySDM import Particulator 5from PySDM.dynamics import Coalescence 6from PySDM.environments import Box 7from PySDM.initialisation.sampling.spectral_sampling import ConstantMultiplicity 8from PySDM.products.size_spectral import ParticleVolumeVersusRadiusLogarithmSpectrum 9from PySDM.products import Time 10 11 12class Simulation(BasicSimulation): 13 def __init__(self, settings, products=None): 14 environment = Box(dv=settings.dv, dt=settings.dt, backend=CPU()) 15 environment["rhod"] = settings.rhod 16 attributes = {} 17 attributes["volume"], attributes["multiplicity"] = ConstantMultiplicity( 18 settings.spectrum 19 ).sample_deterministic(settings.n_sd) 20 21 products = ( 22 ParticleVolumeVersusRadiusLogarithmSpectrum( 23 radius_bins_edges=settings.radius_bins_edges, name="dv/dlnr" 24 ), 25 Time(name="t"), 26 ) 27 particulator = Particulator( 28 n_sd=settings.n_sd, 29 environment=environment, 30 dynamics=( 31 Coalescence( 32 collision_kernel=settings.kernel, 33 coalescence_efficiency=settings.coal_eff, 34 adaptive=settings.adaptive, 35 ), 36 ), 37 attributes=attributes, 38 products=products, 39 ) 40 self.settings = settings 41 super().__init__(particulator=particulator) 42 43 def run(self): 44 return super()._run(self.settings.nt, self.settings.steps_per_output_interval)
13class Simulation(BasicSimulation): 14 def __init__(self, settings, products=None): 15 environment = Box(dv=settings.dv, dt=settings.dt, backend=CPU()) 16 environment["rhod"] = settings.rhod 17 attributes = {} 18 attributes["volume"], attributes["multiplicity"] = ConstantMultiplicity( 19 settings.spectrum 20 ).sample_deterministic(settings.n_sd) 21 22 products = ( 23 ParticleVolumeVersusRadiusLogarithmSpectrum( 24 radius_bins_edges=settings.radius_bins_edges, name="dv/dlnr" 25 ), 26 Time(name="t"), 27 ) 28 particulator = Particulator( 29 n_sd=settings.n_sd, 30 environment=environment, 31 dynamics=( 32 Coalescence( 33 collision_kernel=settings.kernel, 34 coalescence_efficiency=settings.coal_eff, 35 adaptive=settings.adaptive, 36 ), 37 ), 38 attributes=attributes, 39 products=products, 40 ) 41 self.settings = settings 42 super().__init__(particulator=particulator) 43 44 def run(self): 45 return super()._run(self.settings.nt, self.settings.steps_per_output_interval)
Simulation(settings, products=None)
14 def __init__(self, settings, products=None): 15 environment = Box(dv=settings.dv, dt=settings.dt, backend=CPU()) 16 environment["rhod"] = settings.rhod 17 attributes = {} 18 attributes["volume"], attributes["multiplicity"] = ConstantMultiplicity( 19 settings.spectrum 20 ).sample_deterministic(settings.n_sd) 21 22 products = ( 23 ParticleVolumeVersusRadiusLogarithmSpectrum( 24 radius_bins_edges=settings.radius_bins_edges, name="dv/dlnr" 25 ), 26 Time(name="t"), 27 ) 28 particulator = Particulator( 29 n_sd=settings.n_sd, 30 environment=environment, 31 dynamics=( 32 Coalescence( 33 collision_kernel=settings.kernel, 34 coalescence_efficiency=settings.coal_eff, 35 adaptive=settings.adaptive, 36 ), 37 ), 38 attributes=attributes, 39 products=products, 40 ) 41 self.settings = settings 42 super().__init__(particulator=particulator)