cxrs_file_name = 'cxrs1120907032.01010_v20140623' # read EFIT file psip_n, Rgrid, Zgrid, F, p, ffprime, pprime, psirz, qpsi, rmag, zmag, nw, psiax, psisep = read_EFIT_file_cmod(efit_file_name) # calculate psip_n vs rhot_n rho_tor_spl, rhot_n = calc_rho_tor(psip_n, psiax, psisep, qpsi, nw) # calculate B_pol and B_tor at outboard midplane psip_n_obmp, R_obmp, B_pol, B_tor = calc_B_fields(Rgrid, rmag, Zgrid, zmag, psirz, psiax, psisep, F,nw,psip_n) psip_obmp = psip_n_obmp*(psisep-psiax)+psiax rhot_n_obmp = rho_tor_spl(psip_obmp) ### read from p-file ### ne, ni are in the unit of 10^20 m^(-3) ### te, ti are in the unit of KeV psi0, ne, te, ni, ti_pfile, nz_pfile=read_cmod_pfile(p_file_name,shift_Ti=False,shift_Te=False,add_impurity=True) # convert into SI units ne = ne*1E20 te = te*e*1E03 #ni = ni*1E20 #ti_pfile = ti_pfile*e*1E03 #nz_pfile = nz_pfile*1E20 # find ni,ti,ne,te,q on the grid of uniform psip_n at outboard midplane rhot0=rho_tor_spl(psi0*(psisep-psiax)+psiax) #ni_obmp = interp(psi0,ni,psip_n_obmp) #ti_obmp = interp(psi0,ti,psip_n_obmp) ne_obmp = interp(psi0,ne,psip_n_obmp) te_obmp = interp(psi0,te,psip_n_obmp)
plt.plot(rhot_n, p) plt.ylabel('p') plt.xlabel('rho_tor') #x1,x2,y1,y2=plt.axis() #plt.axis((0.945,1.0,y1,y2)) plt.show() ### calculate B_pol and B_tor at the outboard midplane (obmp) psip_n_obmp, R_obmp, B_pol, B_tor = calc_B_fields(Rgrid, rmag, Zgrid, zmag, psirz, psiax, psisep, F, nw, psip_n) psip_obmp = psip_n_obmp * (psisep - psiax) + psiax rhot_n_obmp = rho_tor_spl(psip_obmp) psi0, ne, te, ni, ti, nz = read_cmod_pfile(p_file_name) ne = ne * 1E20 te = te * e * 1E03 ni = ni * 1E20 ti = ti * e * 1E03 nz = nz * 1E20 #plt.plot(psi0,te,'x',label='electron temp') #plt.plot(psi0,ti,'r.',label='ion temp') #plt.legend() #plt.show() rhot0 = rho_tor_spl(psi0 * (psisep - psiax) + psiax) ni_obmp = interp(psi0, ni, psip_n_obmp) ti_obmp = interp(psi0, ti, psip_n_obmp)
#plt.title(p_file_name) #plt.show() ### plot ni (m^(-3)) vs psip_ni plt.plot(psipni, ni, 'x', label='ni p-file') #plt.xlabel('psip_ni') #plt.ylabel('ni') plt.legend() plt.title('raw ' + p_file_name) x1, x2, y1, y2 = plt.axis() plt.axis((0.95, 1.0, y1, y2)) plt.show() ### read pfile and calculate impurity density if shift_Ti: psi0, ne, te, ni, ti, nz = read_cmod_pfile(p_file_name) else: psi0, ne, te, ni, ti, nz = read_cmod_pfile(p_file_name, shift_Ti=True, shift_Te=True) psip = psi0 * (psisep - psiax) + psiax rhot0 = rho_tor_spl(psip) ### convert to SI units ne = ne * 1E20 te = te * e * 1E03 ni = ni * 1E20 ti = ti * e * 1E03 nz = nz * 1E20
psip_n, Rgrid, Zgrid, F, p, ffprime, pprime, psirz, qpsi, rmag, zmag, nw, psiax, psisep = read_EFIT_file(efit_file_name) ### find conversion relation from psi_pol to rhot_n rho_tor_spl, rhot_n = calc_rho_tor(psip_n, psiax, psisep, qpsi, nw) ### calculate B_pol and B_tor at the outboard midplane (obmp) uniform R grid psip_n_obmp, R_obmp, B_pol, B_tor = calc_B_fields(Rgrid, rmag, Zgrid, zmag, psirz, psiax, psisep, F,nw,psip_n) psip_obmp = psip_n_obmp*(psisep-psiax)+psiax rhot_n_obmp = rho_tor_spl(psip_obmp) ### read from p-file ### ne, ni are in the unit of 10^20 m^(-3) ### te, ti are in the unit of KeV #psi0, ne, te, ni, ti, nz=read_cmod_pfile(p_file_name,shift=False) psi0, ne, te, ni, ti, nz=read_cmod_pfile(p_file_name,shift_Ti=True,shift_Te=True) ne = ne*1E20 te = te*e*1E03 ni = ni*1E20 ti = ti*e*1E03 nz = nz*1E20 rhot0=rho_tor_spl(psi0*(psisep-psiax)+psiax) ni_obmp = interp(psi0,ni,psip_n_obmp) ti_obmp = interp(psi0,ti,psip_n_obmp) ne_obmp = interp(psi0,ne,psip_n_obmp) te_obmp = interp(psi0,te,psip_n_obmp) rhotp_obmp = interp(psi0,rhot0,psip_n_obmp) q_obmp = interp(psip_n, qpsi, psip_n_obmp)
psip_n, Rgrid, Zgrid, F, p, ffprime, pprime, psirz, qpsi, rmag, zmag, nw, psiax, psisep = read_EFIT_file( efit_file_name) rho_tor_spl, rhot_n = calc_rho_tor(psip_n, psiax, psisep, qpsi, nw) psip_n_obmp, R_obmp, B_pol, B_tor = calc_B_fields(Rgrid, rmag, Zgrid, zmag, psirz, psiax, psisep, F, nw, psip_n) psip_obmp = psip_n_obmp * (psisep - psiax) + psiax rhot_n_obmp = rho_tor_spl(psip_obmp) p_obmp = interp(psip_n, p, psip_n_obmp) if shift_Ti: psi0, ne, te, ni, ti, nz = read_cmod_pfile(p_file_name) else: psi0, ne, te, ni, ti, nz = read_cmod_pfile(p_file_name, shift_Ti=False, shift_Te=False) ne = ne * 1E20 te = te * e * 1E03 ni = ni * 1E20 ti = ti * e * 1E03 nz = nz * 1E20 rhot0 = rho_tor_spl(psi0 * (psisep - psiax) + psiax) ni_obmp = interp(psi0, ni, psip_n_obmp) ti_obmp = interp(psi0, ti, psip_n_obmp)
from calc_gammaE import * from read_Er import * e = 1.6*10**(-19) impurity_charge = 5.0 parser = op.OptionParser() options,args = parser.parse_args() efit_file_name = 'g1120907032.01012' p_file_name = 'p1120907032.01012' ### read EFIT file psip_n, Rgrid, Zgrid, F, p, ffprime, pprime, psirz, qpsi, rmag, zmag, nw,psiax,psisep = read_EFIT_file(efit_file_name) #psi0, ne, te, ni, ti, nz=read_cmod_pfile(p_file_name,shift=True,add_impurity=True) psi0, ne, te, ni, ti, nz=read_cmod_pfile(p_file_name,shift_Te=True,shift_Ti=True,add_impurity=True) ne = ne*1E20 te = te*e*1E03 ni = ni*1E20 ti = ti*e*1E03 nz = nz*1E20 plt.plot(ti,te) plt.show() print "check quasineutrality:", max(abs(ne-(ni+impurity_charge*nz))/ne[0]) #plt.plot(psi0,(ni+impurity_charge*nz),'x',label='ni+z*nz') #plt.plot(psi0,ne,'r.',label='ne') #plt.legend() #plt.show()
#plt.show() ### calculate B_pol and B_tor at the outboard midplane (obmp) uniform R grid psip_n_obmp, R_obmp, B_pol, B_tor = calc_B_fields(Rgrid, rmag, Zgrid, zmag, psirz, psiax, psisep, F,nw,psip_n) psip_obmp = psip_n_obmp*(psisep-psiax)+psiax rhot_n_obmp = rho_tor_spl(psip_obmp) #plt.plot(psip_n_obmp,rhot_n_obmp,'x') #plt.plot(psip_n,rhot_n,'r.') #plt.show() ### read from p-file ### ne, ni are in the unit of 10^20 m^(-3) ### te, ti are in the unit of KeV psi0, ne, te, ni, ti, nz=read_cmod_pfile(p_file_name) ne = ne*1E20 te = te*e*1E03 ni = ni*1E20 ti = ti*e*1E03 nz = nz*1E20 ##plt.plot(psi0,te,'x',label='electron temp') ##plt.plot(psi0,ti,'r.',label='ion temp') ##plt.legend() ##plt.show() rhot0=rho_tor_spl(psi0*(psisep-psiax)+psiax) ni_obmp = interp(psi0,ni,psip_n_obmp) ti_obmp = interp(psi0,ti,psip_n_obmp)
plot_lingr = options.plot_lingr test_calc = options.test_calc psip_n, Rgrid, Zgrid, F, p, ffprime, pprime, psirz, qpsi, rmag, zmag, nw, psiax,psisep = read_EFIT_file(efit_file_name) rho_tor_spl, rhot_n = calc_rho_tor(psip_n, psiax, psisep, qpsi, nw) psip_n_obmp, R_obmp, B_pol, B_tor = calc_B_fields(Rgrid, rmag, Zgrid, zmag, psirz, psiax, psisep, F,nw,psip_n) psip_obmp = psip_n_obmp*(psisep-psiax)+psiax rhot_n_obmp = rho_tor_spl(psip_obmp) p_obmp = interp(psip_n,p,psip_n_obmp) if shift_Ti : psi0, ne, te, ni, ti, nz=read_cmod_pfile(p_file_name) else: psi0, ne, te, ni, ti, nz=read_cmod_pfile(p_file_name,shift_Ti=False,shift_Te=False) ne = ne*1E20 te = te*e*1E03 ni = ni*1E20 ti = ti*e*1E03 nz = nz*1E20 rhot0=rho_tor_spl(psi0*(psisep-psiax)+psiax) ni_obmp = interp(psi0,ni,psip_n_obmp) ti_obmp = interp(psi0,ti,psip_n_obmp) ne_obmp = interp(psi0,ne,psip_n_obmp) te_obmp = interp(psi0,te,psip_n_obmp)