Beispiel #1
0
 def recalculate(self):
     kappa = self.particles.dynamics['Condensation'].kappa
     r_d = self.r_dry.get()
     T = self.environment['T']
     cell = self.cell_id.get()
     for i in range(len(self.data)):  # TODO: move to backend
         self.data.data[i] = phys.r_cr(kp=kappa, rd=r_d[i], T=T[cell[i]])
Beispiel #2
0
 def recalculate(self):
     kappa = self.particles.dynamics[
         "<class 'PySDM.dynamics.condensation.condensation.Condensation'>"].kappa
     r_d = self.r_dry.get()
     T = self.environment['T']
     cell = self.cell_id.get()
     for i in range(len(self.data)):
         self.data[i] = phys.r_cr(kp=kappa, rd=r_d[i], T=T[cell[i]])
Beispiel #3
0
def r_wet_init_impl(r_dry: np.ndarray, T, p, RH, cell_id: np.ndarray, kappa):
    r_wet = np.empty_like(r_dry)

    for i, r_d in enumerate(r_dry):
        cid = cell_id[i]
        # root-finding initial guess
        a = r_d
        b = formulae.r_cr(kappa, r_d, T[cid])
        # minimisation
        f = _MinFun(T[cid], p[cid], np.minimum(1, RH[cid]), kappa, r_d)
        r_wet[i] = root.brentq(f, a, b)

    return r_wet