XGC1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Public Attributes | List of all members
neu_module Module Reference

Module containing the global data and variables for the neutral particle recycling model. More...

Public Attributes

integer neu_num =10000
 Number of neutral particles per thread. More...
 
integer neu_istep_max =20000
 Maximum number of neutral push time steps. More...
 
integer neu_start_time =0
 Start time of neutral recycling in ion time steps. More...
 
logical neu_enforce_no_neutral =.false.
 Forced off-switch for the neutral recycling routine (needed for radiation cooling!) More...
 
logical neu_elastic_col_on =.true.
 Whether to use elastic neutral collisions or not. Not used for neutral_totalf. More...
 
logical neu_adjust_n0 =.true.
 whether to update the base neutral density. If true, a provisional ionization rate (everywhere proportional to the local neutral density) is rescaled to match the global particle sink from the sheath module times neu_recycle_rate. More...
 
real(kind=8) neu_n0 =5.0D17
 m^-3 -> nomalized unit, Realistic initial value for neu_base_den (=base neutral density). For cases where neu_adjust_n0=false, this provides a baseline density to use. When neu_adjust_n0=true, neu_base_den is still calculated and reported in the stdout log, but has no effect on the physics. More...
 
real(kind=8) neu_temp0 =3D0
 Neutral temperature boundary condition. More...
 
real(kind=8) neu_dt
 Timestep size for the neutral Monte Carlo steps. If not provided, a default value of 2e-3*sml_dt/sqrt(neu_temp0*1e-3) is used. More...
 
real(kind=8) neu_base_den
 Base multiplier for the neutral density. Uses neu_n0. More...
 
real(kind=8), dimension(:),
allocatable 
neu_weight_sum_lost
 Global number of ions lost to the wall. More...
 
real(kind=8) neu_weight_lost_max
 upper cutoff on the number of lost particles More...
 
real(kind=8) neu_lost_rate_max =5D23
 upper cutoff on the particle loss rate (particles/sec) More...
 
real(kind=8) neu_recycle_rate =0.9D0
 Fraction of lost ions that are recycled as neutrals. The ions lost to the wall as calculated in the sheath module are used to determine the global particle sink. Neutrals are produced at a rate of neu_recycle_rate*neu_sum_weight_lost (in particles per second). Has no effect if neu_adjust_n0=false. More...
 
real(kind=8) neu_peak_theta =-99D0
 Poloidal angle at which the neutral source is peak for neu_source_match_flux=.false. More...
 
real(kind=8) neu_delta_n =10D0
 Multiple of base neutral density at the peak position. When neu_source_match_flux=.false., determines the shape of the poloidal neutral source distribution. At large neu_delta_n, it approaches a Gaussian. neu_delta_n=1.0 corresponds to a uniform neutral source. More...
 
real(kind=8) neu_delta_theta =0.5235987756
 Width of the peak of the neutral source for neu_source_match_flux=.false. More...
 
logical neu_full_grid
 Use the new neutral routine (neutral_totalf) More...
 
real(kind=8) neu_inpsi =0.7D0
 Inner boundary for neutral fueling calculation (normalized pol. flux) More...
 
character(len=128) neu_sepfile
 
character(len=128) neu_limfile
 
integer neu_col_mode
 
integer neu_cx_period
 
integer neu_ion_period
 
integer neu_varying_mfp
 
integer neu_col_period
 
logical neu_update_elec
 
real(kind=8) neu_t0
 
integer, parameter neu_sep_mtheta =200
 
integer, parameter diag_flow_npsi =80
 
integer neu_sep_mtheta_file
 
