Beispiel #1
0
def dD_du(u, X, Y, gamma, Nz, Nx):

    num_term = 10  #in future will be global or define in a settings file

    hdt = HotDiTen(X, Y, gamma, Nz, Nx, num_term)
    dielTen = [
        hdt.Kxx(),
        hdt.Kyy(),
        hdt.Kzz(),
        hdt.Cxy(),
        hdt.Cxz(),
        hdt.Cyz()
    ]
    ddt = DerivOfHotDiTen(X, Y, gamma, Nz, Nx, num_term)
    derivOfDielTen = [
        ddt.dKxx_du(u),
        ddt.dKyy_du(u),
        ddt.dKzz_du(u),
        ddt.dCxy_du(u),
        ddt.dCxz_du(u),
        ddt.dCyz_du(u)
    ]

    val = dA_du(u, Nz, dielTen, derivOfDielTen) + dB_du(
        u, Nz,
        dielTen, derivOfDielTen) / Nx**2 - 2 / Nx**3 * B(Nz, dielTen) * H(
            u, "Nx") + dC_du(u, Nz, dielTen, derivOfDielTen) / Nx**4 - 4 * C(
                Nz, dielTen) / Nx**5 * H(u, "Nx")

    #print val,derivOfDielTen

    return val
Beispiel #2
0
def get_ABC(X, Y, gamma, Nx, Nz):
    from hotDiTen import HotDiTen
    from dispRel import A, B, C
    hdt = HotDiTen(X, Y, gamma, Nx, Nz, 10)
    dielTen = [
        hdt.Kxx(),
        hdt.Kyy(),
        hdt.Kzz(),
        hdt.Cxy(),
        hdt.Cxz(),
        hdt.Cyz()
    ]
    return A(Nz, dielTen), B(Nz, dielTen), C(Nz, dielTen)
Beispiel #3
0
def disp_rel(X, Y, gamma, Nz, Nx):

    num_term = 20  #in future will be global or define in a settings file

    hdt = HotDiTen(X, Y, gamma, Nz, Nx, num_term)
    dielTen = [
        hdt.Kxx(),
        hdt.Kyy(),
        hdt.Kzz(),
        hdt.Cxy(),
        hdt.Cxz(),
        hdt.Cyz()
    ]

    return A(Nz, dielTen) + B(Nz, dielTen) / Nx**2 + C(Nz, dielTen) / Nx**4
Beispiel #4
0
def dD_du(u,X,Y,gamma,Nz,Nx):



    num_term = 10 #in future will be global or define in a settings file
    
    hdt=HotDiTen(X,Y,gamma,Nz,Nx,num_term)
    dielTen = [hdt.Kxx(),hdt.Kyy(),hdt.Kzz(),hdt.Cxy(),hdt.Cxz(),hdt.Cyz()]
    ddt = DerivOfHotDiTen(X,Y,gamma,Nz,Nx,num_term)
    derivOfDielTen = [ddt.dKxx_du(u), ddt.dKyy_du(u), ddt.dKzz_du(u), ddt.dCxy_du(u), ddt.dCxz_du(u), ddt.dCyz_du(u)]
   

    #print( dielTen)
    #print dA_du(u,Nz,dielTen,derivOfDielTen),dB_du(u,Nz,dielTen,derivOfDielTen),dC_du(u,Nz,dielTen,derivOfDielTen)
    return Nx**4*dA_du(u,Nz,dielTen,derivOfDielTen) + 4*Nx**3*A(Nz,dielTen)*H(u,"Nx") + Nx**2*dB_du(u,Nz,dielTen,derivOfDielTen) + 2*Nx*B(Nz,dielTen)*H(u,"Nx") + dC_du(u,Nz,dielTen,derivOfDielTen)
Beispiel #5
0
def check_hdt(soln):

    #ind=np.where(np.isnan(soln[:,3]))[0][0]
    #print ind
    #ind = ind - 1
    ind = soln[:-1,3].size-1
    r = [soln[ind-1,0],soln[ind-1,1]]
    Nz = soln[ind-1,2]
    Nx = soln[ind-1,3]

    globalN = np.array([Nz,Nx])
    locN = Local_N(p.Yvec(r), p.gradY(r),globalN)
    hdt = HotDiTen(p.X(r),p.Yabs(r),p.gamma(r),locN.Nz(),locN.Nx(),20)
    print "lam",hdt.lam()
    print "zeta",hdt.zeta(10)

    print "Z", hdt.Z(10)
    print "Zp", hdt.Zp(10)
    print "Zpp", hdt.Zpp(10)
    print "Zpp_naive", hdt.Zpp_naive(10)


    print "X", p.X(r)
    print "dX_dr", p.dX_dr(r)
   
    print "Yabs", p.Yabs(r)
    print "gradY", p.gradY(r)
    print "dY_dr", p.dY_dr(r)
    

    print "lNx",locN.Nx()
    print "lNz",locN.Nz()
    print "dNz_dN",locN.dNz_dN()
    print "dNx_dN",locN.dNx_dN()
    print "dNx_dr",locN.dNx_dr()
    print "dNz_dr",locN.dNz_dr()



    print "Kxx",hdt.Kxx()
    print "Kyy",hdt.Kyy()
    print "Kzz",hdt.Kzz()
    print "Cxy",hdt.Cxy()
    print "Cyz",hdt.Cyz()


    X = p.X(r)
    Y = p.Yabs(r)
    gamma = p.gamma(r)
    X=p.X(r)

    Y=p.Yabs(r)
    gamma = p.gamma(1)
    
    localN = Local_N(p.Yvec(r),p.gradY(r),globalN)
    
    localNz=localN.Nz()
    localNx=localN.Nx()
    dNz_dN=localN.dNz_dN()
    dNx_dN=localN.dNx_dN()
    dNz_dr=localN.dNz_dr()
    dNx_dr=localN.dNx_dr()
    dX_dr = p.dX_dr(r)
    dY_dr = p.dY_dr(r)
    dgamma_dr = p.dgamma_dr(1)
    
    print "vg",-dD_dN( X,Y,gamma,localNz,localNx,dNz_dN,dNx_dN  ) / dD_dw( X,Y,gamma,localNz,localNx  )


    print "dN_dt",dD_dr(X,Y,gamma,localNz,localNx,dNz_dr,dNx_dr,dX_dr,dY_dr,dgamma_dr) / dD_dw( X,Y,gamma,localNz,localNx  )