Esempio n. 1
0
 def impl(dy_dt, x, T, p, n, RH, kappa, rd, thd, dot_thd, dot_qv,
          m_d_mean, rhod_mean):
     for i in range(len(x)):
         dy_dt[idx_x + i] = dx_dt(
             x[i],
             phys.dr_dt_MM(phys.radius(volume(x[i])), T, p, RH, kappa,
                           rd[i]))
     dqv_dt = dot_qv - np.sum(
         n * volume(x) * dy_dt[idx_x:]) * rho_w / m_d_mean
     dy_dt[idx_thd] = dot_thd + phys.dthd_dt(rhod_mean, thd, T, dqv_dt)
Esempio n. 2
0
def foo(dy_dt, rw, T, p, n, RH, kappa, rd, qv, dot_rhod, dot_thd, dot_qv, m_d):
    dy_dt[idx_qv] = dot_qv
    dy_dt[idx_thd] = dot_thd
    dy_dt[idx_rhod] = dot_rhod

    for i in range(len(rw)):
        dy_dt[idx_rw + i] = phys.dr_dt_MM(rw[i], T, p, RH - 1, kappa, rd[i])
    dy_dt[idx_qv] -= 4 * np.pi * np.sum(
        n * rw**2 * dy_dt[idx_rw:]) * rho_w / m_d
    dy_dt[idx_thd] -= phys.lv(T) * dy_dt[idx_qv] / phys.c_p(qv) * (
        p1000 / p)**(Rd / c_pd)
Esempio n. 3
0
 def __call__(self, r_w):
     return formulae.dr_dt_MM(r_w, self.T, self.p, self.S, self.kappa,
                              self.r_d)