PySDM_examples.Long_1974.simulation
1from PySDM_examples.utils import BasicSimulation 2 3from PySDM.backends import CPU 4from PySDM import Builder 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 builder = Builder( 15 n_sd=settings.n_sd, 16 backend=CPU(), 17 environment=Box(dv=settings.dv, dt=settings.dt), 18 ) 19 builder.particulator.environment["rhod"] = settings.rhod 20 attributes = {} 21 attributes["volume"], attributes["multiplicity"] = ConstantMultiplicity( 22 settings.spectrum 23 ).sample_deterministic(settings.n_sd) 24 builder.add_dynamic( 25 Coalescence( 26 collision_kernel=settings.kernel, 27 coalescence_efficiency=settings.coal_eff, 28 adaptive=settings.adaptive, 29 ) 30 ) 31 products = ( 32 ParticleVolumeVersusRadiusLogarithmSpectrum( 33 radius_bins_edges=settings.radius_bins_edges, name="dv/dlnr" 34 ), 35 Time(name="t"), 36 ) 37 particulator = builder.build(attributes, products) 38 self.settings = settings 39 super().__init__(particulator=particulator) 40 41 def run(self): 42 return super()._run(self.settings.nt, self.settings.steps_per_output_interval)
13class Simulation(BasicSimulation): 14 def __init__(self, settings, products=None): 15 builder = Builder( 16 n_sd=settings.n_sd, 17 backend=CPU(), 18 environment=Box(dv=settings.dv, dt=settings.dt), 19 ) 20 builder.particulator.environment["rhod"] = settings.rhod 21 attributes = {} 22 attributes["volume"], attributes["multiplicity"] = ConstantMultiplicity( 23 settings.spectrum 24 ).sample_deterministic(settings.n_sd) 25 builder.add_dynamic( 26 Coalescence( 27 collision_kernel=settings.kernel, 28 coalescence_efficiency=settings.coal_eff, 29 adaptive=settings.adaptive, 30 ) 31 ) 32 products = ( 33 ParticleVolumeVersusRadiusLogarithmSpectrum( 34 radius_bins_edges=settings.radius_bins_edges, name="dv/dlnr" 35 ), 36 Time(name="t"), 37 ) 38 particulator = builder.build(attributes, products) 39 self.settings = settings 40 super().__init__(particulator=particulator) 41 42 def run(self): 43 return super()._run(self.settings.nt, self.settings.steps_per_output_interval)
Simulation(settings, products=None)
14 def __init__(self, settings, products=None): 15 builder = Builder( 16 n_sd=settings.n_sd, 17 backend=CPU(), 18 environment=Box(dv=settings.dv, dt=settings.dt), 19 ) 20 builder.particulator.environment["rhod"] = settings.rhod 21 attributes = {} 22 attributes["volume"], attributes["multiplicity"] = ConstantMultiplicity( 23 settings.spectrum 24 ).sample_deterministic(settings.n_sd) 25 builder.add_dynamic( 26 Coalescence( 27 collision_kernel=settings.kernel, 28 coalescence_efficiency=settings.coal_eff, 29 adaptive=settings.adaptive, 30 ) 31 ) 32 products = ( 33 ParticleVolumeVersusRadiusLogarithmSpectrum( 34 radius_bins_edges=settings.radius_bins_edges, name="dv/dlnr" 35 ), 36 Time(name="t"), 37 ) 38 particulator = builder.build(attributes, products) 39 self.settings = settings 40 super().__init__(particulator=particulator)