![]() |
ORB5
v4.9.4
|
Data Types | |
interface | get_gradients |
interface | sc2xy |
Functions/Subroutines | |
subroutine | norm1 |
subroutine, public | equil_backfields (s, chi, pot, es, echi) |
subroutine, public | equil_backfields1d (psi, pot, epsi) |
real function, dimension(size(quant_list, 1)) | equil_quants (s, chi, quant_list) |
pure real function, public | equil_absb (s, chi) |
Returns the norm of the equilibrium magnetic field. More... | |
subroutine | equil_comps (s, chi, comp_no, out) |
subroutine, public | bderivs (s, chi, dBds, dBdchi, absb) |
real function, public | equil_dmaxb (st) |
real function, public | equil_maxb (st) |
real function, public | equil_addpbst (s, chi) |
real function, public | equil_tprime (s, chi) |
pure real function, public | equil_tob (s, chi) |
Returns R*B_tor/B. More... | |
real function, public | equil_s (px, py) |
subroutine, public | sc2xy (s, theta, x, y) |
subroutine | sc2xyn (s, theta, x, y, n) |
subroutine, public | sc2xy_sincos (s, cost, sint, x, y) |
subroutine, public | sc2xy_chease (s, theta, x, y) |
subroutine, public | xy2sc (x, y, s, chi_out) |
real function, dimension(2), public | get_comp (s, chi) |
real function, dimension(2), public | get_gradpsi (px, py) |
real function, dimension(2), public | get_gradb (px, py) |
pure subroutine | get_gradients1 (s, chi, grads, gradchi, gradphi) |
pure subroutine | get_gradientsn (s, chi, n, grads, gradchi, gradphi) |
real function, dimension(2), public | get_grhphi (px, py) |
real function, public | equil_brotb (s, chi) |
real function, public | jacob (s, chi) |
real function, public | jacobderivative (s, chi) |
real function, public | jacob_tsp (s, chi) |
subroutine | init_profiles |
Define equilibrium profiles (density, temperature and parallel momentum) More... | |
real function | profile_i (st, kappa_x, width, peak, grad) |
subroutine | normalize_profiles |
subroutine | set_profiles_mks |
subroutine | get_nbars (isp, cnorm, cnorm2) |
Calculate average density value \bar{n} for normalization. More... | |
subroutine | calculate_other_normalizations |
subroutine | calculate_ubulk |
Calculate the ubulk and ubulk_prime look up tables. More... | |
subroutine | adjust_svol_min_max |
Readjust svol_min and svol_max to grid points. More... | |
subroutine | impose_quasineutrality |
subroutine | impose_quasineutrality_mks |
real function | sech (x) |
subroutine, public | profiles_sh (isp, psi, nishval) |
subroutine, public | profiles (isp, psi, tval, tgrad, nval, ngrad, vpval, vpgrad) |
Get equilibrium profiles and gradients. More... | |
subroutine | read_equil_ah |
subroutine | s2rad_mhd (ps, prad, pdrds) |
Compute s->rho_vol by linear interpolation with CHEASE grids. More... | |
subroutine | s2rad_adhoc (ps, prad, pdrds) |
Compute s->rho_vol analytically according to q-profile. More... | |
subroutine, public | s2rad (ps, prad, pdrds) |
Convert \(s=\sqrt(\psi/\psi_{edge})\) in \(\rho/a_{mid}\) and gives \(d(\rho/a_{mid})/ds\). More... | |
real function, public | get_psi_of_r (zrho) |
real function, public | func_sigma (ss) |
real function, public | func_sigmab (ss) |
real function, public | func_sigmatprimeob (ss) |
real function, public | func_b_pszs (ss) |
real function, public | func_tprimeob_pszs (ss) |
real function, public | fitbound_v (zr) |
real function, public | equil_hchi (s, chi) |
subroutine, public | equil_h (px, py, h) |
real function | get_rho (s, theta) |
subroutine, public | qchi (radvar, qout, strsel) |
Get q profile by linear interpolation. More... | |
real function, public | s_of_q (zq) |
subroutine, public | get_qmin (sqmin, qmin) |
real function, public | get_vth_psi (zpsit, isp) |
subroutine | int_jacob |
subroutine | allocate_flux_bins |
Allocate arrays for bin volumes, surfaces, etc. More... | |
subroutine | calculate_vol_coord |
subroutine | build_zpsi_grd |
Build psi grid for the binning. More... | |
subroutine | build_bin_vol |
Compute volume and surface of a radial bin. More... | |
subroutine | bin_vol_loop (i, zirqpts, zqp, zqw, zdtheta, ztheta_grd) |
subroutine | build_zpsi_grd_island |
subroutine | init_jacobian_island |
real function, public | gtgp_xy (px, py) |
real function, public | func_torpsi (ss) |
Get toroidal flux. More... | |
subroutine, public | init_dens_profile (worktype, isp, zf_av, z_den) |
subroutine | dump_equil |
Write equilibrium quantities in the hdf5 file format. More... | |
real function, public | func_alphab_fsa (ss) |
subroutine, public | create_equil |
subroutine, public | equil_aux |
real function, public | get_chi (s, theta) |
subroutine | make_equil_sc_coeff |
subroutine | make_equil_strong |
Computes quantities needed during time evolution on a (s,chi) grid. More... | |
subroutine | coeff_axis |
subroutine, public | get_fdfds (s, F, dFds) |
subroutine, public | get_rz (s, chi, r, z) |
real function, public | get_theta (s, chi) |
subroutine, public | equil_coef_sc (s, chi, zr, zpsidr, zpsidz, zB, zhchi, zhphi, zgrB, addpchi, addpphi, brotb, divh, grads, gradchi) |
pure subroutine, public | equil_move_sc (s, chi, zr, ztprime, zB, zgrB, zdivh, zh, addpBst, addp, exh, ztsubB, addvpa) |
Compute quantities in curvilinear coordinates needed during time evolution by bilinear interpolation. More... | |
subroutine, public | get_larm_coeff (s, chi, larmsc, larmchic, larmchis) |
subroutine, public | get_larm_coeffn (s, chi, larmsc, larmchic, larmchis) |
Compute coefficients for particle position by bilinear interpolation. More... | |
real function, public | calc_ftrap (s, theta, itrap) |
Local fraction of trapped particles. More... | |
subroutine | create_psi |
subroutine | qbar (zrad, zq, zdqdrad) |
Get pseudo-safety factor and its derivative. More... | |
subroutine | read_equil_cpo |
subroutine, public | read_equil_hdf5 |
subroutine | make_equil_sc_coeff_chease |
subroutine | set_back_pot |
Set the background potential: various options depending on input flags. More... | |
subroutine, public | make_toroidal_flow_potential (potential, write_exb_diagnostics, time) |
Load a toroidal angular frequency profile given as an arbitrary set of points, and calculate the background potential to give this rotation. Toroidal rotation profile specified in prof_file (/data/omega), with npsi_profile points (in /data/NPSI). Omega should be in units of radians/cyclotron frequency. Designed for general coordinate system and doesn't make large-aspect ratio assumptions. Uses the following input parameters: nsel_pot_profile=NSEL_POT_PROF_FILE, flow_scale, prof_file. More... | |
subroutine | load_omega () |
real function, public | equil_pp (s) |
real function, public | equil_ubulk (s_val, isp) |
real function, public | equil_ubulk_prime (s_val, isp) |
subroutine | load_profiles (isp) |
subroutine | get_nref |
subroutine, public | compute_bin_vol (stmin, zds, stbin, chitmin, zdchi, chitbin, zdphi) |
pure integer function | find_chease_s_index (imap, s) |
Given a value of s, and an initial guess, find the index of the closest value in S_CHEASE. More... | |
pure integer function | find_index (dumarray, imap, s) |
Given a value, and an initial guess, find the index of the closest value in a CHEASE array. More... | |
pure integer function | find_chease_chi_index (imap, cchi) |
Given a value of chi, and an initial guess, find the index of the closest value in CHI_CHEASE. More... | |
subroutine, public | equil_move_strong (s, chi, due2dsigma, due2dchi, dBdsigma, dBdchi) |
subroutine, public | equil_pot (sigmat, chi, es_back) |
subroutine, public | back_vel_mod (sigmat, chi, vexb2) |
subroutine | back_vel_diff (sigmat, chi, due2dsigma, due2dchi) |
subroutine, public | equil_perp_vec (s, chi, hy, hz, grsigma2, grchi2, grsigmagrchi, J_s, r) |
subroutine, public | curl_ue (sigmat, chi, X, Y, Z) |
subroutine, public | back_vel_tor (sigmat, chi, ue_phi) |
subroutine, public | equil_strong_vdr (sigmat, chi, duphidpsi, duphidchi) |
subroutine | dump_equil_strong |
subroutine | set_n_corr |
subroutine | set_corr_axis |
pure subroutine, public | getdn_corr (psit, dncorr) |
real function, public | getdens_corr (psit) |
subroutine | read_equil_ntprofiles |
subroutine, public | acc_update_device_equil_variables |
Variables | |
integer, parameter | nequ_qtt =28 |
integer, parameter | nequ_qtt_sc =51 |
integer, parameter | nequ_qtt_sc_chease =18 |
integer, parameter | nequ_isl =5 |
integer, parameter | nequ_1d =4 |
real, parameter | extent =0.1 |
real, parameter | equ_grid_offset = 1.5 |
integer, parameter | equ_grid_lw = 2 |
integer, parameter | equ_grid_hi = 1 |
integer, save | nrho |
integer, save | nrho_q |
integer, save | n1dprof_pt |
integer, save, public | ngmax |
integer, save | ngmaxtheta |
integer, dimension(:), allocatable, save, public | jchiin |
integer, dimension(:), allocatable, save, public | jchiin0 |
integer, save, public | ichimin |
integer, save, public | ichimax |
integer, save, public | ichimin0 |
integer, save, public | ichimax0 |
real, save | drho |
real, save | drho_inv |
real, save | drho_q |
real, save | drho_q_inv |
real, save | gea_midn |
real, save, public | xmag |
real, save, public | ymag |
real, save, public | rhfs |
real, save, public | c_psi0corr |
real, save, public | psi0 |
real, save | e_mid =1.0 |
real, save | ds |
real, save, public | ds_inv |
real, save | dth |
real, save | dth_inv |
real, dimension(:), allocatable, save, public | volps |
real, dimension(:), allocatable, save, public | voltor |
real, dimension(:), allocatable, save, public | voltor_inv |
real, dimension(:), allocatable, save, public | volanu |
real, dimension(:), allocatable, save, public | voldiag |
real, dimension(:), allocatable, save, public | pvol_norm |
real, dimension(:), allocatable, save, public | ekinps |
real, dimension(:), allocatable, save, public | volps_tr |
real, dimension(:), allocatable, save, public | pvol_norm_tr |
real, dimension(:), allocatable, save, public | ekinps_tr |
real, save | rmajor |
real, save | zmajor |
real, save | edge_rmin |
real, save | edge_rmax |
real, save | edge_zmin |
real, save | edge_zmax |
real, save, public | b_norm |
real, save, public | d_norm |
real, save | t_norm |
real, save, public | ger_min |
real, save, public | ger_max |
real, save, public | gez_min |
real, save | gez_max |
real, save, public | gedr |
real, save, public | gedz |
real, save, public | gedr_inv |
real, save, public | gedz_inv |
real, save | geds |
real, save | gedc |
real, save | geds_inv |
real, save | gedc_inv |
real, save, public | fpsin |
real, save, public | a_midn |
real, save | r0_midn |
real, save, public | bmin_c |
real, save, public | bmax_c |
real, save, public | fonbmax_c |
real, save, public | fonbmin_c |
real, dimension(:,:,:), allocatable, save, public | a_equ |
real, dimension(:,:,:), allocatable, save | c_equ |
real, dimension(:,:,:), allocatable, save | d_equ |
real, dimension(:,:,:), allocatable, save | e_equ |
real, dimension(:,:), allocatable, target, save | a_1dprof |
real, dimension(:), allocatable, save | psi_of_r |
real, dimension(:), allocatable, save | qs |
real, dimension(:), allocatable, save | dqsdr |
real, dimension(:), allocatable, save, public | thgrid_eq |
real, dimension(:), allocatable, save, public | sgrid_eq |
real, dimension(:,:), allocatable, save | rhotab |
real, dimension(:,:), allocatable, save | lambdatab |
real, dimension(:,:), allocatable, save, public | sigmas |
real, dimension(:), allocatable, save | alphab_fsa |
real, dimension(:), allocatable, save, public | alphain |
real, dimension(:), allocatable, save, public | alphain0 |
real, save, public | chibmin |
real, save, public | chibmax |
real, save, public | chibmin0 |
real, save, public | chibmax0 |
real, save | q_fact1 |
real, save | q_fact2 |
real, save | corr_axis |
real, dimension(:,:), allocatable, save | chigtab |
real, save | dpsi_0 |
real, save | dpsi_0inv |
real, dimension(:), allocatable, save | psi_grd |
real, dimension(:), allocatable, save | rho_tor_norm |
real, dimension(:), allocatable, save | drho_tor_norm |
real, dimension(:,:), allocatable, save | t_pic |
real, dimension(:,:), allocatable, save | gradt_pic |
real, dimension(:,:), allocatable, save | t_pic_mks |
real, dimension(:,:), allocatable, save | n_pic |
real, dimension(:,:), allocatable, save | gradn_pic |
real, dimension(:,:), allocatable, save | n_pic_mks |
real, dimension(:), allocatable, save | ni_shield |
real, dimension(:), allocatable, save | lx_pic |
real, dimension(:), allocatable, save | zeff_pic |
real, dimension(:), allocatable, save | zefftmp_pic |
real, dimension(:), allocatable, save | beta_pic |
real, dimension(:,:), allocatable, save | vp_pic |
real, dimension(:,:), allocatable, save | gradvp_pic |
real, dimension(:), allocatable, save | gradgradne |
real, dimension(:), allocatable, save | n_corr |
real, dimension(:), allocatable, save, public | bin_vol |
real, dimension(:,:), allocatable, save, public | bin_vol_2d |
real, dimension(:,:), allocatable, save, public | bin_vol_3d_inv |
real, dimension(:,:), allocatable, save, public | bin_vol_3d |
real, dimension(:), allocatable, save | bin_helical_ti |
real, dimension(:), allocatable, save | bin_helical_ni |
real, dimension(:), allocatable, save | psi_av |
real, dimension(:,:), allocatable, save | psi_av_hel |
real, dimension(:,:), allocatable, save | bin_vol_hel |
real, dimension(:), allocatable, save, public | bin_surf |
real, dimension(:), allocatable, save, public | nbar |
real, dimension(:), allocatable, save | tbar |
real, dimension(:), allocatable, save | nbar_anu |
real, dimension(:), allocatable, save | torpsitab |
real, dimension(:), allocatable, save, public | zpsi_grd |
real, dimension(:), allocatable, save, public | psihe_grd |
real, save, public | psires |
real, save, public | psihes |
real, save, public | width_is |
integer, save, public | znin |
integer, save, public | znisl |
integer, save, public | znout |
integer | hdf5_ioutgyro |
real, dimension(:), allocatable, save | p_psi |
real, dimension(:), allocatable, save | dpdpsi |
real, dimension(:), allocatable, save | f_psi |
real, dimension(:), allocatable, save | fdfdpsi |
real, dimension(:), allocatable, save | q_psi |
real, dimension(:), allocatable, save | dqdpsi |
real, dimension(:), allocatable, save | psi_chease |
real, dimension(:), allocatable, save | chi_chease |
real, dimension(:), allocatable, save | s_chease |
real, dimension(:), allocatable, save | rgeom |
real, dimension(:), allocatable, save | ageom |
real, dimension(:), allocatable, save | kappae |
real, dimension(:), allocatable, save | bmax_s |
real, dimension(:), allocatable, save | volume |
real, dimension(:), allocatable, save | psinorm_chease |
real, dimension(:), allocatable, save | rhovnorm_chease |
real, dimension(:), allocatable, save | drhovnormds_chease |
real, dimension(:), allocatable, save | mhdti |
real, dimension(:), allocatable, save | mhdte |
real, dimension(:), allocatable, save | mhdn |
real, dimension(:,:), allocatable, save | ubulk_s |
real, dimension(:,:), allocatable, save | ubulk_prime_s |
real, dimension(:), allocatable, save | pot_back |
real, dimension(:), allocatable, save | int1 |
real, public | zdpsi_0 |
integer, dimension(:), allocatable, save | profile_grid |
integer, parameter | psi_g =0 |
integer, parameter | sigma_g =1 |
integer, parameter | rho_g =2 |
subroutine, public equil_mod::acc_update_device_equil_variables |
|
private |
Readjust svol_min and svol_max to grid points.
|
private |
Allocate arrays for bin volumes, surfaces, etc.
|
private |
[in] | sigmat | Calculate the derivatives of u_e^2 (background velocity) using quadratic interpolation and finite differencing |
[in] | chi | Calculate the derivatives of u_e^2 (background velocity) using quadratic interpolation and finite differencing |
subroutine, public equil_mod::back_vel_mod | ( | real, intent(in) | sigmat, |
real, intent(in) | chi, | ||
real, intent(out) | vexb2 | ||
) |
subroutine, public equil_mod::back_vel_tor | ( | real, intent(in) | sigmat, |
real, intent(in) | chi, | ||
real, intent(out) | ue_phi | ||
) |
subroutine, public equil_mod::bderivs | ( | real, intent(in) | s, |
real, intent(in) | chi, | ||
real, intent(out) | dBds, | ||
real, intent(out) | dBdchi, | ||
real, intent(out) | absb | ||
) |
|
private |
[in] | i | Radial bin number |
[in] | zirqpts | Number of quadrature points in s |
[in] | zdtheta | Interval length in theta |
[in] | zqp | Quadrature point in s |
[in] | zqw | Quadrature weights |
[in] | ztheta_grd | Grid equidistant in theta* |
|
private |
Compute volume and surface of a radial bin.
|
private |
Build psi grid for the binning.
|
private |
real function, public equil_mod::calc_ftrap | ( | real, intent(in) | s, |
real, intent(in) | theta, | ||
integer, intent(in) | itrap | ||
) |
Local fraction of trapped particles.
|
private |
subroutine equil_mod::calculate_ubulk |
Calculate the ubulk and ubulk_prime look up tables.
|
private |
subroutine equil_mod::coeff_axis |
subroutine, public equil_mod::compute_bin_vol | ( | real, intent(in) | stmin, |
real, intent(in) | zds, | ||
integer, intent(in) | stbin, | ||
real, intent(in) | chitmin, | ||
real, intent(in) | zdchi, | ||
integer, intent(in) | chitbin, | ||
real, intent(in) | zdphi | ||
) |
subroutine, public equil_mod::create_equil |
|
private |
subroutine, public equil_mod::curl_ue | ( | real, intent(in) | sigmat, |
real, intent(in) | chi, | ||
real, intent(out) | X, | ||
real, intent(out) | Y, | ||
real, intent(out) | Z | ||
) |
subroutine equil_mod::dump_equil |
Write equilibrium quantities in the hdf5 file format.
|
private |
pure real function, public equil_mod::equil_absb | ( | real, intent(in) | s, |
real, intent(in) | chi | ||
) |
Returns the norm of the equilibrium magnetic field.
Returns the norm of the equilibrium magnetic field at position (s,chi) using a bilinear interpolation
[in] | s | Radial position |
[in] | chi | Poloidal position |
real function, public equil_mod::equil_addpbst | ( | real, intent(in) | s, |
real, intent(in) | chi | ||
) |
subroutine, public equil_mod::equil_aux |
subroutine, public equil_mod::equil_backfields | ( | real, intent(in) | s, |
real, intent(in) | chi, | ||
real, intent(out) | pot, | ||
real, intent(out) | es, | ||
real, intent(out) | echi | ||
) |
subroutine, public equil_mod::equil_backfields1d | ( | real, intent(in) | psi, |
real, intent(out) | pot, | ||
real, intent(out) | epsi | ||
) |
real function, public equil_mod::equil_brotb | ( | real, intent(in) | s, |
real, intent(in) | chi | ||
) |
subroutine, public equil_mod::equil_coef_sc | ( | real, intent(in) | s, |
real, intent(in) | chi, | ||
real, intent(out) | zr, | ||
real, intent(out) | zpsidr, | ||
real, intent(out) | zpsidz, | ||
real, intent(out) | zB, | ||
real, intent(out) | zhchi, | ||
real, intent(out) | zhphi, | ||
real, dimension(3), intent(out) | zgrB, | ||
real, intent(out) | addpchi, | ||
real, intent(out) | addpphi, | ||
real, intent(out) | brotb, | ||
real, intent(out) | divh, | ||
real, dimension(2), intent(out) | grads, | ||
real, dimension(2), intent(out) | gradchi | ||
) |
|
private |
real function, public equil_mod::equil_dmaxb | ( | real, intent(in) | st | ) |
subroutine, public equil_mod::equil_h | ( | real, intent(in) | px, |
real, intent(in) | py, | ||
real, dimension(3), intent(out) | h | ||
) |
real function, public equil_mod::equil_hchi | ( | real, intent(in) | s, |
real, intent(in) | chi | ||
) |
real function, public equil_mod::equil_maxb | ( | real, intent(in) | st | ) |
pure subroutine, public equil_mod::equil_move_sc | ( | real, intent(in) | s, |
real, intent(in) | chi, | ||
real, intent(out) | zr, | ||
real, intent(out) | ztprime, | ||
real, intent(out) | zB, | ||
real, dimension(3), intent(out) | zgrB, | ||
real, intent(out) | zdivh, | ||
real, dimension(3), intent(out) | zh, | ||
real, intent(out) | addpBst, | ||
real, dimension(3), intent(out) | addp, | ||
real, dimension(3), intent(out) | exh, | ||
real, intent(out) | ztsubB, | ||
real, intent(out) | addvpa | ||
) |
Compute quantities in curvilinear coordinates needed during time evolution by bilinear interpolation.
[in] | s | Radial coordinate \(s\) |
[in] | chi | Poloidal coordinate |
[out] | zgrb | \((h\wedge\nabla b/b)\cdot \nabla s\), \( (h\wedge\nabla b/b)\cdot \nabla\chi\), and \( (h\wedge\nabla b/b)\cdot \nabla \phi\) |
[out] | exh | \(T(\psi)/J\_sB \), \(\nabla s \cdot \nabla \psi /(Br^2) \), and \(\nabla \psi \cdot \nabla \chi /(Br^2)\) |
[out] | zr | Radial coordinate \(r\) |
[out] | ztprime | \(\frac{dT(\psi)}{d\psi}\) |
[out] | zb | Magnetic field intensity |
[out] | zdivh | Divergence of \(h\) |
[out] | zh | 0.0, \(h\cdot \nabla\chi\), \(h\cdot \nabla\phi\) |
[out] | addpbst | Additional term for \(B^\star\) |
[out] | addp | 0.0, \( h \wedge h \wedge (\nabla\wedge B)/B \cdot \nabla \chi\), \( h \wedge h \wedge (\nabla\wedge B)/B \cdot \nabla \phi\) |
[out] | ztsubb | \(T(\psi)/B\) |
[out] | addvpa | \(p'(\psi) T(\psi) dB/d\chi /(J\_\psi B^4)\) |
subroutine, public equil_mod::equil_move_strong | ( | real, intent(in) | s, |
real, intent(in) | chi, | ||
real, intent(out) | due2dsigma, | ||
real, intent(out) | due2dchi, | ||
real, intent(out) | dBdsigma, | ||
real, intent(out) | dBdchi | ||
) |
[in] | s | Interpolate values from equilibrium grid that are used in strong flow eqn of motion |
[in] | chi | Interpolate values from equilibrium grid that are used in strong flow eqn of motion |
subroutine, public equil_mod::equil_perp_vec | ( | real, intent(in) | s, |
real, intent(in) | chi, | ||
real, intent(out) | hy, | ||
real, intent(out) | hz, | ||
real, intent(out) | grsigma2, | ||
real, intent(out) | grchi2, | ||
real, intent(out) | grsigmagrchi, | ||
real, intent(out) | J_s, | ||
real, intent(out) | r | ||
) |
[in] | s | Returns values required in calculated the components of (h x {h x A}) |
[in] | chi | Returns values required in calculated the components of (h x {h x A}) |
subroutine, public equil_mod::equil_pot | ( | real, intent(in) | sigmat, |
real, intent(in) | chi, | ||
real, intent(out) | es_back | ||
) |
real function, public equil_mod::equil_pp | ( | real, intent(in) | s | ) |
|
private |
real function, public equil_mod::equil_s | ( | real, intent(in) | px, |
real, intent(in) | py | ||
) |
subroutine, public equil_mod::equil_strong_vdr | ( | real, intent(in) | sigmat, |
real, intent(in) | chi, | ||
real, intent(out) | duphidpsi, | ||
real, intent(out) | duphidchi | ||
) |
pure real function, public equil_mod::equil_tob | ( | real, intent(in) | s, |
real, intent(in) | chi | ||
) |
Returns R*B_tor/B.
Returns the R*B_tor/B at position (s,chi) using a bilinear interpolation
[in] | s | Radial position |
[in] | chi | Poloidal position |
real function, public equil_mod::equil_tprime | ( | real, intent(in) | s, |
real, intent(in) | chi | ||
) |
real function, public equil_mod::equil_ubulk | ( | real, intent(in) | s_val, |
integer, intent(in) | isp | ||
) |
[in] | s_val | s coordinate |
[in] | isp | species of the markers |
real function, public equil_mod::equil_ubulk_prime | ( | real, intent(in) | s_val, |
integer, intent(in) | isp | ||
) |
[in] | s_val | s coordinate |
[in] | isp | species of the markers |
|
private |
Given a value of chi, and an initial guess, find the index of the closest value in CHI_CHEASE.
[in] | imap | Initial guess of index |
[in] | cchi | Given chi |
|
private |
Given a value of s, and an initial guess, find the index of the closest value in S_CHEASE.
[in] | imap | Initial guess of index |
[in] | s | Given s $acc routine (find_index) seq |
|
private |
Given a value, and an initial guess, find the index of the closest value in a CHEASE array.
[in] | imap | Initial guess of index |
[in] | s | Given s |
real function, public equil_mod::fitbound_v | ( | real, intent(in) | zr | ) |
real function, public equil_mod::func_alphab_fsa | ( | real, intent(in) | ss | ) |
real function, public equil_mod::func_b_pszs | ( | real, intent(in) | ss | ) |
real function, public equil_mod::func_sigma | ( | real, intent(in) | ss | ) |
real function, public equil_mod::func_sigmab | ( | real, intent(in) | ss | ) |
real function, public equil_mod::func_sigmatprimeob | ( | real, intent(in) | ss | ) |
real function, public equil_mod::func_torpsi | ( | real, intent(in) | ss | ) |
Get toroidal flux.
[in] | ss | Radial position |
real function, public equil_mod::func_tprimeob_pszs | ( | real, intent(in) | ss | ) |
real function, public equil_mod::get_chi | ( | real, intent(in) | s, |
real, intent(in) | theta | ||
) |
real function, dimension(2), public equil_mod::get_comp | ( | real, intent(in) | s, |
real, intent(in) | chi | ||
) |
subroutine, public equil_mod::get_fdfds | ( | real, intent(in) | s, |
real, intent(out) | F, | ||
real, intent(out) | dFds | ||
) |
real function, dimension(2), public equil_mod::get_gradb | ( | real, intent(in) | px, |
real, intent(in) | py | ||
) |
|
private |
|
private |
real function, dimension(2), public equil_mod::get_gradpsi | ( | real, intent(in) | px, |
real, intent(in) | py | ||
) |
real function, dimension(2), public equil_mod::get_grhphi | ( | real, intent(in) | px, |
real, intent(in) | py | ||
) |
subroutine, public equil_mod::get_larm_coeff | ( | real, intent(in) | s, |
real, intent(in) | chi, | ||
real, intent(out) | larmsc, | ||
real, intent(out) | larmchic, | ||
real, intent(out) | larmchis | ||
) |
subroutine, public equil_mod::get_larm_coeffn | ( | real, intent(in) | s, |
real, intent(in) | chi, | ||
real, dimension(:), intent(out) | larmsc, | ||
real, dimension(:), intent(out) | larmchic, | ||
real, dimension(:), intent(out) | larmchis | ||
) |
Compute coefficients for particle position by bilinear interpolation.
[in] | s | Radial position of the marker's GC |
[in] | chi | Poloidal position of the marker's GC |
|
private |
Calculate average density value \bar{n} for normalization.
subroutine equil_mod::get_nref |
real function, public equil_mod::get_psi_of_r | ( | real, intent(in) | zrho | ) |
subroutine, public equil_mod::get_qmin | ( | real, intent(out) | sqmin, |
real, intent(out) | qmin | ||
) |
|
private |
subroutine, public equil_mod::get_rz | ( | real, intent(in) | s, |
real, intent(in) | chi, | ||
real, intent(out) | r, | ||
real, intent(out) | z | ||
) |
real function, public equil_mod::get_theta | ( | real, intent(in) | s, |
real, intent(in) | chi | ||
) |
real function, public equil_mod::get_vth_psi | ( | real, intent(in) | zpsit, |
integer, intent(in) | isp | ||
) |
real function, public equil_mod::getdens_corr | ( | real, intent(in) | psit | ) |
pure subroutine, public equil_mod::getdn_corr | ( | real, intent(in) | psit, |
real, intent(out) | dncorr | ||
) |
real function, public equil_mod::gtgp_xy | ( | real, intent(in) | px, |
real, intent(in) | py | ||
) |
|
private |
|
private |
subroutine, public equil_mod::init_dens_profile | ( | integer, intent(in) | worktype, |
integer, intent(in) | isp, | ||
real, dimension(:), intent(inout), optional | zf_av, | ||
real, dimension(:), intent(inout), optional | z_den | ||
) |
|
private |
|
private |
Define equilibrium profiles (density, temperature and parallel momentum)
THIS works only for bulk ions and electrons. Other species better have nsel_species /= 6 SSAAR
|
private |
real function, public equil_mod::jacob | ( | real, intent(in) | s, |
real, intent(in) | chi | ||
) |
real function, public equil_mod::jacob_tsp | ( | real, intent(in) | s, |
real, intent(in) | chi | ||
) |
real function, public equil_mod::jacobderivative | ( | real, intent(in) | s, |
real, intent(in) | chi | ||
) |
|
private |
read hdf5 file, get omega
Interpolate \Omega onto equilibrium grid
|
private |
|
private |
subroutine equil_mod::make_equil_sc_coeff_chease |
|
private |
Computes quantities needed during time evolution on a (s,chi) grid.
subroutine, public equil_mod::make_toroidal_flow_potential | ( | real, dimension(0:ngmax), intent(out) | potential, |
logical, intent(in) | write_exb_diagnostics, | ||
real, intent(in) | time | ||
) |
Load a toroidal angular frequency profile given as an arbitrary set of points, and calculate the background potential to give this rotation. Toroidal rotation profile specified in prof_file (/data/omega), with npsi_profile points (in /data/NPSI). Omega should be in units of radians/cyclotron frequency. Designed for general coordinate system and doesn't make large-aspect ratio assumptions. Uses the following input parameters: nsel_pot_profile=NSEL_POT_PROF_FILE, flow_scale, prof_file.
Given a toroidal angular frequency profile, we want to calculate the electrostatic potential associated with the perpendicular part (the parallel part is handled by the equilibrium distribution function).
A toroidal flow, \(v_\Omega = \Omega R\), has vector components: \( v_\Omega = (v\cdot\nabla\varphi)\mathrm{e}_\varphi = \Omega \mathrm{e}_\varphi \)
Decompose into parallel and perpendicular components with: \( v_\Omega = (v_\Omega \cdot \hat{b}) \hat{b} - \hat{b}\times(\hat{b}\times v_\Omega) \)
The perpendicular part is: \( -\Omega b^{\theta_*} b^\varphi g_{\varphi \varphi}\mathrm{e}_{\theta_*} + \Omega(b^{\theta_*})^2 g_{{\theta_*} {\theta_*}}\mathrm{e}_\varphi \)
where \(g_{x y}\) is the \(x,y\) component of the covariant metric tensor.
We can then equate components of this term to the components of the \(E \times B\) velocity to find the electric field, and then integrate that to find the potential
read hdf5 file, get omega
Loop over s at one poloidal angle - potential is a flux function
Get \Omega on higher-resolution grid
(theta_*, theta_*) component of metric tensor
Get magnetic equilibrium quantities
Calculate ExB and parallel velocity components
Electric field from theta_* or phi component of ExB
Get physical values of different components
Reconstruct toroidal angular velocity, sanity check
Normalise the electric field before computing the potential
Integrate the electric field to find the potential
Write out various quantities, creating the datasets first if need be
|
private |
|
private |
real function equil_mod::profile_i | ( | real, intent(in) | st, |
real, intent(in) | kappa_x, | ||
real, intent(in) | width, | ||
real, intent(in) | peak, | ||
logical, intent(in) | grad | ||
) |
subroutine, public equil_mod::profiles | ( | integer, intent(in) | isp, |
real, intent(in) | psi, | ||
real, intent(out) | tval, | ||
real, intent(out) | tgrad, | ||
real, intent(out) | nval, | ||
real, intent(out) | ngrad, | ||
real, intent(out) | vpval, | ||
real, intent(out) | vpgrad | ||
) |
Get equilibrium profiles and gradients.
[in] | isp | Species under consideration |
[in] | psi | Radial position |
[out] | tval | Temperature |
[out] | tgrad | Temperature gradient |
[out] | nval | Density |
[out] | ngrad | Density gradient |
[out] | vpval | Parallel velocity |
[out] | vpgrad | Parallel velocity gradient |
subroutine, public equil_mod::profiles_sh | ( | integer, intent(in) | isp, |
real, intent(in) | psi, | ||
real, intent(out) | nishval | ||
) |
|
private |
Get pseudo-safety factor and its derivative.
subroutine, public equil_mod::qchi | ( | real, intent(in) | radvar, |
real, intent(out) | qout, | ||
character(len=*), intent(in), optional | strsel | ||
) |
Get q profile by linear interpolation.
[in] | radvar | Radial position |
[out] | qout | Ouptut safety factor at radial position |
[in] | strsel | Optional value to switch from \(\rho_{vol}\) to \(s\) |
|
private |
|
private |
subroutine, public equil_mod::read_equil_hdf5 |
PSI in equilbrium is 2pi * poloidal magnetic flux in some versions of CHEASE
|
private |
subroutine, public equil_mod::s2rad | ( | real, intent(in) | ps, |
real, intent(out) | prad, | ||
real, intent(out) | pdrds | ||
) |
Convert \(s=\sqrt(\psi/\psi_{edge})\) in \(\rho/a_{mid}\) and gives \(d(\rho/a_{mid})/ds\).
[in] | ps | Radial \(s\) coordinate |
[out] | pdrds | Derivative of \(\rho/a_{mid}\) with repsect to \(s\) |
[out] | prad | Converted radial coordinate |
|
private |
Compute s->rho_vol analytically according to q-profile.
[in] | ps | Radial coordinate in s |
[out] | prad | Radial coordinate in rho_vol |
[out] | pdrds | Derivative of rho_vol with respect to s |
|
private |
Compute s->rho_vol by linear interpolation with CHEASE grids.
[in] | ps | Radial coordinate in s |
[out] | prad | Radial coordinate in rho_vol |
[out] | pdrds | Derivative of rho_vol with respect to s |
real function, public equil_mod::s_of_q | ( | real, intent(in) | zq | ) |
subroutine, public equil_mod::sc2xy | ( | real, intent(in) | s, |
real, intent(in) | theta, | ||
real, intent(out) | x, | ||
real, intent(out) | y | ||
) |
subroutine, public equil_mod::sc2xy_chease | ( | real, intent(in) | s, |
real, intent(in) | theta, | ||
real, intent(out) | x, | ||
real, intent(out) | y | ||
) |
subroutine, public equil_mod::sc2xy_sincos | ( | real, intent(in) | s, |
real, intent(in) | cost, | ||
real, intent(in) | sint, | ||
real, intent(out) | x, | ||
real, intent(out) | y | ||
) |
|
private |
|
private |
|
private |
Set the background potential: various options depending on input flags.
|
private |
subroutine equil_mod::set_n_corr |
|
private |
subroutine, public equil_mod::xy2sc | ( | real, intent(in) | x, |
real, intent(in) | y, | ||
real, intent(out) | s, | ||
real, intent(out) | chi_out | ||
) |
|
private |
real, dimension(:,:,:), allocatable, save, public equil_mod::a_equ |
real, save, public equil_mod::a_midn |
|
private |
|
private |
real, dimension(:), allocatable, save, public equil_mod::alphain |
real, dimension(:), allocatable, save, public equil_mod::alphain0 |
real, save, public equil_mod::b_norm |
|
private |
|
private |
|
private |
real, dimension(:), allocatable, save, public equil_mod::bin_surf |
real, dimension(:), allocatable, save, public equil_mod::bin_vol |
real, dimension(:,:), allocatable, save, public equil_mod::bin_vol_2d |
real, dimension(:,:), allocatable, save, public equil_mod::bin_vol_3d |
real, dimension(:,:), allocatable, save, public equil_mod::bin_vol_3d_inv |
|
private |
real, save, public equil_mod::bmax_c |
|
private |
real, save, public equil_mod::bmin_c |
|
private |
real, save, public equil_mod::c_psi0corr |
|
private |
real, save, public equil_mod::chibmax |
real, save, public equil_mod::chibmax0 |
real, save, public equil_mod::chibmin |
real, save, public equil_mod::chibmin0 |
|
private |
|
private |
|
private |
real, save, public equil_mod::d_norm |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
real, save, public equil_mod::ds_inv |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
real, dimension(:), allocatable, save, public equil_mod::ekinps |
real, dimension(:), allocatable, save, public equil_mod::ekinps_tr |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
real, save, public equil_mod::fonbmax_c |
real, save, public equil_mod::fonbmin_c |
real, save, public equil_mod::fpsin |
|
private |
|
private |
|
private |
real, save, public equil_mod::gedr |
real, save, public equil_mod::gedr_inv |
|
private |
|
private |
real, save, public equil_mod::gedz |
real, save, public equil_mod::gedz_inv |
real, save, public equil_mod::ger_max |
real, save, public equil_mod::ger_min |
|
private |
real, save, public equil_mod::gez_min |
|
private |
|
private |
|
private |
|
private |
|
private |
integer, save, public equil_mod::ichimax |
integer, save, public equil_mod::ichimax0 |
integer, save, public equil_mod::ichimin |
integer, save, public equil_mod::ichimin0 |
|
private |
integer, dimension(:), allocatable, save, public equil_mod::jchiin |
integer, dimension(:), allocatable, save, public equil_mod::jchiin0 |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
real, dimension(:), allocatable, save, public equil_mod::nbar |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
integer, save, public equil_mod::ngmax |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
real, save, public equil_mod::psi0 |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
real, dimension(:), allocatable, save, public equil_mod::psihe_grd |
real, save, public equil_mod::psihes |
|
private |
real, save, public equil_mod::psires |
real, dimension(:), allocatable, save, public equil_mod::pvol_norm |
real, dimension(:), allocatable, save, public equil_mod::pvol_norm_tr |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
real, save, public equil_mod::rhfs |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
real, dimension(:), allocatable, save, public equil_mod::sgrid_eq |
|
private |
real, dimension(:,:), allocatable, save, public equil_mod::sigmas |
|
private |
|
private |
|
private |
|
private |
real, dimension(:), allocatable, save, public equil_mod::thgrid_eq |
|
private |
|
private |
|
private |
real, dimension(:), allocatable, save, public equil_mod::volanu |
real, dimension(:), allocatable, save, public equil_mod::voldiag |
real, dimension(:), allocatable, save, public equil_mod::volps |
real, dimension(:), allocatable, save, public equil_mod::volps_tr |
real, dimension(:), allocatable, save, public equil_mod::voltor |
real, dimension(:), allocatable, save, public equil_mod::voltor_inv |
|
private |
|
private |
real, save, public equil_mod::width_is |
real, save, public equil_mod::xmag |
real, save, public equil_mod::ymag |
real, public equil_mod::zdpsi_0 |
|
private |
|
private |
|
private |
integer, save, public equil_mod::znin |
integer, save, public equil_mod::znisl |
integer, save, public equil_mod::znout |
real, dimension(:), allocatable, save, public equil_mod::zpsi_grd |