def calc_mass_sed(dmin, dmax, dgr, dcr, rhog, l, mu, fr): #D = [[dmin, dth], [dth, dgr], [dgr, dcr], [dcr, dmax]] D = [[dmin, dth], [dth, min(dgr,dmax)], [min(dgr,dmax), min(dcr,dmax)], [min(dcr,dmax), dmax]] a = b = np.zeros(4) b[0] = 3.0 b[1] = bva b[2] = 3.0 b[3] = bva a[0] = pisxth*rhoi a[1] = ava a[2] = pisxth*rhog a[3] = 1/(1-fr)*ava gamma = pifrth sigma = bva # f = lambda x, alpha, beta, gamma, sigma: tv.calc_vt_simple(x, alpha, beta, gamma, sigma)*gp.gammapdf(x, mu, l)*alpha*x**beta f = lambda x, alpha, beta, gamma, sigma: gp.gammapdf(x, mu, l)*alpha*x**beta integral = 0 for i in range(4): #if(D[i][0] < dmax): if(1): tmp = quad(f, D[i][0], min(dmax, D[i][1]), args=(a[i], b[i], gamma, sigma)) print tmp[0] integral += tmp[0] return integral
def integrate(rhor, fr, nitot, qitot, ttot, dt, dtout): fig = plt.figure() ax = fig.add_subplot(111, projection='3d') ax.set_xlabel('log(D) in m') ax.set_ylabel('t in s') ax.set_zlabel('dN/dlog(D)') qifrac = qitot/nitot status = s.set_properties_from_env(rhor, fr, qifrac) D = np.logspace(-5, -2, 100) tt = np.ones_like(D) if(status != 1): print '-' else: print '+' t = 0.0 while(t < ttot): if(t%dtout == 0): ax.plot(np.log10(D), tt*t, D*gammapdf(D, s.mu, s.l)*nitot, color=(0,0,0)) rate = collision_rate_pyt(s.dgr, s.dcr, s.rhog, fr, s.mu, s.l)*nitot**2 nitot = nitot - dt*rate t += dt qifrac = qitot/nitot status = s.set_properties_from_env(rhor, fr, qifrac) print 'step %i/%i: %s'%(t/dt, float(ttot)/dt, status) print 'N_i = %i'%(nitot)
def collision_integrand(Ds, Dl, dgr, dcr, rhog, fr, mu, l): Nl = gp.gammapdf(Dl, mu, l) Ns = gp.gammapdf(Ds, mu, l) K = calc.calc_kernel(Dl, Ds, dgr, dcr, rhog, fr) return Nl*Ns*K