real(kind=8), dimension(neu_sep_mthetaneu_sep_r
 
real(kind=8), dimension(neu_sep_mthetaneu_sep_z
 
real(kind=8), dimension(:),
allocatable 
neu_sep_r_file
 
real(kind=8), dimension(:),
allocatable 
neu_sep_z_file
 
real(kind=8) neu_mfp
 
real(kind=8) neu_theta_x
 
real(kind=8) neu_theta_x2
 
real(kind=8) neu_mfp0
 
real(kind=8) neu_sep_dtheta
 
real(kind=8) neu_old_inside_weight
 
real(kind=8), dimension(3) neu_mom_sum_lost
 
real(kind=8) neu_energy_sum_lost
 
real(kind=8) neu_actual_ionized
 
real(kind=8) neu_actual_accum_ionized
 
real(kind=8) neu_ionize2_psi
 
real(kind=8) neu_weight_accum_lost
 
real(kind=8) neu_weight_accum_ionized
 
real(kind=8) neu_delta_theta_lowerx1
 
real(kind=8) neu_delta_theta_lowerx2
 
real(kind=8) neu_delta_theta_upperx1
 
real(kind=8) neu_delta_theta_upperx2
 
real(kind=8), dimension(2) neu_theta_edge
 
real(kind=8), dimension(2) neu_rad_edge
 
real(kind=8), dimension(2) neu_theta_edge2
 
real(kind=8), dimension(2) neu_rad_edge2
 
integer neu_ionize_mode
 
real(kind=8) neu_temp_factor
 
integer, parameter neu_grid_mpsi =50
 
integer, parameter neu_grid_mtheta =40
 
integer, parameter neu_mtheta =200
 
real(kind=8), dimension(neu_mthetaneu_r0
 
real(kind=8), dimension(neu_mthetaneu_z0
 
real(kind=8), dimension(neu_mthetaneu_jacob
 
real(kind=8) neu_dtheta
 
real(kind=8) neu_psi_edge
 
integer neu_mpol
 
integer neu_monte_num
 
integer neu_flow_on
 
integer neu_grid_mode
 
real(kind=8), dimension(neu_grid_mpsi,
neu_grid_mtheta
neu_grid_den
 
real(kind=8), dimension(neu_grid_mpsi,
neu_grid_mtheta
neu_grid_temp
 
real(kind=8), dimension(neu_grid_mpsi,
neu_grid_mtheta
neu_grid_wsum
 
real(kind=8), dimension(neu_grid_mpsi,
neu_grid_mtheta
neu_grid_esum
 
real(kind=8), dimension(neu_grid_mpsi,
neu_grid_mtheta
neu_grid_vol
 
real(kind=8), dimension(neu_grid_mpsi,
neu_grid_mtheta
neu_grid_flow
 
real(kind=8) neu_grid_dtheta
 
real(kind=8) neu_grid_dpsi
 
real(kind=8) neu_grid_dpsi2
 
real(kind=8) neu_grid_min_psi
 
real(kind=8) neu_grid_max_psi
 
real(kind=8) neu_ionize_elec_cooling_ev
 
real(kind=8) neu_nr
 
integer(8), dimension(neu_grid_mpsineu_cx_events
 
integer(8), dimension(neu_grid_mpsineu_ion_events
 
real(kind=8), dimension(neu_grid_mpsineu_ion_events_weights
 
real(kind=8), dimension(neu_grid_mpsineu_cx_events_weights
 
real(kind=8), dimension(neu_sep_mthetaneu_lim_r
 
real(kind=8), dimension(neu_sep_mthetaneu_lim_z
 
integer neu_background_period =500
 Period between subsequent updates of the background neutral distribution function in ion time steps. In any case, the density renormalization and source rates are recalculated every timestep for a fixed normalized neutral profile. More...
 
logical neu_exclude_private =.false.
 Exclude the privat region from neutral recycling. More...
 
real(kind=8), dimension(:,:),
allocatable 
neu_weight_wall_lost
 Local number of ions lost to the wall. More...
 
real(kind=8), dimension(:),
allocatable 
neu_norm_baseden
 Holds normalized neutral density from ion flux to wall. More...
 
integer neu_nnode
 Number of nodes in neutral solution volume. Currently gridnnode. More...
 
integer neu_nbirth
 Number of birth locations. Currently gridnwall. More...
 
logical neu_source_match_flux =.true.
 If true, the neutral source around the limiter is determined from the local ion sink. If false, the neutral source is given an analytic poloidal dependence. More...
 
real(kind=8), dimension(:),
allocatable 
neu_rbirth
 
real(kind=8), dimension(:),
allocatable 
neu_zbirth
 (R,Z) coordinates of the neutral birth surface More...
 
real(kind=8), dimension(:),
allocatable 
neu_node_dens
 Normalized neutral density. More...
 
real(kind=8), dimension(:),
allocatable 
neu_node_temp
 Neutral temperature. More...
 
real(kind=8), dimension(:),
allocatable 
neu_node_wsum
 Weight sum for neutral density calculation. More...
 
real(kind=8), dimension(:),
allocatable 
neu_node_esum
 Weight sum for avg. neutral energy calculation. More...
 
real(kind=8), dimension(:),
allocatable 
neu_node_varsum
 Weight sum for weight variance calculation. More...
 
real(kind=8), dimension(:),
allocatable 
neu_node_numsum
 Weight sum for neutral number calculation. More...
 
real(kind=8), dimension(:),
allocatable 
neu_node_vol
 Neutral cell volume. More...
 
real(kind=8), dimension(:),
allocatable 
neu_node_flow
 Neutral bulk flow. More...
 
real(kind=8), dimension(:),
allocatable 
neu_node_vsum
 Weight sum for neutral bulk flow calculation. More...
 
real(kind=8), dimension(:),
allocatable 
neu_node_relstd
 Neutral weight standard deviation. More...
 

Detailed Description

Module containing the global data and variables for the neutral particle recycling model.

Member Data Documentation

integer, parameter neu_module::diag_flow_npsi =80
real (kind=8) neu_module::neu_actual_accum_ionized
real (kind=8) neu_module::neu_actual_ionized
logical neu_module::neu_adjust_n0 =.true.

whether to update the base neutral density. If true, a provisional ionization rate (everywhere proportional to the local neutral density) is rescaled to match the global particle sink from the sheath module times neu_recycle_rate.

integer neu_module::neu_background_period =500

Period between subsequent updates of the background neutral distribution function in ion time steps. In any case, the density renormalization and source rates are recalculated every timestep for a fixed normalized neutral profile.

real (kind=8) neu_module::neu_base_den

Base multiplier for the neutral density. Uses neu_n0.

integer neu_module::neu_col_mode
integer neu_module::neu_col_period
integer (8), dimension(neu_grid_mpsi) neu_module::neu_cx_events
real (kind=8), dimension(neu_grid_mpsi) neu_module::neu_cx_events_weights
integer neu_module::neu_cx_period
real (kind=8) neu_module::neu_delta_n =10D0

Multiple of base neutral density at the peak position. When neu_source_match_flux=.false., determines the shape of the poloidal neutral source distribution. At large neu_delta_n, it approaches a Gaussian. neu_delta_n=1.0 corresponds to a uniform neutral source.

real (kind=8) neu_module::neu_delta_theta =0.5235987756

Width of the peak of the neutral source for neu_source_match_flux=.false.

real (kind=8) neu_module::neu_delta_theta_lowerx1
real (kind=8) neu_module::neu_delta_theta_lowerx2
real (kind=8) neu_module::neu_delta_theta_upperx1
real (kind=8) neu_module::neu_delta_theta_upperx2
real (kind=8) neu_module::neu_dt

Timestep size for the neutral Monte Carlo steps. If not provided, a default value of 2e-3*sml_dt/sqrt(neu_temp0*1e-3) is used.

real (kind=8) neu_module::neu_dtheta
logical neu_module::neu_elastic_col_on =.true.

Whether to use elastic neutral collisions or not. Not used for neutral_totalf.

real (kind=8) neu_module::neu_energy_sum_lost
logical neu_module::neu_enforce_no_neutral =.false.

Forced off-switch for the neutral recycling routine (needed for radiation cooling!)

logical neu_module::neu_exclude_private =.false.

Exclude the privat region from neutral recycling.

integer neu_module::neu_flow_on
logical neu_module::neu_full_grid

Use the new neutral routine (neutral_totalf)

real (kind=8), dimension(neu_grid_mpsi,neu_grid_mtheta) neu_module::neu_grid_den
real (kind=8) neu_module::neu_grid_dpsi
real (kind=8) neu_module::neu_grid_dpsi2
real (kind=8) neu_module::neu_grid_dtheta
real (kind=8), dimension(neu_grid_mpsi,neu_grid_mtheta) neu_module::neu_grid_esum
real (kind=8), dimension(neu_grid_mpsi,neu_grid_mtheta) neu_module::neu_grid_flow
real (kind=8) neu_module::neu_grid_max_psi
real (kind=8) neu_module::neu_grid_min_psi
integer neu_module::neu_grid_mode
integer, parameter neu_module::neu_grid_mpsi =50
integer, parameter neu_module::neu_grid_mtheta =40
real (kind=8), dimension(neu_grid_mpsi,neu_grid_mtheta) neu_module::neu_grid_temp
real (kind=8), dimension(neu_grid_mpsi,neu_grid_mtheta) neu_module::neu_grid_vol
real (kind=8), dimension(neu_grid_mpsi,neu_grid_mtheta) neu_module::neu_grid_wsum
real (kind=8) neu_module::neu_inpsi =0.7D0

Inner boundary for neutral fueling calculation (normalized pol. flux)

integer (8), dimension(neu_grid_mpsi) neu_module::neu_ion_events
real (kind=8), dimension(neu_grid_mpsi) neu_module::neu_ion_events_weights
integer neu_module::neu_ion_period
real (kind=8) neu_module::neu_ionize2_psi
real (kind=8) neu_module::neu_ionize_elec_cooling_ev
integer neu_module::neu_ionize_mode
integer neu_module::neu_istep_max =20000

Maximum number of neutral push time steps.

real (kind=8), dimension(neu_mtheta) neu_module::neu_jacob
real (kind=8), dimension(neu_sep_mtheta) neu_module::neu_lim_r
real (kind=8), dimension(neu_sep_mtheta) neu_module::neu_lim_z
character (len=128) neu_module::neu_limfile
real (kind=8) neu_module::neu_lost_rate_max =5D23

upper cutoff on the particle loss rate (particles/sec)

real (kind=8) neu_module::neu_mfp
real (kind=8) neu_module::neu_mfp0
real (kind=8), dimension(3) neu_module::neu_mom_sum_lost
integer neu_module::neu_monte_num
integer neu_module::neu_mpol
integer, parameter neu_module::neu_mtheta =200
real (kind=8) neu_module::neu_n0 =5.0D17

m^-3 -> nomalized unit, Realistic initial value for neu_base_den (=base neutral density). For cases where neu_adjust_n0=false, this provides a baseline density to use. When neu_adjust_n0=true, neu_base_den is still calculated and reported in the stdout log, but has no effect on the physics.

integer neu_module::neu_nbirth

Number of birth locations. Currently gridnwall.

integer neu_module::neu_nnode

Number of nodes in neutral solution volume. Currently gridnnode.

real (kind=8), dimension(:), allocatable neu_module::neu_node_dens

Normalized neutral density.

real (kind=8), dimension(:), allocatable neu_module::neu_node_esum

Weight sum for avg. neutral energy calculation.

real (kind=8), dimension(:), allocatable neu_module::neu_node_flow

Neutral bulk flow.

real (kind=8), dimension(:), allocatable neu_module::neu_node_numsum

Weight sum for neutral number calculation.

real (kind=8), dimension(:), allocatable neu_module::neu_node_relstd

Neutral weight standard deviation.

real (kind=8), dimension(:), allocatable neu_module::neu_node_temp

Neutral temperature.

real (kind=8), dimension(:), allocatable neu_module::neu_node_varsum

Weight sum for weight variance calculation.

real (kind=8), dimension(:), allocatable neu_module::neu_node_vol

Neutral cell volume.

real (kind=8), dimension(:), allocatable neu_module::neu_node_vsum

Weight sum for neutral bulk flow calculation.

real (kind=8), dimension(:), allocatable neu_module::neu_node_wsum

Weight sum for neutral density calculation.

real (kind=8), dimension(:), allocatable neu_module::neu_norm_baseden

Holds normalized neutral density from ion flux to wall.

real (kind=8) neu_module::neu_nr
integer neu_module::neu_num =10000

Number of neutral particles per thread.

real (kind=8) neu_module::neu_old_inside_weight
real (kind=8) neu_module::neu_peak_theta =-99D0

Poloidal angle at which the neutral source is peak for neu_source_match_flux=.false.

real (kind=8) neu_module::neu_psi_edge
real (kind=8), dimension(neu_mtheta) neu_module::neu_r0
real (kind=8), dimension(2) neu_module::neu_rad_edge
real (kind=8), dimension(2) neu_module::neu_rad_edge2
real (kind=8), dimension(:), allocatable neu_module::neu_rbirth
real (kind=8) neu_module::neu_recycle_rate =0.9D0

Fraction of lost ions that are recycled as neutrals. The ions lost to the wall as calculated in the sheath module are used to determine the global particle sink. Neutrals are produced at a rate of neu_recycle_rate*neu_sum_weight_lost (in particles per second). Has no effect if neu_adjust_n0=false.

real (kind=8) neu_module::neu_sep_dtheta
integer, parameter neu_module::neu_sep_mtheta =200
integer neu_module::neu_sep_mtheta_file
real (kind=8), dimension(neu_sep_mtheta) neu_module::neu_sep_r
real (kind=8), dimension(:), allocatable neu_module::neu_sep_r_file
real (kind=8), dimension(neu_sep_mtheta) neu_module::neu_sep_z
real (kind=8), dimension(:), allocatable neu_module::neu_sep_z_file
character (len=128) neu_module::neu_sepfile
logical neu_module::neu_source_match_flux =.true.

If true, the neutral source around the limiter is determined from the local ion sink. If false, the neutral source is given an analytic poloidal dependence.

integer neu_module::neu_start_time =0

Start time of neutral recycling in ion time steps.

real (kind=8) neu_module::neu_t0
real (kind=8) neu_module::neu_temp0 =3D0

Neutral temperature boundary condition.

real (kind=8) neu_module::neu_temp_factor
real (kind=8), dimension(2) neu_module::neu_theta_edge
real (kind=8), dimension(2) neu_module::neu_theta_edge2
real (kind=8) neu_module::neu_theta_x
real (kind=8) neu_module::neu_theta_x2
logical neu_module::neu_update_elec
integer neu_module::neu_varying_mfp
real (kind=8) neu_module::neu_weight_accum_ionized
real (kind=8) neu_module::neu_weight_accum_lost
real (kind=8) neu_module::neu_weight_lost_max

upper cutoff on the number of lost particles

real (kind=8), dimension(:), allocatable neu_module::neu_weight_sum_lost

Global number of ions lost to the wall.

real (kind=8), dimension(:,:), allocatable neu_module::neu_weight_wall_lost

Local number of ions lost to the wall.

real (kind=8), dimension(neu_mtheta) neu_module::neu_z0
real (kind=8), dimension(:), allocatable neu_module::neu_zbirth

(R,Z) coordinates of the neutral birth surface


The documentation for this module was generated from the following file: