PySDM.dynamics.collisions.collision_kernels.simple_geometric
basic geometric kernel (not taking fall velocity into account)
1""" 2basic geometric kernel (not taking fall velocity into account) 3""" 4 5 6class SimpleGeometric: 7 def __init__(self, C): 8 self.particulator = None 9 self.pair_tmp = None 10 self.C = C 11 12 def register(self, builder): 13 self.particulator = builder.particulator 14 builder.request_attribute("radius") 15 builder.request_attribute("area") 16 self.pair_tmp = self.particulator.PairwiseStorage.empty( 17 self.particulator.n_sd // 2, dtype=float 18 ) 19 20 def __call__(self, output, is_first_in_pair): 21 output[:] = self.C 22 self.pair_tmp.sum(self.particulator.attributes["radius"], is_first_in_pair) 23 self.pair_tmp **= 2 24 output *= self.pair_tmp 25 self.pair_tmp.distance(self.particulator.attributes["area"], is_first_in_pair) 26 output *= self.pair_tmp
class
SimpleGeometric:
7class SimpleGeometric: 8 def __init__(self, C): 9 self.particulator = None 10 self.pair_tmp = None 11 self.C = C 12 13 def register(self, builder): 14 self.particulator = builder.particulator 15 builder.request_attribute("radius") 16 builder.request_attribute("area") 17 self.pair_tmp = self.particulator.PairwiseStorage.empty( 18 self.particulator.n_sd // 2, dtype=float 19 ) 20 21 def __call__(self, output, is_first_in_pair): 22 output[:] = self.C 23 self.pair_tmp.sum(self.particulator.attributes["radius"], is_first_in_pair) 24 self.pair_tmp **= 2 25 output *= self.pair_tmp 26 self.pair_tmp.distance(self.particulator.attributes["area"], is_first_in_pair) 27 output *= self.pair_tmp