Ejemplo n.º 1
0
def main():
    L = 10
    N = 100
    M = 10
    a = 100
    D = .1
    Q =  -0.04890698 
    Mr = 0.007
    S0 = 0.042731691
    S0 = 0.116914981
    S0s = [0.042731691,0.174868713,0.116914981,0.065484615,-0.178530533,-0.017923349,0.042784691,-0.246330809]
    t0 = 0
    p0 = PyPipe_ps(N,D,L,M,a)
    y0 = p0.AofH(10,False)
    print F(y0,0,Q,L,N,D,M,a,S0,Mr)
    ts = np.linspace(0,L,100)
    '''for i in range(2):
        
        S0 = i*.05+.01
        for k in range(4):
            Mr = 0.002*k+.01
            Qt = (Q,L,N,D,M,a,S0,Mr)
            y1 = odeint(F,y0,ts,args =Qt)
            H = [p0.HofA(y,False) for y in y1]
            plt.plot(ts,H,label ="Mr = %.3f, S0=%.2f"%(Mr,S0))
            '''
    dys =[]
    for k in range(len(S0s)):
        S0 = S0s[k]
        Qt = (Q,L,N,D,M,a,S0,Mr)
        y1 = odeint(F,y0,ts,args =Qt)
        dys.append((y1[-1]-y1[0])/L)
    for k in range(len(S0s)):
        print "%f    %e"%(S0s[k],dys[k])
Ejemplo n.º 2
0
def F(y,t,Q,L,N,D,M,a,S0,Mr):
    #(Q,L,N,D,M,a,S0,Mr) = args
    print "y = %f" %y
    p0 = PyPipe_ps(N,D,L,M,a)
    p0.Mr = Mr
    p0.S0 = S0
    S = p0.getSourceTerms(y,Q) 
    u = Q/y
    c =p0.Cgrav(y,True)
    return S/(c**2-u**2)
Ejemplo n.º 3
0
n1 = PyNetwork(fi,fc,1)
dt = n1.T/float(n1.M)
Q00 = 0.0087
for i in range(0,Np):
    d = n1.Ds[i]
    A0 = (d*d/4.)*np.ones(n1.Ns[i])
    Q0 = 0*np.ones(n1.Ns[i])
    n1.setIC(i,A0,Q0)
Qb = Q00*np.ones(M+1)
n1.setbVal(0,Qb)

Ttot= 0
Vs = [n1.getTotalVolume()]
for m in range(Nt):
    try:
        n1.runForwardProblem(dt)
    except:
        print "whoops. dt is probably too small. quitting at time T=%f"%((m-1.)*T)
        break
    for j in range(Np):
        N = n1.Ns[j]
        p0 = PyPipe_ps(N,n1.Ds[j], n1.Ls[j],M,a)
        qh = n1.qhist(j)
        Htemp = [p0.pbar(qh[idx_t(0,Nstar,n,n1.Ns[j])],False) for n in range(1,M+1,Mi)]
        Hs[j,m*(M/Mi):(M/Mi)*(m+1)] = Htemp
    Vs.append(n1.getTotalVolume()) 
    Ttot +=T
    print Ttot
    print Vs
    n1.reset()