Esempio n. 1
0
def testRK4(uCI, dt, n):
    t = []
    u = []

    t.append(0)
    u.append(uCI)

    for i in range(1, n + 1):
        (tf, uf) = rk.rungeKutta4(dt,
                                  t[i - 1],
                                  u[i - 1][0],
                                  u[i - 1][1],
                                  u[i - 1][2],
                                  u[i - 1][3],
                                  key1=dx,
                                  key2=dVx,
                                  key3=dy,
                                  key4=dVy)
        t.append(tf)
        u.append(uf)

    x = [i for i, j, k, l in u]
    vx = [j for i, j, k, l in u]
    y = [k for i, j, k, l in u]
    vy = [l for i, j, k, l in u]

    return t, x, vx, y, vy
Esempio n. 2
0
def tirRK(n,L,y0,z0,yDer,zDer,x0=0,opt=2):
    """
        Integrates between x = 0 or x0 and x = L :
            opt = 2 : rungeKutta2
            opt = 4 : rungeKutta4
    """
    h = L/n
    x = []; u = []
    
    x.append(x0)
    u.append([y0,z0]) 
    
    for i in range(1,n+1):
        if(opt == 2):
            (xf,uf)= rungeKutta2(h,x[i-1],u[i-1][0],u[i-1][1],key1=yDer,key2=zDer)
        elif(opt == 4):    
            (xf,uf)= rungeKutta4(h,x[i-1],u[i-1][0],u[i-1][1],key1=yDer,key2=zDer)
        elif(opt == 0):
            (xf,uf)= explicitEuler(h,x[i-1],u[i-1][0],u[i-1][1],key1=yDer,key2=zDer)
        x.append(xf)
        u.append(uf)
    
    y = [i for i,j in u]
    z = [j for i,j in u]

    return x,y,z
Esempio n. 3
0
def integrationRK4(uCI, dt, n):
    t = []
    u = []

    t.append(0)
    u.append(uCI)

    for i in range(1, n + 1):
        (tf, uf) = rk.rungeKutta4(dt,
                                  t[i - 1],
                                  u[i - 1][0],
                                  u[i - 1][1],
                                  u[i - 1][2],
                                  u[i - 1][3],
                                  u[i - 1][4],
                                  u[i - 1][5],
                                  key1=derx,
                                  key2=derVx,
                                  key3=dery,
                                  key4=derVy,
                                  key5=derz,
                                  key6=derVz)
        t.append(tf)
        u.append(uf)

    x = [i for i, j, k, l, m, n in u]
    vx = [j for i, j, k, l, m, n in u]
    y = [k for i, j, k, l, m, n in u]
    vy = [l for i, j, k, l, m, n in u]
    z = [m for i, j, k, l, m, n in u]
    vz = [n for i, j, k, l, m, n in u]

    return t, x, vx, y, vy, z, vz
Esempio n. 4
0
def testRK4(uCI, dt, n):
    t = []
    u = []

    t.append(0)
    u.append(uCI)

    for i in range(1, n + 1):
        (tf, uf) = rk.rungeKutta4(dt,
                                  t[i - 1],
                                  u[i - 1][0],
                                  u[i - 1][1],
                                  u[i - 1][2],
                                  u[i - 1][3],
                                  key1=dtheta,
                                  key2=dVtheta,
                                  key3=dphi,
                                  key4=dVphi)
        t.append(tf)
        u.append(uf)

    theta = [i for i, j, k, l in u]
    vtheta = [j for i, j, k, l in u]
    phi = [k for i, j, k, l in u]
    vphi = [l for i, j, k, l in u]

    return t, theta, vtheta, phi, vphi
Esempio n. 5
0
def testRK4(uCI,dt,n):  
    t = []
    u = []

    t.append(0)
    u.append(uCI) 


    for i in range(1,n+1):
        (tf,uf)=rk.rungeKutta4(dt,t[i-1],u[i-1][0],u[i-1][1],
        key1=dertheta,key2=derVtheta)
        t.append(tf)
        u.append(uf)
        
    theta = [i for i,j in u]
    vtheta = [j for i,j in u]
    
    return t,theta,vtheta
Esempio n. 6
0
def testRK4(uCI, dt, n):
    t = []
    u = []

    t.append(0)
    u.append(uCI)

    p = 10  # sampling step
    tTemp = []
    uTemp = []
    tTemp.append(0)
    uTemp.append(uCI)

    print("t0 :", tTemp[0])
    for i in range(1, n + 1):
        j = (i - 1) % p
        #(tf,uf)=rk.rungeKutta4(dt,t[i-1],u[i-1][0],u[i-1][1],u[i-1][2],u[i-1][3],key1=derX1,key2=derY1,key3=derX2,key4=derY2)
        (tf, uf) = rk.rungeKutta4(dt,
                                  tTemp[j],
                                  uTemp[j][0],
                                  uTemp[j][1],
                                  uTemp[j][2],
                                  uTemp[j][3],
                                  key1=derX1,
                                  key2=derY1,
                                  key3=derX2,
                                  key4=derY2)
        if (i % p == 0):
            # Values are added to final lists
            t.append(tf)
            u.append(uf)
            # We empty the temporary tables
            tTemp[:] = []
            uTemp[:] = []
        tTemp.append(tf)
        uTemp.append(uf)

    x1 = [i for i, j, k, l in u]
    y1 = [j for i, j, k, l in u]
    x2 = [k for i, j, k, l in u]
    y2 = [l for i, j, k, l in u]

    return t, x1, y1, x2, y2
Esempio n. 7
0
def testRK4(uCI,dt,n):  
    t = []
    u = []

    t.append(0)
    u.append(uCI) 


    for i in range(1,n+1):
        (tf,uf)=rk.rungeKutta4(dt,t[i-1],u[i-1][0],u[i-1][1],u[i-1][2],u[i-1][3],
        key1=derR,key2=derVr,key3=dertheta,key4=derVtheta)
        t.append(tf)
        u.append(uf)
        
    r = [i for i,j,k,l in u]
    vr = [j for i,j,k,l in u]
    theta = [k for i,j,k,l in u]
    vtheta = [l for i,j,k,l in u]
    
    return t,r,vr,theta,vtheta