def kspec(rc): import AnalysisFunctions as af import numpy as np from subs import ask_for_steps rc.vars2load(['bx', 'by', 'bz']) bs, fs, step = ask_for_steps(rc.numslices) ebx = np.zeros(rc.nx / 2 + 1) eby = np.zeros(rc.nx / 2 + 1) ebz = np.zeros(rc.nx / 2 + 1) for it in range(bs, fs, step): print('time slice', it) rc.loadslice(it) kk, ekx, eky, ekz, ekb = af.fperpspecvec(rc.bx, rc.by, rc.bz) ebx = ebx + ekx eby = eby + eky ebz = ebz + ekz kk = kk * 2 * np.pi / rc.lx dk = kk[2] - kk[1] ebz = ebz * float(step) / (float(fs - bs) * dk) eby = eby * float(step) / (float(fs - bs) * dk) ebx = ebx * float(step) / (float(fs - bs) * dk) outf = open('kspec.' + rc.dirname + '.dat', 'w') for i in range(rc.nx / 2): print(kk[i], ebx[i], eby[i], ebz[i], file=outf) outf.close()
#!/usr/bin/env python import numpy as np from subs import create_object,ask_for_steps from AnalysisFunctions import fcorr rc=create_object() rc.vars2load(['bx','by']) ofile=open('intscale.'+rc.dirname+'.dat','w') ie=1/np.e bs,fs,step=ask_for_steps(rc.numslices) for i in range(bs,fs,step): print i rc.loadslice(i) rx,bxcor=fcorr(rc.bx,rc.bx,ax=0,dx=rc.dx) # lxc=rx[abs(bxcor-ie).argmin()] lxint=np.sum(bxcor)*rc.dx ry,bycor=fcorr(rc.by,rc.by,ax=1,dx=rc.dy) # lyc=ry[abs(bycor-ie).argmin()] lyint=np.sum(bycor)*rc.dy print >> ofile,rc.time,lxint,lyint,0.5*(lxint+lyint) ofile.close()
def zpzmlclm(rc): import AnalysisFunctions as af import numpy as np from subs import ask_for_steps rc.vars2load(['bx','by','bz','jix','jiy','j*z','ni','jex','jey','jez','ne']) bs,fs,step=ask_for_steps(rc.numslices) #bs=0; fs=rc.numslices; step=1 nt=(fs-bs)/step+1 ie=1/np.e ezp=np.zeros(nt); ezm=np.zeros(nt) tt=np.zeros(nt); tnldi=np.zeros(nt) lcp=np.zeros(nt); lcm=np.zeros(nt) #time_series_output=raw_input("Output zp, zm etc as a time series? ") time_series_output = '' if time_series_output == 'y': zpkxt = np.zeros((rc.nx/2,nt)) zpkyt = np.zeros((rc.nx/2,nt)) zpkzt = np.zeros((rc.nx/2,nt)) zmkxt = np.zeros((rc.nx/2,nt)) zmkyt = np.zeros((rc.nx/2,nt)) zmkzt = np.zeros((rc.nx/2,nt)) for it in range(bs,fs,step): print('time slice',it) rc.loadslice(it) idx=(it-bs)/step rho=rc.ni+rc.ne*rc.m_e rc.jix=rc.jix/rc.ni; rc.jiy=rc.jiy/rc.ni;rc.j*z=rc.j*z/rc.ni rc.jex=rc.jex/rc.ne; rc.jey=rc.jey/rc.ne;rc.jez=rc.jez/rc.ne # vcx = (rc.jix+rc.jex*rc.m_e)/(1+rc.m_e) vcy = (rc.jiy+rc.jey*rc.m_e)/(1+rc.m_e) vcz = (rc.j*z+rc.jez*rc.m_e)/(1+rc.m_e) rc.bx=(rc.bx-np.mean(rc.bx))/np.sqrt(rho) rc.by=(rc.by-np.mean(rc.by))/np.sqrt(rho) rc.bz=(rc.bz-np.mean(rc.bz))/np.sqrt(rho) # vcx=vcx-np.mean(vcx);vcy=vcy-np.mean(vcy);vcz=vcz-np.mean(vcz) # zpx=vcx+rc.bx; zpy=vcy+rc.by; zpz=vcz+rc.bz # ezp[idx]=0.5*np.mean(rho*(np.abs(zpx)**2+np.abs(zpy)**2+np.abs(zpz)**2)) zmx=vcx-rc.bx; zmy=vcy-rc.by; zmz=vcz-rc.bz # ezm[idx]=0.5*np.mean(rho*(np.abs(zmx)**2+np.abs(zmy)**2+np.abs(zmz)**2)) ## #Correlation for z+ #kwave,zkx,zky,zkz,zk = af.PerpSpecVec(zpx,zpy,zpz) kwave,zkx,zky,zkz,zk = af.fperpspecvec(zpx,zpy,zpz) if time_series_output == 'y': zpkt[:,idx]=zk lcp[idx] = (2*np.pi/sum(zk[1:]))*sum(zk[1:]/kwave[1:]) ## #Correlation for z- #kwave,zkx,zky,zkz,zk = af.PerpSpecVec(zmx,zmy,zmz) kwave,zkx,zky,zkz,zk = af.fperpspecvec(zmx,zmy,zmz) if time_series_output == 'y': zmkt[:,idx]=zk lcm[idx] = (2*np.pi/sum(zk[1:]))*sum(zk[1:]/kwave[1:]) # tt[idx]=round(it*rc.dtmovie,4) # wci*tnl(di) = Va/Z (L/di)^(1/3) # Matthaeus EA, ApJ 2014 tnldi[idx]=(rc.B0*((lcp[idx]+lcm[idx])/2.)**(1./3.))/(2*np.sqrt(ezp[idx]+ezm[idx])) outf=open('zpzmlc.'+rc.dirname+'.dat','w') print('#','t','tt','ezp','ezm','lcp','lcm','tnldi', file=outf) for i in range(nt): print(tt[i],tt[i]*2*np.pi/rc.lx,ezp[i],ezm[i],lcp[i],lcm[i],tnldi[i], file=outf) outf.close() rc.fin() if time_series_output == 'y': zpkxt.tofile('zpkxt.'+rc.dirname+'.dat') zpkyt.tofile('zpkyt.'+rc.dirname+'.dat') zpkzt.tofile('zpkzt.'+rc.dirname+'.dat') zmkxt.tofile('zmkxt.'+rc.dirname+'.dat') zmkyt.tofile('zmkyt.'+rc.dirname+'.dat') zmkzt.tofile('zmkzt.'+rc.dirname+'.dat')