12 def __init__(self, codeu, mrn_pow, mrn_cutoff_si, grain_size_si_edges, rho_grains_si_edges):
19 to_m = self.
codeu.get(
"m")
20 to_kg = self.
codeu.get(
"kg")
21 to_dens = to_kg * to_m**-3
23 rank_0_print(
" ---- MRN DISTRIBUTION ----")
25 rank_0_print(
"bin edges:")
26 rank_0_print(f
" grains sizes (edges) = {self.grain_size_si_edges.tolist()} [m]")
27 rank_0_print(f
" grains dens (edges) = {self.rho_grains_si_edges.tolist()} [kg.m^-3]")
32 rank_0_print(f
" grains sizes (edges) = {self.grain_size_edges.tolist()} [code u]")
33 rank_0_print(f
" grains dens (edges) = {self.rho_grains_edges.tolist()} [code u]")
36 rank_0_print(
"bin centers (geom averages):")
47 rank_0_print(f
" grains sizes (bin) = {self.grain_size_si.tolist()} [m]")
48 rank_0_print(f
" grains dens (bin) = {self.rho_grains_si.tolist()} [kg.m^-3]")
50 rank_0_print(f
" grains sizes (bin) = {self.grain_size.tolist()} [code units]")
51 rank_0_print(f
" grains dens (bin) = {self.rho_grains.tolist()} [code units]")
59 rank_0_print(f
" massgrid = {self.massgrid_si.tolist()} [kg]")
60 rank_0_print(f
" massgrid = {self.massgrid.tolist()} [code units]")
63 rank_0_print(
"deduced:")
66 rank_0_print(f
" alpha = 3 - mrn_pow = {self.alpha}")
70 rank_0_print(f
" s (edges) max = {max_s} min = {min_s} [m]")
77 f
" grains sizes (edges) (clipped) = {self.grain_size_si_edges_clipped.tolist()} [m]"
84 return s ** (self.
alpha + 1) / (self.
alpha + 1)
90 rank_0_print(f
" mrn_weight = {self.mrn_weight.tolist()}")
91 rank_0_print(f
" sum(mrn_weight) = {np.sum(self.mrn_weight)}")
100 def s_mean_pow_1(add_pow, val):
101 return val ** (self.
alpha + add_pow) / (self.
alpha + add_pow)
103 def s_mean_pow_2(add_pow):
104 return s_mean_pow_1(add_pow, max_s) - s_mean_pow_1(add_pow, min_s)
106 analytical_S_mean = s_mean_pow_2(2) / s_mean_pow_2(1)
110 f
" S_mean = {S_mean} S_mean_init = {analytical_S_mean} (diff = {S_mean - analytical_S_mean})"
113 rank_0_print(
" -------------------------")