Example #1
0
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
Example #2
0
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)
Example #3
0
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