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
SimpleGeometric(C)
 8    def __init__(self, C):
 9        self.particulator = None
10        self.pair_tmp = None
11        self.C = C
particulator
pair_tmp
C
def register(self, builder):
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        )