def get_pressureEfield_classic(grid, rho_vyx, Bz_vyx, ne, Te_vyx): ''' ----- should get the kinetic biermann term -----> BierE_x,BierE_y = get_pressureEfield_classic(grid,rho_vyx,Bz_vyx,ne,Te_vyx) ''' # --- construct fo maxwellian v_grid = grid['v_grid'] nv, ny, nx = np.shape(Bz_vyx) v = extend_grid_v_to_vxy(nv, ny, nx, v_grid) #Te_vyx = extend_grid_xy_to_vxy(nv,ny,nx,Te) vte = (2.0 * Te_vyx)**0.5 fo_unnorm = ((np.pi * (vte**2))**(-1.5)) * np.exp(-(v / vte)**2) sum_array = np.sum(fo_unnorm, axis=0) sum_vyx = np.zeros((np.shape(Te_vyx))) for iv in range(nv): sum_vyx[iv, :, :] = sum_array fo = ne * ((np.pi * (vte**2))**(-1.5)) * np.exp(-(v / vte)**2) / sum_vyx # note IMPACT normalisation of fo different to Epperleins omega_vyx = Bz_vyx * rho_vyx gradfo_x, gradfo_y = cf.get_grad_3d_varZ(grid, fo) I1_x, I1_y = get_I1_vec(rho_vyx, omega_vyx, gradfo_x, gradfo_y, v_grid) I3_x, I3_y = get_I3_vec(rho_vyx, omega_vyx, gradfo_x, gradfo_y, v_grid) I2 = get_I2_scalar(rho_vyx, omega_vyx, fo, v_grid) I4 = get_I4_scalar(rho_vyx, omega_vyx, fo, v_grid) omega_yx = omega_vyx[0, :, :] Bz_yx = Bz_vyx[0, :, :] Eta = (I2 + (omega_yx**2) * ((I4**2) / I2)) BierE_x = (1.0 / Eta) * (I1_x + (omega_yx**2) * (I4 / I2) * I3_x) BierE_y = (1.0 / Eta) * (I1_y + (omega_yx**2) * (I4 / I2) * I3_y) return BierE_x, BierE_y
def get_hallfield(grid, rho_vyx, Bz_vyx, jx_vyx, jy_vyx, fo): ''' # kinetic nernst E_x,E_y = get_hallfield(grid,rho_vyx,Bz_vyx,jx_vyx,jy_vyx,fo) ''' v_grid = grid['v_grid'] omega_vyx = Bz_vyx * rho_vyx gradfo_x, gradfo_y = cf.get_grad_3d_varZ(grid, fo) I1_x, I1_y = get_I1_vec(rho_vyx, omega_vyx, gradfo_x, gradfo_y, v_grid) I3_x, I3_y = get_I3_vec(rho_vyx, omega_vyx, gradfo_x, gradfo_y, v_grid) I2 = get_I2_scalar(rho_vyx, omega_vyx, fo, v_grid) I4 = get_I4_scalar(rho_vyx, omega_vyx, fo, v_grid) omega_yx = omega_vyx[0, :, :] Bz_yx = Bz_vyx[0, :, :] jx_yx = jx_vyx[0, :, :] jy_yx = jy_vyx[0, :, :] Eta = (I2 + (omega_yx**2) * ((I4**2) / I2)) hallcoeff = (1.0 / Eta) * (I4 / I2) # E = -jxomega * hallcoeff ##E = omega x v # | i j k | | -j_y B_z | #-1* | jx jy 0 | | j_x B_z | # | 0 0 Bz| = | 0 | E_x = -Bz_yx * jy_yx * hallcoeff E_y = Bz_yx * jx_yx * hallcoeff return E_x, E_y
def get_kinetic_and_classicB(path, fprefix, time, xlim=-1): ''' classic_biermann,kinetic_biermann = get_kinetic_and_classicB(path,fprefix,time) ''' dict = cf.load_data_all_1D(path, fpre(path), time) ne = dict['ne'] Te = dict['Te'] qx = dict['qx'] qy = dict['qy'] jx = dict['jx'] jy = dict['jy'] dxT = dict['dxT'] dyT = dict['dyT'] Bz = dict['Bz'] x_grid = dict['x_grid'] y_grid = dict['y_grid'] Z2ni = dict['Z2ni'] prof_Z = dict['Z'] fo = dict['fo'] nv = dict['nv'] ny = dict['ny'] nx = dict['nx'] rA = (Z2ni)**-1 dict_fo = cf.load_dict_1D(path, fpre(path), 'fo', time) fo = dict_fo['mat'] time_col = dict_fo['time'] * tstep_factor rA = (Z2ni)**-1 #=============== grid = dict['grid'] dxfo, dyfo = cf.get_grad_3d_varZ(grid, fo) omega = Bz * rA rho_vyx = extend_grid_xy_to_vxy(nv, ny, nx, rA) Bz_vyx = extend_grid_xy_to_vxy(nv, ny, nx, Bz) omega_vyx = extend_grid_xy_to_vxy(nv, ny, nx, omega) Te_vyx = extend_grid_xy_to_vxy(nv, ny, nx, Te) ne_vyx = extend_grid_xy_to_vxy(nv, ny, nx, ne) #------ NERNST ----------------------------------------------------- print '\n\n--------- time ==================== ', time #v_nx,v_ny = get_v_N(grid,rho_vyx,Bz_vyx,fo) print(' bier init= ', np.shape(rho_vyx), np.shape(Bz_vyx), np.shape(ne_vyx), np.shape(Te_vyx)) classic_biermann = get_Biermann_classic(grid, rho_vyx, Bz_vyx, ne_vyx, Te_vyx) kinetic_biermann = get_Biermann(grid, rho_vyx, Bz_vyx, fo) classic_biermann = np.transpose(classic_biermann) kinetic_biermann = np.transpose(kinetic_biermann) return classic_biermann, kinetic_biermann
def get_Nernst_abs(path, time): ''' data_x,data_y = get_Nernst_ratio(path,time) ''' dict = cf.load_data_all_1D(path, fpre(path), time) ne = dict['ne'] Te = dict['Te'] qx = dict['qx'] qy = dict['qy'] jx = dict['jx'] jy = dict['jy'] dxT = dict['dxT'] dyT = dict['dyT'] Bz = dict['Bz'] x_grid = dict['x_grid'] y_grid = dict['y_grid'] Z2ni = dict['Z2ni'] prof_Z = dict['Z'] fo = dict['fo'] nv = dict['nv'] ny = dict['ny'] nx = dict['nx'] rA = (Z2ni)**-1 dict_fo = cf.load_dict_1D(path, fpre(path), 'fo', time) fo = dict_fo['mat'] rA = (Z2ni)**-1 #=============== grid = dict['grid'] dxfo, dyfo = cf.get_grad_3d_varZ(grid, fo) rho = rA omega = Bz * rA rho_vyx = extend_grid_xy_to_vxy(nv, ny, nx, rA) Bz_vyx = extend_grid_xy_to_vxy(nv, ny, nx, Bz) omega_vyx = extend_grid_xy_to_vxy(nv, ny, nx, omega) #------ NERNST ----------------------------------------------------- v_nx, v_ny = get_v_N(grid, rho_vyx, Bz_vyx, fo) v_nx_classical, v_ny_classical, v_nx_hf, v_ny_hf = get_vN_from_path( path, fpre(path), time) v_nx_c = np.transpose(v_nx_classical) v_ny_c = np.transpose( v_ny_classical) #np.transpoe(v_ny_classical)#[:,::-1] v_nx_k = np.transpose(v_nx) v_ny_k = np.transpose(v_ny) #np.transpose(v_ny)#[:,::-1] return v_nx_k, v_ny_k, v_nx_c, v_ny_c
def get_kinetic_heatflow_b(path, time): ''' dict = get_kinetic_heatflow_b(path,time) var_list = ['q_SH_x','q_SH_y','q_RL_x','q_RL_y','q_TE_x','q_TE_y','q_E_x','q_E_y'] for var in range(len(dict.keys())): var_name = var_list[var] ax = fig.add_subplot(ny_plots,nx_plots,var+1) plot_2D(ax,dict[var_name]['data'],dict[var_name]['name']) ''' dict = cf.load_data_all_1D(path, fpre(path), time) ne = dict['ne'] Te = dict['Te'] qx = dict['qx'] qy = dict['qy'] jx = dict['jx'] jy = dict['jy'] dxT = dict['dxT'] dyT = dict['dyT'] Bz = dict['Bz'] x_grid = dict['x_grid'] y_grid = dict['y_grid'] Z2ni = dict['Z2ni'] prof_Z = dict['Z'] fo = dict['fo'] nv = dict['nv'] ny = dict['ny'] nx = dict['nx'] rA = (Z2ni)**-1 dict_fo = cf.load_dict_1D(path, fpre(path), 'fo', time) #=============== grid = dict['grid'] dxfo, dyfo = cf.get_grad_3d_varZ(grid, fo) rho = rA omega = Bz * rA rho_vyx = extend_grid_xy_to_vxy(nv, ny, nx, rA) Bz_vyx = extend_grid_xy_to_vxy(nv, ny, nx, Bz) omega_vyx = extend_grid_xy_to_vxy(nv, ny, nx, omega) dict = get_qSH_kinetic(grid, rho_vyx, Bz_vyx, jx, jy, fo) dict['x_grid'] = dict_fo['x_grid'] dict['y_grid'] = dict_fo['y_grid'] dict['v_grid'] = dict_fo['v_grid'] dict['time'] = dict_fo['time'] return dict
def get_Biermann_classic(grid, rho_vyx, Bz_vyx, ne, Te_vyx): ''' ----- should get the kinetic biermann term -----> kinetic_biermann = get_Biermann(grid,rho_vyx,Bz_vyx,fo) ''' # --- construct fo maxwellian v_grid = grid['v_grid'] nv, ny, nx = np.shape(Bz_vyx) v = extend_grid_v_to_vxy(nv, ny, nx, v_grid) vte = (2.0 * Te_vyx)**0.5 fo_unnorm = ((np.pi * (vte**2))**(-1.5)) * np.exp(-(v / vte)**2) sum_array = np.sum(fo_unnorm, axis=0) sum_vyx = np.zeros((np.shape(Te_vyx))) for iv in range(nv): sum_vyx[iv, :, :] = sum_array fo = ne * ((np.pi * (vte**2))**(-1.5)) * np.exp(-(v / vte)**2) / sum_vyx # note IMPACT normalisation of fo different to Epperleins omega_vyx = Bz_vyx * rho_vyx gradfo_x, gradfo_y = cf.get_grad_3d_varZ(grid, fo) I1_x, I1_y = get_I1_vec(rho_vyx, omega_vyx, gradfo_x, gradfo_y, v_grid) I3_x, I3_y = get_I3_vec(rho_vyx, omega_vyx, gradfo_x, gradfo_y, v_grid) I2 = get_I2_scalar(rho_vyx, omega_vyx, fo, v_grid) I4 = get_I4_scalar(rho_vyx, omega_vyx, fo, v_grid) omega_yx = omega_vyx[0, :, :] Bz_yx = Bz_vyx[0, :, :] Eta = (I2 + (omega_yx**2) * ((I4**2) / I2)) BierE_x = (1.0 / Eta) * (I1_x + (omega_yx**2) * (I4 / I2) * I3_x) BierE_y = (1.0 / Eta) * (I1_y + (omega_yx**2) * (I4 / I2) * I3_y) #---- now take the curl? # --- get_grad assumes [x,y] indices x_grid_yx, xY = np.meshgrid(grid['x_grid'], np.ones(len(grid['y_grid']))) yY, y_grid_yx = np.meshgrid(np.ones(len(grid['x_grid'])), grid['y_grid']) dxBierE_y = (BierE_y[:, 2:] - BierE_y[:, :-2]) / (x_grid_yx[:, 2:] - x_grid_yx[:, :-2]) dyBierE_x = (BierE_x[2:, :] - BierE_x[:-2, :]) / (y_grid_yx[2:, :] - y_grid_yx[:-2, :]) kinetic_biermann_z = -1.0 * (dxBierE_y[1:-1, :] - dyBierE_x[:, 1:-1]) return kinetic_biermann_z
def get_alpha_perp_kinetic(grid, rho_vyx, Bz_vyx, fo): ''' alpha_perp_kin = get_alpha_perp_kinetic(grid,rho_vyx,Bz_vyx,fo) ''' v_grid = grid['v_grid'] omega_vyx = Bz_vyx * rho_vyx gradfo_x, gradfo_y = cf.get_grad_3d_varZ(grid, fo) I1_x, I1_y = get_I1_vec(rho_vyx, omega_vyx, gradfo_x, gradfo_y, v_grid) I3_x, I3_y = get_I3_vec(rho_vyx, omega_vyx, gradfo_x, gradfo_y, v_grid) I2 = get_I2_scalar(rho_vyx, omega_vyx, fo, v_grid) I4 = get_I4_scalar(rho_vyx, omega_vyx, fo, v_grid) omega_yx = omega_vyx[0, :, :] Bz_yx = Bz_vyx[0, :, :] Eta = (I2 + (omega_yx**2) * ((I4**2) / I2)) alpha_perp_kin = -(1.0 / Eta) return alpha_perp_kin
def get_pressureEfield_kinetic(grid, rho_vyx, Bz_vyx, fo): ''' ----- should get the kinetic biermann term -----> BierE_x,BierE_y = get_pressureEfield_kinetic(grid,rho_vyx,Bz_vyx,fo) ''' #-- v_grid = grid['v_grid'] omega_vyx = Bz_vyx * rho_vyx gradfo_x, gradfo_y = cf.get_grad_3d_varZ(grid, fo) I1_x, I1_y = get_I1_vec(rho_vyx, omega_vyx, gradfo_x, gradfo_y, v_grid) I3_x, I3_y = get_I3_vec(rho_vyx, omega_vyx, gradfo_x, gradfo_y, v_grid) I2 = get_I2_scalar(rho_vyx, omega_vyx, fo, v_grid) I4 = get_I4_scalar(rho_vyx, omega_vyx, fo, v_grid) omega_yx = omega_vyx[0, :, :] Bz_yx = Bz_vyx[0, :, :] Eta = (I2 + (omega_yx**2) * ((I4**2) / I2)) BierE_x = (1.0 / Eta) * (I1_x + (omega_yx**2) * (I4 / I2) * I3_x) BierE_y = (1.0 / Eta) * (I1_y + (omega_yx**2) * (I4 / I2) * I3_y) #---- now take the curl? return BierE_x, BierE_y
def get_v_N(grid, rho_vyx, Bz_vyx, fo): ''' # kinetic nernst v_nx,v_ny = get_v_N(grid,rho_vyx,Bz_vyx,fo) ''' v_grid = grid['v_grid'] omega_vyx = Bz_vyx * rho_vyx gradfo_x, gradfo_y = cf.get_grad_3d_varZ(grid, fo) I1_x, I1_y = get_I1_vec(rho_vyx, omega_vyx, gradfo_x, gradfo_y, v_grid) I3_x, I3_y = get_I3_vec(rho_vyx, omega_vyx, gradfo_x, gradfo_y, v_grid) I2 = get_I2_scalar(rho_vyx, omega_vyx, fo, v_grid) I4 = get_I4_scalar(rho_vyx, omega_vyx, fo, v_grid) omega_yx = omega_vyx[0, :, :] Bz_yx = Bz_vyx[0, :, :] Eta = (I2 + (omega_yx**2) * ((I4**2) / I2)) v_nx = (1.0 / Eta) * (I3_x - (I4 / I2) * I1_x) v_ny = (1.0 / Eta) * (I3_y - (I4 / I2) * I1_y) return v_nx, v_ny
def get_Biermann(grid, rho_vyx, Bz_vyx, fo): ''' ----- should get the kinetic biermann term -----> kinetic_biermann = get_Biermann(grid,rho_vyx,Bz_vyx,fo) ''' #-- v_grid = grid['v_grid'] omega_vyx = Bz_vyx * rho_vyx gradfo_x, gradfo_y = cf.get_grad_3d_varZ(grid, fo) I1_x, I1_y = get_I1_vec(rho_vyx, omega_vyx, gradfo_x, gradfo_y, v_grid) I3_x, I3_y = get_I3_vec(rho_vyx, omega_vyx, gradfo_x, gradfo_y, v_grid) I2 = get_I2_scalar(rho_vyx, omega_vyx, fo, v_grid) I4 = get_I4_scalar(rho_vyx, omega_vyx, fo, v_grid) omega_yx = omega_vyx[0, :, :] Bz_yx = Bz_vyx[0, :, :] Eta = (I2 + (omega_yx**2) * ((I4**2) / I2)) BierE_x = (1.0 / Eta) * (I1_x + (omega_yx**2) * (I4 / I2) * I3_x) BierE_y = (1.0 / Eta) * (I1_y + (omega_yx**2) * (I4 / I2) * I3_y) #---- now take the curl? # --- get_grad assumes [x,y] indices x_grid_yx, xY = np.meshgrid(grid['x_grid'], np.ones(len(grid['y_grid']))) yY, y_grid_yx = np.meshgrid(np.ones(len(grid['x_grid'])), grid['y_grid']) dxBierE_y = (BierE_y[:, 2:] - BierE_y[:, :-2]) / (x_grid_yx[:, 2:] - x_grid_yx[:, :-2]) dyBierE_x = (BierE_x[2:, :] - BierE_x[:-2, :]) / (y_grid_yx[2:, :] - y_grid_yx[:-2, :]) kinetic_biermann_z = -1.0 * (dxBierE_y[1:-1, :] - dyBierE_x[:, 1:-1]) return kinetic_biermann_z
def get_q_abs(path, time): ''' dict_ratio = get_q_ratio(path,time) ''' time_int = int(time) dict = cf.load_data_all_1D(path, fpre(path), time) ne = dict['ne'] Te = dict['Te'] qx = dict['qx'] qy = dict['qy'] jx = dict['jx'] jy = dict['jy'] dxT = dict['dxT'] dyT = dict['dyT'] Bz = dict['Bz'] U = dict['U'] x_grid = dict['x_grid'] y_grid = dict['y_grid'] Z2ni = dict['Z2ni'] prof_Z = dict['Z'] fo = dict['fo'] nv = dict['nv'] ny = dict['ny'] nx = dict['nx'] rA = (Z2ni)**-1 dict_fo = cf.load_dict_1D(path, fpre(path), 'fo', time) fo = dict_fo['mat'] rA = (Z2ni)**-1 #=============== grid = dict['grid'] dxfo, dyfo = cf.get_grad_3d_varZ(grid, fo) rho = rA omega = Bz * rA rho_vyx = extend_grid_xy_to_vxy(nv, ny, nx, rA) Bz_vyx = extend_grid_xy_to_vxy(nv, ny, nx, Bz) omega_vyx = extend_grid_xy_to_vxy(nv, ny, nx, omega) #heat flow ratios #--- kinetic dict = get_qSH_kinetic(grid, rho_vyx, Bz_vyx, jx, jy, fo) name_list = [ 'q_SH_x', 'q_SH_y', 'q_RL_x', 'q_RL_y', 'q_TE_x', 'q_TE_y', 'q_E_x', 'q_E_y' ] for name in name_list: dict[name]['data'] = np.transpose(dict[name]['data'])[:] q_KSH_x, q_KSH_y, q_KRL_x, q_KRL_y, q_KTE_x, q_KTE_y, q_KE_x, q_KE_y = dict[ 'q_SH_x']['data'], dict['q_SH_y']['data'], dict['q_RL_x'][ 'data'], dict['q_RL_y']['data'], dict['q_TE_x']['data'], dict[ 'q_TE_y']['data'], dict['q_E_x']['data'], dict['q_E_y']['data'] #--- classical q_dir = path + '/' q_SH_x = np.load(q_dir + 'q_SH_x.txt.npy') q_SH_y = np.load(q_dir + 'q_SH_y.txt.npy') q_RL_x = np.load(q_dir + 'q_RL_x.txt.npy') q_RL_y = np.load(q_dir + 'q_RL_y.txt.npy') q_E_x = np.load(q_dir + 'q_E_x.txt.npy') q_E_y = np.load(q_dir + 'q_E_y.txt.npy') q_xX = np.load(q_dir + 'q_xX.txt.npy') q_yY = np.load(q_dir + 'q_yY.txt.npy') #nt,ny,nx q_x_VFP = (q_xX[:, 1:, :] + q_xX[:, :-1, :]) * 0.5 q_y_VFP = (q_yY[:, :, 1:] + q_yY[:, :, :-1]) * 0.5 q_x_B = q_RL_x + q_E_x + q_SH_x q_y_B = q_RL_y + q_E_y + q_SH_y dict_c = {} dict_c['tot x'] = q_x_B[time_int, :, :] #q_xc dict_c['tot y'] = q_y_B[time_int, :, :] dict_c['SH x'] = q_SH_x[time_int, :, :] #q_SH_x[time_int,:x_lim,:] dict_c['SH y'] = q_SH_y[time_int, :, :] #q_SH_y[time_int,:x_lim,:] dict_c['RL x'] = q_RL_x[time_int, :, :] dict_c['RL y'] = q_RL_y[time_int, :, :] dict_c['E x'] = q_E_x[time_int, :, :] dict_c['E y'] = q_E_y[time_int, :, :] dict_k = {} dict_k['tot x'] = q_x_VFP[time_int, :, :] dict_k['tot y'] = q_y_VFP[time_int, :, :] dict_k['SH x'] = q_KSH_x #q_SH_x[time_int,:x_lim,:] dict_k['SH y'] = q_KSH_y #q_SH_y[time_int,:x_lim,:] dict_k['RL x'] = q_KRL_x dict_k['RL y'] = q_KRL_y dict_k['E x'] = q_KTE_x + q_KE_x dict_k['E y'] = q_KTE_y + q_KE_y dict_k['time'] = dict_fo['time'] dict_c['x_grid'] = x_grid[1:-1] dict_c['y_grid'] = y_grid dict_k['x_grid'] = x_grid[1:-1] dict_k['y_grid'] = y_grid dict_k['ne'] = np.transpose(ne) dict_k['Te'] = np.transpose(Te) dict_k['jx'] = np.transpose(jx) dict_k['jy'] = np.transpose(jy) dict_k['dxT'] = np.transpose(dxT) dict_k['dyT'] = np.transpose(dyT) dict_k['Bz'] = np.transpose(Bz) dict_k['Z2ni'] = np.transpose(Z2ni) dict_k['U'] = np.transpose(U) return dict_c, dict_k
def get_qSH_kinetic(grid, rho_vyx, Bz_vyx, jx, jy, fo): ''' dict = get_qSH_kinetic(grid,rho_vyx,Bz_vyx,jx,jy,fo) ''' v_grid = grid['v_grid'] omega_vyx = Bz_vyx * rho_vyx gradfo_x, gradfo_y = cf.get_grad_3d_varZ(grid, fo) I1_x, I1_y = get_I1_vec(rho_vyx, omega_vyx, gradfo_x, gradfo_y, v_grid) I3_x, I3_y = get_I3_vec(rho_vyx, omega_vyx, gradfo_x, gradfo_y, v_grid) I2 = get_I2_scalar(rho_vyx, omega_vyx, fo, v_grid) I4 = get_I4_scalar(rho_vyx, omega_vyx, fo, v_grid) #======== K2 = get_K2_scalar(rho_vyx, omega_vyx, fo, v_grid) K4 = get_K4_scalar(rho_vyx, omega_vyx, fo, v_grid) K1_x, K1_y = get_K1_vec(rho_vyx, omega_vyx, gradfo_x, gradfo_y, v_grid) K3_x, K3_y = get_K3_vec(rho_vyx, omega_vyx, gradfo_x, gradfo_y, v_grid) omega_yx = omega_vyx[0, :, :] Bz_yx = Bz_vyx[0, :, :] Eta = (I2 + (omega_yx**2) * ((I4**2) / I2)) v_nx = -(1.0 / Eta) * (I3_x - (I4 / I2) * I1_x) v_ny = -(1.0 / Eta) * (I3_y - (I4 / I2) * I1_y) #--- Spitzer q_SH_x = K1_x - (K2 / Eta) * I1_x - (K2 / Eta) * (I4 / I2) * ( Bz_yx**2) * I3_x + (K4 / Eta) * (Bz_yx**2) * (I3_x - I1_x * (I4 / I2)) q_SH_y = K1_y - (K2 / Eta) * I1_y - (K2 / Eta) * (I4 / I2) * ( Bz_yx**2) * I3_y + (K4 / Eta) * (Bz_yx**2) * (I3_y - I1_y * (I4 / I2)) #---- RL kappa_w_dxT = -(K2 / Eta) * (I3_x - I1_x * (I4 / I2)) + K3_x - ( K4 / Eta) * I1_x - (Bz_yx**2) * (K4 / Eta) * (I4 / I2) * I3_x kappa_w_dyT = -(K2 / Eta) * (I3_y - I1_y * (I4 / I2)) + K3_y - ( K4 / Eta) * I1_y - (Bz_yx**2) * (K4 / Eta) * (I4 / I2) * I3_y q_RL_x = -Bz_yx * kappa_w_dyT q_RL_y = Bz_yx * kappa_w_dxT #--- Thermo electric perp beta_perp = K2 / Eta + (Bz_yx**2) * (K4 * I4) / (Eta * I2) q_TE_x = beta_perp * jx q_TE_y = beta_perp * jy #--- Thermo electric wedge beta_wedge = (-(K2 * I4 / (Eta * I2)) + K4 / Eta) q_E_x = -Bz_yx * beta_wedge * jy q_E_y = Bz_yx * beta_wedge * jx dict = {} dict['q_SH_x'] = data_var(-1.0 * q_SH_x, 'q_x SH') dict['q_SH_y'] = data_var(-1.0 * q_SH_y, 'q_y SH') dict['q_RL_x'] = data_var(-1.0 * q_RL_x, 'q_x RL') dict['q_RL_y'] = data_var(-1.0 * q_RL_y, 'q_y RL') dict['q_TE_x'] = data_var(-1.0 * q_TE_x, 'q_x thermoelectric') dict['q_TE_y'] = data_var(-1.0 * q_TE_y, 'q_y thermoelectric') dict['q_E_x'] = data_var(-1.0 * q_E_x, 'q_x Ettinghausen') dict['q_E_y'] = data_var(-1.0 * q_E_y, 'q_y Ettinghausen') return dict