Used to represent the input configuration of ballstab
Name | Type | Default | Description |
---|---|---|---|
real |
1.0 |
The minimum in scans is
|
|
real |
1.0 |
The maximum in scans is
|
|
real |
0.0 |
Controls decentring used in the numerical integration used for solving the ballooning equation. Recommended values are either 0 (default) or 1/3. |
|
logical |
.false. |
Not currently used for anything. TodoConsider removing this variable |
|
integer |
1 |
How many values should be used in s-alpha type scans. |
|
integer |
1 |
How many values should be used in s-alpha type scans. |
|
real |
0.0 |
The maximum value of to use in s-alpha type scans. NoteThis gets a smart default of the equilibrium value of |
|
real |
0.0 |
The minimum value of to use in s-alpha type scans. NoteThis gets a smart default of the equilibrium value of |
|
real |
0.0 |
The theta0 value to use in solving the ideal ballooning problem. We don't currently provide a means to study multiple theta0 in a single run. This may change in the future. |
Used to represent the input configuration of collisions
Name | Type | Default | Description |
---|---|---|---|
logical |
.true. |
If true (default) then transform from the gyro-averaged distribution function evolved by GS2 to the non-Boltzmann part of , (), when applying the collision operator. This is the physically appropriate choice, this parameter is primarily for numerical testing. |
|
real |
1.0 |
Factor multipyling the finite Larmor radius terms in the
collision operator. This term is essentially just classical
diffusion. Set NoteDefault changed to 1.0 in order to include classical diffusion April 18 2006 |
|
character(len = 20) |
'default' |
Selects the collision model used in the simulation. Can be one of
If no species have a non-zero collision frequency, |
|
logical |
.true. |
If true (default) then guarantee exact conservation properties. |
|
logical |
.true. |
If true (default) then forces conservation corrections to zero in the forbidden region to avoid introducing unphysical non-zero values for the distribution function in the forbidden region of trapped particles. TodoConfirm above documentation is accurate. NoteThe conserving terms calculated as part of the field particle collision operator should respect the forbidden of the distribution function for trapped particles. This is a cosmetic change, but has the result that plots of the distribution function for trapped particles makes sense. Note that terms involving vpa do not need to be modified Because vpa = 0 in the forbidden region because of this explicit forbid statements have not been added to the drag term involving apar. |
|
logical |
.true. |
If true (default) then guarantee collision operator conserves momentum and energy. TodoClarify the difference with conservative. NoteDefault changed to reflect improved momentum and energy conversation 07/08 |
|
logical |
.false. |
If true (not the default) then use the thermal velocity to evaluate the collision frequencies to be used. This results in an energy independent collision frequency being used for all species. |
|
character(len = 20) |
'default' |
Controls how the coefficients in the matrix representing the energy diffusion operator are obtained. Can be one of
TodoConsider deprecating/removing the |
|
logical |
.false. |
If true (not the default) then force the collision frequency used for all non-electron species to zero and force all electron-electron terms to zero. |
|
real |
2.e-2 |
Only used in get_verr as a part of the adaptive collisionality algorithm. Sets the maximum relative error allowed, above which the collision frequency must be increased. TodoConfirm this is really to set the relative error limit. |
|
real |
2.e-2 |
Only used in get_verr as a part of the adaptive collisionality algorithm. Sets the maximum absolute error allowed, above which the collision frequency must be increased. TodoConfirm this is really to set the absolute error limit. |
|
real |
1.e-2 |
Only used in get_verr as a part of the adaptive collisionality algorithm. Sets an offset to apply to the relative error limit set by etol. This is used to provide hysteresis is the adaptive collisionality algorithm so to avoid adjusting the collision frequency up and down every step (similar to delt_cushion). TodoConfirm the above description. |
|
real |
1.e-2 |
Only used in get_verr as a part of the adaptive collisionality algorithm. Sets an offset to apply to the absolute error limit set by etola. This is used to provide hysteresis is the adaptive collisionality algorithm so to avoid adjusting the collision frequency up and down every step (similar to the delt_cushion). TodoConfirm the above description. |
|
logical |
.false. |
Currently we skip the application of the selected collision
operator for species with zero collision frequency and disable
collisions entirely if no species have non-zero collision
frequency. This is generally sensible, but it can be useful to
force the use of the collisional code path in some situations
such as in code testing. Setting this flag to |
|
logical |
.false. |
If true (not the default) then calculate collisional heating when applying the collion operator. This is purely a diagnostic calculation. It should not change the evolution. Todo: Verify this does not influence the evolution. |
|
logical |
.false. |
If true (not the default) then multiply the hyper collision frequency by the species' collision frequency nu_h. This only impacts the pitch angle scattering operator. NoteThe hyper collision frequency is only non-zero if any
species have a non-zero |
|
character(len = 20) |
'default' |
Controls how the coefficients in the matrix representing the pitch angle scattering operator are obtained. Can be one of
TodoConsider deprecating/removing the |
|
integer |
100 |
Used as a part of the adaptive collisionality algorithm. When
active we check the velocity space error with get_verr
every WarningThe new diagnostics module currently ignores this
value and instead uses its own input variable named |
|
logical |
.true. |
If true (default) then potentially include the drag term in
the pitch angle scattering operator. This is a necessary but
not sufficient criteria. For the drag term to be included we
also require , more than one simulated species
and finite perturbations included in the simulation
(i.e. |
|
logical |
.false. |
If true (not the default) then use special handling for the wfb particle in the pitch angle scattering operator. NoteMRH changed default 16/08/2018. Previous default of true seemed to cause a numerical issue in flux tube simulations for the zonal modes at large . TodoImprove this documentation |
|
logical |
.false. |
If true (not the default) then remove the collision operator from the usual time advance algorithm. Instead the collision operator is only applied every timesteps_between_collisions timesteps. This can potentially substantially speed up collisional simulations, both in the initialisation and advance phases. WarningCurrently the input
timesteps_between_collisions is ignored
so collisions are applied every time step. The primary result
of |
|
logical |
.false. |
If true (not the default) then performs some additional checks of the data redistribution routines associated with transforming being the standard and collisional data decompositions. |
|
integer |
1 |
Should set the number of timesteps between application of the collision operator if split_collisions is true. Currently this is ignored. WarningThis value is currently ignored. |
|
logical |
.true. |
If true (default) then use a data decomposition for collisions that brings both pitch angle and energy local to a processor. This is typically the most efficient option, however for collisional simulations that only use part of the collision operator (either energy diffusion or pitch angle scattering) then it may be beneficial to set this flag to false such that we use a decomposition that only brings either energy or pitch angle local. |
|
logical |
.false. |
Set to true (not the default) to activate the adaptive collisionality algorithm. TodoProvide more documentation on the adaptive collisionality algorithm. |
|
real |
1.1 |
If the collisionality is to be increased as a part of the adaptive collisionality algorithm then increase it by this factor. |
|
real |
0.9 |
If the collisionality is to be decreased as a part of the adaptive collisionality algorithm then decrease it by this factor. |
|
logical |
.true. |
Controls how the duplicate TodoConsider removing this option. |
Used to represent the input configuration of dist_fn
Name | Type | Default | Description |
---|---|---|---|
character(len = 30) |
'default' |
The form of the adiabatic response (if a species is being modeled as adiabatic). Ignored if there are electrons in the species list.
TodoRemove 'iphi00=3' |
|
real |
0.0 |
For debugging only. TodoImprove documentation |
|
real |
1.0 |
Leave as unity. For debugging. TodoImprove documentation |
|
logical |
.false. |
If true then attempt to enforce gnew == 0 at a half grid point past the end of the grid rather than on the last grid point. This is an experimental feature which has been seen to help suppress grid scale oscillations near the boundary. |
|
character(len = 20) |
'default' |
Sets the boundary condition along the field line (i.e. the boundary conditions at in flux-tube simulations or in ballooning space). Possible values are:
See also nonad_zero |
|
real |
0.0 |
Overrides the itor_over_B internal parameter, meant only for slab runs where it sets the angle between the magnetic field and the toroidal flow. |
|
logical |
.false. |
True only allows solutions of single parity as determined by the input even. |
|
real |
1.0 |
Leave as unity for physical runs can be used for debugging. Multiplies the passing particle drifts (also see tpdriftknob). |
|
logical |
.false. |
If |
|
logical |
.true. |
If |
|
logical |
.false. |
If true then attempt to enforce an exponential decay boundary condition on gnew or hnew (depending on nonad_zero). Decay rate scaled by exponential_boundary_factor |
|
real |
1.0 |
Factor scaling the exponential decay boundary condition |
|
real |
0.0 |
where is toroidal angular velocity normalised to the reference frequency and is the normalised flux label which has value on the local surface. |
|
real |
-1 |
Flow shear switched on when simulation time exceeds this time. |
|
integer |
-1 |
Flow shear switched on when simulation timestep exceeds this timestep. |
|
real |
1.0 |
Multiplies |
|
logical |
.false. |
Perform velocity space integration using TodoConsider if this should be a field input. |
|
logical |
.true. |
Determines if we include the hyperviscosity term during the initialisation of the response matrix or not. |
|
real |
0.0 |
Number multiplying the coriolis drift. TodoExpand documentation |
|
logical |
.false. |
Allow different species to have different values of |
|
logical |
.true. |
If true switches on "new" parallel boundary condition where h=0 at incoming boundary instead of g=0. This is considered the correct boundary condition but old behaviour retained for experimentation. |
|
real |
1.0 |
Factor multiplying the parallel shearing drive term when running with non-zero g_exb |
|
logical |
.false. |
If true then use an optimised linear source calculation which
uses pre-calculated coefficients, calculates both sigma
together and skips work associated with empty fields. Can
contribute at least 10-25% savings for linear electrostatic
collisionless simulations. For more complicated runs the
savings may be less. If enabled memory usage will
increase due to using an additional array of size 2-4 times
|
|
real |
0.0 |
If non-zero, quasineutrality is not enforced,
|
|
logical |
.false. |
Determines if we set gnew = 0 (if flag is false) or gnew = g in invert_rhs_1 or not. This is currently considered experimental, but the intention is to change the default to true. |
|
real |
-9.9e9 |
For debugging only. Multiplies the trapped particle drifts (also see driftknob). |
|
real |
1.0 |
For debugging only. Scales the calculated vparallel. NoteIf set to zero then the homogeneous contribution, |
|
real |
1.0 |
For debugging only. Sets the boundary value for the barely trapped/passing particle. |
|
logical |
.false. |
If true then force |
Used to represent the input configuration of dist_fn_species. There should be one of this namelist for each species simulated.
Name | Type | Default | Description |
---|---|---|---|
real |
0.0 |
Spatial implicitness parameter. Any value greater than 0 adds
numerical dissipation which is often necessary to avoid grid
scale oscillations. When WarningIt is possible to have different values for the different species simulated, but in a number of places we only use the value given by the first species. It is strongly recommended to use the same value for all species. TodoClarify the motivation for the electromagnetic recommendation. TodoConsider forcing this to be constant across all species. TodoConsider changing the default to the recommended value. |
|
real |
0.4 |
Sets the real part of the temporal implicitness parameter. Any
value smaller than 0.5 adds numerical dissipation. When TodoConsider changing the default to the recommended value. |
Used to represent the input configuration of driver. See the documentation of the antenna module for more details.
Name | Type | Default | Description |
---|---|---|---|
real |
0.0 |
Amplitude of Langevin antenna. |
|
logical |
.false. |
Overrides all other options and turns off antenna if |
|
integer |
1 |
Number of independent Fourier modes driven by antenna. |
|
logical |
.false. |
If |
|
real |
-1.0 |
Sets the time at which the antenna frequency changes from
constant w_antenna to linearly varying, with linear piece
proprtional to w_dot multiplied by |
|
complex |
(1.0, 0.0) |
Frequency of Langevin antenna. Sets the constant part of the complex antenna frequency. |
|
real |
0.0 |
Sets the coefficient in front of the time varying antenna
frequency (real) component activated when |
|
logical |
.false. |
Write antenna amplitudes to ASCII file for debugging. |
Used to represent the input configuration of eigval. Several of these options are controlling SLEPc settings, which can also be set using the SLEPc command line flags.
Name | Type | Default | Description |
---|---|---|---|
logical |
.false. |
Determines which operator SLEPc is finding eigenvalues of. If
.false. then SLEPc analyses the time advance operator, so
internally works with the eigenvalue |
|
character(len = 20) |
'default' |
Sets the extraction technique, must be one of:
|
|
integer |
PETSC_DECIDE |
Sets the maximum number of SLEPC iterations used. If not set (recommended) then let SLEPC decide what to use (varies with different options). |
|
integer |
1 |
The number of eigenmodes to search for. The actual number of modes found may be larger than this. |
|
integer |
1 |
How many GS2 timesteps to take each time SLEPc wants to advance the distribution function. Useful to separate closely spaced eigenvalues without changing delt. |
|
logical |
.false. |
If |
|
character(len = 20) |
'default' |
Sets the type of solver to use, must be one of:
Not all solver types are compatible with other eigenvalue options, some options may not be supported in older SLEPC versions and some may require certain flags to be set when SLEPC is compiled. |
|
real |
0.5 |
Imaginary part of the eigenvalue target. Often beneficial to
set this fairly large (e.g. 10) when looking for unstable
modes. Used with the |
|
real |
0.5 |
Real part of the eigenvalue target. Often beneficial to set
this fairly small (e.g. ~0). Used with the |
|
real |
1.0d-6 |
Sets tolerance on SLEPC eigenmode search. Used to determine when an eigenmode has been found. Note this is the tolerance based on the SLEPc eigenvalue, which is the time advance eigenvalue rather than the GS2 eigenvalue, . |
|
character(len = 20) |
'default' |
Sets the type of spectral transform to be used. This can help extract interior eigenvalues. Must be one of
Not all options are available in all versions of the library. |
|
logical |
.false. |
If |
|
character(len = 20) |
'default' |
Sets SLEPC mode of operation (i.e. what sort of eigenvalues it
looks for). Note that this refers to the SLEPc eigenvalue,
i.e. the time advance eigenvalue
. In other
words one should select
|
Used to represent the input configuration of fields
Name | Type | Default | Description |
---|---|---|---|
logical |
.false. |
Used with |
|
logical |
.false. |
Writes files containing the field response matrix after
initialisation. This currently works for
|
|
logical |
.false. |
Set to true to use an allreduce (on |
|
logical |
.false. |
Set to |
|
logical |
.false. |
If |
|
logical |
.false. |
Set to |
|
character(len = 20) |
'default' |
The
|
|
logical |
.false. |
Set to true to use allgatherv to fetch parts of the field update
vector calculated on other procs. When false uses a sum_allreduce
instead. This doesn't rely on sub-communicators so should work for
any layout and processor count. Note: This only impacts
|
|
logical |
.true. |
If TodoConsider if this should this go into the reinit namelist. |
|
integer |
16 |
Used with |
|
logical |
.false. |
Reads files containing the field response matrix and uses to initialise GS2s response matrix rather than using the usual initialisation process. |
|
logical |
.false. |
Delete zonal flows at every timestep. |
|
character(len = 256) |
'' |
Sets location in which to store/look for response dump files. We don't currently check that this location exists before attempting to use it, which could cause problems. The default is to save them in the working directory. |
|
character(len = 256) |
'' |
Allows customisation of the base filename to be used for
response files. If not set then we use |
Used to represent the input configuration of gs2_diagnostics. This is the version used by the original diagnostics module.
Name | Type | Default | Description |
---|---|---|---|
logical |
.false. |
Append output data to a previous output file |
|
integer |
80000 |
Used for Trinity nonlinear convergence check (use_nonlin_convergence). The maximum number of time steps, after which consider the run converged regardless. |
|
integer |
4000 |
Used for the Trinity nonlinear convergence check (use_nonlin_convergence). The minimum number of time steps before convergence condition can trigger an exit. |
|
integer |
4000 |
Used for the Trinity nonlinear convergence check (use_nonlin_convergence). The number of timesteps the convergence condition averages over |
|
integer |
10000 |
Used for the Trinity nonlinear convergence check (use_nonlin_convergence). The number of steps where convergence is true before convergence is accepted |
|
real |
4e-1 |
Used for the Trinity nonlinear convergence check (use_nonlin_convergence). Multiplier for the cumulative average of the heat flux |
|
logical |
.false. |
Write out the field-line average of to WarningYou probably don't want this? WarningNon-functional in new diagnostics |
|
logical |
.false. |
Write out at WarningYou probably don't want this? WarningNon-functional in new diagnostics |
|
logical |
.false. |
Write out to WarningYou probably don't want this? Expensive. |
|
logical |
.false. |
Enable parallel IO in the .out.nc file. Currently disabled by default and doesn't activate feature when set to true as we hard code that parallel IO isn't supported for the .out.nc file. WarningOnly in new diagnostics |
|
logical |
.true. |
Exit when the run has reached convergence |
|
logical |
.true. |
Verify that the restart file(s) can be written before starting the run |
|
integer |
0 |
Index in to measure various diagnostics at. By default, this is the outboard midplane , but it may be useful to set this to a non-zero value for tearing parity modes. |
|
logical |
.false. |
Write out in real space over time, suitable for creating animations. Timestep period is controlled with nmovie WarningThis option can write a lot of data! Consider doing the Fourier transforms of the fields in post-processing instead. WarningIn new diagnostics, the timestep period is controlled with nwrite |
|
integer |
10 |
Number of timesteps to average over for time-averaged diagnostics WarningDefault value differs between old (100) and new (10) diagnostics |
|
integer |
10 |
Sets the number of output steps between syncing the netcdf file. Higher values may reduce disk overheads but increase the risk of data loss on unclean exit. |
|
integer |
10 |
FIXME: Timestep period of which to check velocity space resolution and correction by varying collisionality. But doesn't happen on timesteps when diagnostics are written. WarningOnly in new diagnostics WarningThis value "shadows" the |
|
integer |
-1 |
Timestep period to write real space fields WarningNon-functional in new diagnostics. Instead use nwrite WarningDefault value differs between old (1000) and new (-1) diagnostics |
|
integer |
-1 |
Timestep period for writing restart data if
save_for_restart is |
|
integer |
10 |
Timestep period for writing outputs WarningDefault value differs between old ( |
|
integer |
10 |
Timestep period multiplier for certain "large" diagnostics, which are
written every FIXME: What datasets? WarningControls different diagnostics in new diagnostics |
|
logical |
.false. |
If WarningNon-functional in new diagnostics WarningDefault value differs between old (.true.) and new (.false.) diagnostics |
|
real |
1.0e6 |
Threshold complex frequency () for detecting a numerical
instability. If averaged over
navg timesteps is greater than WarningDefault value differs between old (1.0) and new (1.0e6) diagnostics |
|
real |
1e-3 |
Frequency () convergence tolerance. Consider the simulation
converged and finish the run if has changed by less than
More explicitly, the convergence criterion is:
where is averaged over the last |
|
logical |
.false. |
Print the instantaneous fluxes to screen/stdout every nwrite timesteps |
|
logical |
.false. |
Print estimated frequencies and growth rates to screen/stdout every nwrite timesteps WarningDefault value differs between old ( |
|
logical |
.false. |
Write the distribution function to |
|
logical |
.false. |
Write restart files at the end of the simulation. If
nsave is positive, then also enable
checkpoints by writing restart files every |
|
logical |
.false. |
Save some layout and distribution information in restart files |
|
logical |
.false. |
If If If |
|
logical |
.false. |
Save parallel and perpendicular velocities in final restart and/or distribution function files |
|
logical |
.false. |
WarningNot used WarningOnly in new diagnostics |
|
logical |
.false. |
For nonlinear runs, stop the run when the averaged differential of the summed averaged heat flux drops below a threshold for a period of time, controlled by conv_test_multiplier, conv_nsteps_converged, gs2_diagnostics_knobs, conv_max_step, and conv_min_step. |
|
logical |
.true. |
If WarningOnly in new diagnostics WarningThis also turns off checking the linear convergence |
|
logical |
.false. |
Write the entire field every nwrite timesteps WarningNew diagnostics requires
write_fields to also be |
|
logical |
.true. |
Write diagnostics to text files. Generally this creates a different text file for each diagnostic. Note that this independent of whether or not netCDF files are used. FIXME: Verify old and new diagnostics write these files in same format |
|
logical |
.false. |
Write flux surface averaged low-order moments of every nwrite timesteps WarningPrints a warning that this is ignored unless
|
|
logical |
.false. |
Write the entire field every nwrite timesteps WarningNew diagnostics requires
write_fields to also be |
|
logical |
.false. |
Write the collision error every nwrite
timesteps to text file with suffix FIXME: What does this mean? WarningIn new diagnostics, only writes to ascii WarningThis is expensive |
|
logical |
.false. |
Write collisional heating (collisional and hyper viscous rate of loss of free energy for each mode) every nwrite timesteps WarningOnly in new diagnostics |
|
logical |
.true. |
Write two point parallel correlation function calculated from the electric potential as a function of and parallel separation every nwrite timesteps WarningDefault value differs between old ( |
|
logical |
.false. |
Write two point parallel correlation function calculated from the electric potential as a function of and parallel separation, time averaged and calculated along the extended domain every nwrite timesteps once istep > nstep/4. WarningThis diagnostic can have large persistent memory cost. |
|
logical |
.false. |
Write the cross phase between electron density and perpendicular electron temperature every nwrite timesteps. Calculated at both the outboard midplane, averaged across and ; and averaged across all space WarningIn old diagnostics, only written to text files |
|
logical |
.false. |
Write the whole non-adiabatic part of the density moment every nwrite timesteps WarningRequires write_moments to also be
WarningOnly in new diagnostics |
|
logical |
.false. |
Write normalised to the value of at the outboard midplane every nwrite timesteps. If write_ascii is enabled, the text file is
NoteThe normalising factor for a given point may not be exactly at the outboard midplane if this value is zero there. If the adjacent point in is also zero, then the fields will be unnormalised at that . WarningIf this option is turned on, the same normalising factor will also be used for the text output in write_final_moments WarningIn old diagnostics, this is only done on exit, not every
WarningThe text output is normalised (see note above), but the netCDF output is not |
|
logical |
.true. |
Enable writing every nwrite timesteps WarningIn old diagnostics, this only writes them on exit and
write_phi_over_time,
write_apar_over_time and
write_bpar_over_time instead control writing
the fields over time, respectively. In new diagnostics, this will disable
writing all three fields if set to WarningDefault value differs between old ( |
|
logical |
.false. |
Write the right-hand sides of the field equations at the final
timestep. If write_ascii is enabled, the file
suffix is |
|
logical |
.false. |
Write at the final timestep. If
write_ascii is enabled, the file suffix is
|
|
logical |
.false. |
Write at the final timestep. If
write_ascii is enabled, the file suffix is
|
|
logical |
.false. |
Write at the final timestep. If
write_ascii is enabled, the file suffix is
|
|
logical |
.false. |
Write various moments (densities, parallel and perpendicular
velocities and temperatures, and heat and momentum fluxes) at
the final timestep. If write_ascii
is enabled, the file suffix is WarningIf write_eigenfunc is enabled, then the same normalising factor is used for the final moments. Otherwise, the moments are unnormalised. WarningThe text output is normalised (see note above), but the netCDF output is not |
|
logical |
.false. |
Write instantaneous fluxes to output file every nwrite timesteps WarningOutput formats and quantities differ between old and new diagnostics |
|
logical |
.false. |
Write fluxes (heat, momentum and particle; total and per-species) every nwrite timesteps. If run is nonlinear, this defaults to true WarningIn old diagnostics, this also turns on |
|
logical |
.false. |
Write fluxes (heat, momentum and particle; total and per-species) as a function of Fourier mode every nwrite timesteps. If run is nonlinear, this defaults to true WarningIn old diagnostics, this is combined with |
|
logical |
.false. |
Write moments (density, parallel flow, and parallel and perpendicular temperatures) in non-guiding centre coordinates every nwrite timesteps |
|
logical |
.false. |
Write at WarningOnly to text files |
|
logical |
.false. |
FIXME: Add documentation WarningOnly outputs to text files |
|
logical |
.false. |
Write as a function of real space every
nmovie timesteps to text file
" WarningOnly to text files |
|
logical |
.false. |
Write out various heating, free energy and energy injection
diagnostics. Text file extension is |
|
logical |
.false. |
Write time averaged external current in the antenna,
, as a function of
. File suffix is WarningOnly in new diagnostics |
|
logical |
.false. |
Calculates and writes the electrostatic drive of zonal flows
every nwrite timesteps. The output
|
|
logical |
.false. |
Write the parallel spectrum of at final timestep. File suffix is WarningOutput only to text files |
|
logical |
.true. |
Print estimated frequencies and growth rates to text file every nwrite timesteps |
|
logical |
.false. |
Write FIXME: Define WarningOld diagnostics only writes to text files WarningNew diagnostics only writes to netCDF |
|
logical |
.false. |
Write the estimated maximum error from velocity space integrals for various quantities WarningOld diagnostics only outputs to text file |
|
logical |
.true. |
Write various moments (total and non-adiabatic part of perturbed species density, perturbed parallel flow, perturbed parallel and perpendicular temperatures, parallel heat flux, particule flux and heat flux) every nwrite timesteps WarningOnly outputs to netCDF files WarningNew diagnostics writes various averages of the moments. To get
the same output as old diagnostics, also set
write_ntot_over_time,
write_density_over_time,
write_upar_over_time,
write_tperp_over_time to WarningDefault value differs between old ( |
|
logical |
.false. |
Write the poloidal distributions of the fluxes of particles, parallel momentum, perpendicular momentum, and energy every nwrite timesteps. See section 3.1 and appendix A of Ball et al. PPCF 58 (2016) 045023 as well as section 5 of "GS2 analytic geometry specification" |
|
logical |
.false. |
Write the whole total density moment every nwrite timesteps WarningRequires write_moments to also be
WarningOnly in new diagnostics |
|
logical |
.true. |
Write time-averaged growth rate and frequency to the output text file every nwrite timesteps. Time average is rolling window over the previous navg timesteps WarningNon-functional in new diagnostics, time-average is also written with write_omega instead |
|
logical |
.true. |
Write instantaneous growth rate and frequency every nwrite timesteps WarningOld diagnostics only writes to output text file WarningNew diagnostics only writes to netCDF file WarningNew diagnostics also writes time-average with this option. Output is the complex frequency, rather than separate growth rate and real frequency |
|
logical |
.false. |
Write parities in distribution and particle fluxes to text file with the
suffix FIXME: Clarify what this means |
|
logical |
.false. |
Write the entire field every nwrite timesteps WarningNew diagnostics requires
write_fields to also be |
|
logical |
.true. |
Write a simple quasi-linear metric to netcdf. |
|
logical |
.false. |
Write the particle and momentum flux as a function of and velocity space. See gs2_diagnostics_knobs and gs2_diagnostics_knobs WarningOnly outputs to netCDF WarningOld diagnostics does not write the particle flux, use gs2_diagnostics_knobs instead |
|
logical |
.false. |
Write the whole perturbed perpendicular temperature moment every nwrite timesteps WarningRequires write_moments to also be
WarningOnly in new diagnostics |
|
logical |
.false. |
Write the whole perturbed parallel velocity moment every nwrite timesteps WarningRequires write_moments to also be
WarningOnly in new diagnostics |
|
logical |
.false. |
Write estimates of error resulting from velocity space integrals in the calculation of various quantities every nwrite timesteps. WarningOutput only to text file WarningNew diagnostics also writes to netCDF every ncheck timesteps, along with some other quantities such as collisionality WarningThis is expensive |
|
logical |
.false. |
Write the transfer of free energy, , as a function of , averaged over , every nwrite timesteps WarningOnly in new diagnostics |
Used to represent the input configuration of hyper
Name | Type | Default | Description |
---|---|---|---|
logical |
.false. |
Determines whether hyperviscosity includes time dependent amplitude
factor when calculating damping rate. Recommend |
|
real |
-10.0 |
If |
|
real |
-10. |
Used with the simple3D hyperviscosity model of the form D_hyper3D * (|kperp|/ max |kperp|)^P_hyper3D and ky_cut, kx_cut set max |kperp| |
|
real |
-10.0 |
Sets hyperresistivity parameter multiplying damping term. |
|
real |
-10.0 |
Sets hyperviscosity parameter multiplying damping term. See E. Belli (2006) thesis for more information. |
|
logical |
.false. |
If |
|
logical |
.true. |
If |
|
character(len = 9) |
'default' |
Selects the type of hyper terms included. Should be one of
|
|
logical |
.false. |
Not used. TodoRemove this variable. |
|
logical |
.true. |
if true damp zonal and drift waves with same dissipation formula |
|
logical |
.true. |
If |
|
real |
-10. |
Used with the simple3D hyperviscosity model of the form D_hyper3D * (|kperp|/ max |kperp|)^P_hyper3D and ky_cut, kx_cut set max |kperp| |
|
real |
-10. |
Used with the simple3D hyperviscosity model of the form D_hyper3D * (|kperp|/ max |kperp|)^P_hyper3D and ky_cut, kx_cut set max |kperp| |
|
integer |
2 |
Sets the power to which is raised in the dissipation filter. |
|
real |
0.4 |
Sets a parameter in the anisotropic shearing rate calculation. |
|
real |
4. |
Used with the simple3D hyperviscosity model of the form D_hyper3D * (|kperp|/ max |kperp|)^P_hyper3D and ky_cut, kx_cut set max |kperp| |
Used to represent the input configuration of ingen
Name | Type | Default | Description |
---|---|---|---|
integer |
100000 |
This sets the minimum number of local elements for which
processor recommendations will be given. In other words, if
the total number of elements is |
|
integer |
100000 |
Sets the maximum processor count considered when calculating sweetspots. |
|
logical |
.false. |
If |
|
logical |
.true. |
If |
Used to represent the input configuration of init_g
Name | Type | Default | Description |
---|---|---|---|
real |
0.0 |
Amplitude of equilibrium |
|
integer |
0 |
Used by ginit_option FIXME: What input parameter, what conditions? |
|
real |
0.0 |
Used by ginit_option |
|
complex, dimension(3) |
cmplx(0.0,0.0) |
Used in initialization for the Orszag-Tang 2D vortex problem
(ginit_option |
|
real |
0.0 |
Amplitude of equilibrium |
|
logical |
.true. |
Rarely needed. Forces asymmetry into initial condition. Warning: This does not behave as one may expect in flux tube simulations (see clean_init), this can be important as the default is to use chop_side |
|
logical |
.true. |
Used with ginit_option |
|
logical |
.false. |
Use the constant_random number generator, which always gives the same random numbers. Useful for testing. |
|
real |
1.0 |
Amplitude of zeroth density perturbation for ginit_option options:
|
|
real |
0.0 |
Amplitude of first density perturbation for ginit_option options:
|
|
real |
0.0 |
Amplitude of second density perturbation for ginit_option options:
|
|
real |
1.0 |
Amplitude of for |
|
integer |
0 |
Mode number in for the sinusoidal equilbrium option of
ginit_option |
|
integer |
1 |
Mode number in for the sinusoidal equilbrium option of
ginit_option |
|
character(len = 20) |
'sinusoidal' |
Equilbrium choice for ginit_option
|
|
logical |
.true. |
Sometimes initial conditions have definite parity; this picks the parity in those cases. Affects the following choices of ginit_option:
|
|
character(len = 20) |
"default" |
Method for initialising
All the options are detailed further in the initialisation options documentation |
|
integer, dimension(2) |
[1, 2] |
indices of two modes to initialise for certain options |
|
integer, dimension(3) |
[1, 2, 2] |
indices of three modes to initialise for certain options |
|
integer |
0 |
Parallel mode number to initialise for ginit_option
|
|
integer |
-1 |
If greater than zero, initialise only the given with
ginit_option |
|
real |
0.0 |
Amplitude of imaginary part of for various ginit_option options |
|
logical |
.true. |
Do we want to include the explicit source terms and related timesteps when saving/restoring from the restart file. |
|
real |
0.0 |
Initial spectrum power index. with
ginit_option |
|
logical |
.false. |
If true then the initial condition is used to set the non-adiabatic
distribution function rather than the |
|
logical |
.false. |
Print some debug information for ginit_option |
|
integer, dimension(2) |
[1, 2] |
indices of two modes to initialise for certain options |
|
integer, dimension(3) |
[1, 2, 2] |
indices of three modes to initialise for certain options |
|
real |
0.0 |
Parallel mode number to initialise for ginit_option
|
|
logical |
.true. |
If chop_side is true, chop out left side in theta if true, right side if false. Applies to: FIXME: list of initial conditions |
|
integer |
128 |
The maximum mode number to initialise for ginit_option
|
|
logical |
.true. |
Change fields implicit initialisation somehow FIXME: Add documentation |
|
logical |
.false. |
"Nullify fields". Used by ginit_option FIXME: Add documentation |
|
logical |
.false. |
"Nullify fields". Used by ginit_option FIXME: Add documentation |
|
logical |
.false. |
"Nullify fields". Used by ginit_option FIXME: Add documentation |
|
complex, dimension(3) |
cmplx(0.0,0.0) |
Used in initialization for the Orszag-Tang 2D vortex problem. FIXME: expand |
|
real |
0.1 |
If doing multiple flux tube calculations, multiply
phiinit by |
|
real |
1.0 |
Average amplitude of initial perturbation of each Fourier mode. Used by most ginit_option options |
|
real |
0.0 |
Amplitude of equilibrium. Used by ginit_option |
|
real |
0.0 |
Amplitude of random perturbation. Used by ginit_option |
|
integer |
0 |
Which processor is responsible for saving/reading potentials to/from restart files. If <0 then all procs write to restart files. If >= nproc then set to proc_to_save_fields = mod(proc_to_save_fields, nproc) |
|
real |
-0.1 |
Width of "porcelli", "doubleharris" profiles in
ginit_option |
|
logical |
.false. |
Restart from many restart files. If false, use a single restart file: this requires GS2 to have been built with parallel netCDF. |
|
real |
1.0 |
Amplitude of real part of for various ginit_option options |
|
character(len = 150) |
"./" |
Directory to read/write restart files to/from. Make sure this exists before running (see file_safety_check) |
|
integer |
0 |
Used to select with eigensolver generated restart file to load. Sets
|
|
character(len = run_name_size) |
"restart_file_not_set.nc" |
Basename of restart files Notegets a smart default |
|
real |
1.0 |
Rescale amplitudes of fields for restart ginit_option
options such as |
|
real |
0.0 |
Amplitude of zeroth parallel temperature perturbation for ginit_option options:
|
|
real |
0.0 |
Amplitude of first parallel temperature perturbation for ginit_option options:
|
|
real |
0.0 |
Amplitude of second parallel temperature perturbation for ginit_option options:
|
|
real |
0.0 |
Amplitude of zeroth perpendicular temperature perturbation for ginit_option options:
|
|
real |
0.0 |
Amplitude of first perpendicular temperature perturbation for ginit_option options:
|
|
real |
0.0 |
Amplitude of second perpendicular temperature perturbation for ginit_option options:
|
|
real |
0.0 |
Force |
|
complex, dimension(3) |
cmplx(0.,0.) |
Perturbation amplitude of parallel velocity? Used by
ginit_option FIXME: Add documentation |
|
real |
0.0 |
Amplitude of zeroth parallel velocity perturbation for ginit_option options:
|
|
real |
0.0 |
Amplitude of first parallel velocity perturbation for ginit_option options:
|
|
real |
0.0 |
Amplitude of second parallel velocity perturbation for ginit_option options:
|
|
real |
-3.5 |
Width of initial perturbation Gaussian envelope in |
|
real |
1.0 |
Amplitude of initial zonal flow perturbations relative to other modes |
Used to represent the input configuration of run_parameters through "knobs"
Name | Type | Default | Description |
---|---|---|---|
real |
1.0e10 |
The maximum wall clock time available to GS2 |
|
real |
0.0 |
is the ratio of the reference pressure to the reference magnetic energy density, . |
|
real |
0.1 |
Initial timestep |
|
character(len = 20) |
'default' |
Determines how initial timestep is set. Possible options are:
If "check_restart" is used but the restart files aren't present for any reason (for instance, the current run is not a restart), GS2 will error when trying to read the timesteps. You can run the ingen tool on your input file to check this issue before running your job |
|
logical |
.false. |
If true then use eigensolver instead of initial value solver. |
|
character(len = 20) |
'none' |
Advanced option to freeze evolution of certain modes. Possible values are:
Only used in dist_fn, should be moved to dist_fn_knobs. |
|
real |
0.0 |
Multiplies throughout. |
|
real |
-1.0 |
Multiplies throughout. |
|
real |
1.0 |
Multiplies throughout. |
|
logical |
.true. |
Determines the behaviour when the CFL condition is broken in the nonlinear term: |
|
real |
1.0 |
Used in ginit_option "harris" and "convect". Should be moved to init_g namelist. |
|
real |
300.0 |
How close to avail_cpu_time can we go before trying to stop the run cleanly |
|
real |
1.0e6 |
The simulation time after which the run should stop. |
|
integer |
5 |
Sets the time step interval at which check for the existence
of the |
|
integer |
100 |
Maximum number of steps to take |
|
integer |
0 |
How frequently, in integer steps, do we display a progress message. If <= 0 then no progress messages are displayed |
|
real |
3.0e-3 |
Normalised gyro-radius, only used for low flow builds |
|
logical |
.false. |
If true then save init timer information to
|
|
logical |
.true. |
If true then save some extra timer information to
|
|
integer |
0 |
Used to set the random seed used in the random number generators provided by ran. If this input is 0 (the default) then we don't set the seed and use the system default instead. |
|
real |
1.0 |
Only used when there is an adiabatic species. Sets |
|
logical |
.false. |
If true use original diagnostics rather than new form |
|
character(len = 65000) |
'' |
Custom description of run to be added to netcdf output (new diagnostics only) |
|
logical |
.false. |
If true makes timestep proportional to ky*rho. Only sensible for linear runs. |
|
real |
1.0 |
Effective ionic charge appearing in electron collision frequency |
Used to represent the input configuration of kt_grids_box
Name | Type | Default | Description |
---|---|---|---|
integer |
1 |
For finite magnetic shear determines the box size in the x
direction according to . This also affects the number
of connections at each This gets a smart default Initialised to |
|
real |
0.0 |
Sets the box size in the y direction. If set to 0 (the default) then
we set |
|
integer |
0 |
If set greater than zero (the default) then this sets the
toroidal mode number of the first non-zero |
|
integer |
0 |
The actual number of ky modes. For nonlinear runs it is
generally recommended to use |
|
integer |
0 |
The actual number of theta0 modes. For nonlinear runs it is
generally recommended to use |
|
integer |
0 |
The number of kx points in inputs to the fft routines, and
hence the number of radial points used in real space
calculations. This differs from the actual number of kx points
simulated in the rest of the code due to the need to prevent
aliasing. The number of kx modes actually simulated
( |
|
integer |
0 |
The number of ky points in inputs to the fft routines, and
hence the number of binormal points used in real space
calculations. This differs from the actual number of ky points
simulated in the rest of the code due to the need to prevent
aliasing. The number of ky modes actually simulated
( |
|
real |
0.0 |
The rhostar ( |
|
real |
0.0 |
Expert usage only -- more documentation required. Used to control the kx spacing in simulations with effectively
zero shear () where linked boundaries are not
appropriate so periodic boundaries are used. Also only used if
|
|
real |
0. |
Controls the box length in the x direction (measured in the reference Larmour radius) if the magnetic shear is small (). The box size in the x direction is given by . See rtwist for an alternative. |
|
real |
2.0 |
Controls the box length in the y direction (measured in the
reference Larmour radius). The box size in the y direction is
given by . Note if |
Used to represent the input configuration of kt_grids
Name | Type | Default | Description |
---|---|---|---|
character(len = 20) |
"default" |
Controls the type of perpendicular wavenumber grid to use. Can be one of
|
Used to represent the input configuration of kt_grids_range
Name | Type | Default | Description |
---|---|---|---|
real |
0.0 |
Max kx for periodic finite kx ballooning space runs with . |
|
real |
0.0 |
Min kx for periodic finite kx ballooning space runs with . |
|
real |
0.0 |
Upper limit of range. Should set to something other than zero. |
|
real |
0.0 |
Lower limit of range. Should typically set to something other than zero. |
|
character(len = 20) |
'default' |
Sets the type of spacing between ky grid points, available options are :
|
|
integer |
0 |
Maximum toroidal mode number. Can use instead of |
|
integer |
0 |
Minimum toroidal mode number. Can use instead of |
|
integer |
1 |
The number of 'actual' ky modes. |
|
integer |
1 |
Number of toroidal modes, only used if |
|
integer |
1 |
Number of (kx) modes |
|
real |
1.0e-4 |
Used to convert |
|
real |
0.0 |
Upper limit of |
|
real |
0.0 |
Lower limit of |
Used to represent the input configuration of kt_grids_single
Name | Type | Default | Description |
---|---|---|---|
real |
default_unset_value |
for the reference species (but recommended to set |
|
real |
0.4 |
for the reference species. |
|
integer |
0 |
if |
|
real |
1.0e-4 |
Used in conjunction with |
|
real |
0.0 |
is the ballooning angle, sets the point in where the radial wavenumber is zero |
Used to represent the input configuration of a specific specified wavenumber pair
Name | Type | Default | Description |
---|---|---|---|
real |
0.0 |
Sets the value for this wavenumber element (but should set |
|
real |
0.4 |
Sets the value for this wavenumber element. |
|
real |
0.0 |
Sets the value for this wavenumber element. |
Used to represent the input configuration of kt_grids_specified
Name | Type | Default | Description |
---|---|---|---|
integer |
1 |
The number of |
|
integer |
1 |
The number of |
|
integer |
0 |
Mostly ignored. Does not set the number of modes used. TodoConsider removing |
|
integer |
0 |
Mostly ignored. Does not set the number of modes used. TodoConsider removing |
Used to represent the input configuration of layouts
Name | Type | Default | Description |
---|---|---|---|
logical |
.false. |
If false then fftw will use heuristics to determine the best fft plan. If true then timing measurements will be made to determine an optimal plan. When true it can take somewhat longer to initialise the fft plans. WarningIf true then results will not be exactly reproducible as the choice of the optimal plan can vary from run to run when timing different approaches. This is the main reason why the default is false here. |
|
logical |
.true. |
Try to load and save wisdom about fftw plans to
|
|
character(len = run_name_size) |
'default' |
Location of fftw wisdom file, if left as default, this is set to
run_name//'.fftw_wisdom', unless overriden by the environment
variable |
|
logical |
.false. |
If true then perform initial decomposition setup related to
the |
|
logical |
.false. |
When set to true use sub-communicators in the velocity space
integration routines associated with taking moments of the
distribution function. The sub-communicator involves all
processors with a given NoteThese sub-communicators affect calls to
integrate_moment with complex variables. By default there
is no gather of data from other procs so the integration
result may only be known for the local |
|
logical |
.false. |
When set to true use sub-communicators in the velocity space
integration routines associated with taking species summed
moments of the distribution function. The sub-communicator
involves all processors with a given |
|
character(len = 5) |
'lxyes' |
This string determines how the distributed dimensions (k) Valid options are:
The optimal choice depends on the type of simulation being
run. It is typically expensive to parallelise TodoConsider changing the default to either |
|
logical |
.false. |
Can strongly affect initialization time on some parallel computers. Recommendation: Set true on computers with slow communication networks. It's probably worth trying changing this on your favourite machine to see how much difference it makes for you. NoteThis only impacts simulations with a Todoinvestigate if this setting is still helpful on current machines and if we can determine heuristics for when to enable it. |
|
real |
0.0 |
Sets maximum allowable fractional imbalance between the two
different blocksizes used in the |
|
real |
0.0 |
Sets maximum allowable fractional imbalance between the two
different blocksizes used in the |
|
integer |
0 |
The number of processors to use in e_lo layout. Capped to number of processors in comm world. If not set (<=0) defaults to global nproc. |
|
integer |
0 |
The number of processors to use in g_lo layout. Capped to number of processors in comm world. If not set (<=0) defaults to global nproc. |
|
integer |
0 |
The number of processors to use in le_lo layout. Capped to number of processors in comm world. If not set (<=0) defaults to global nproc. |
|
integer |
0 |
The number of processors to use in lz_lo layout. Capped to number of processors in comm world. If not set (<=0) defaults to global nproc. |
|
integer |
0 |
The number of processors to use in xxf_lo layout. Capped to number of processors in comm world. If not set (<=0) defaults to global nproc. |
|
integer |
0 |
The number of processors to use in yxf_lo layout. Capped to number of processors in comm world. If not set (<=0) defaults to global nproc. |
|
logical |
.false. |
Setting to true enables optimising redistribute code, used in FFTs for evaluating nonlinear terms, that avoids indirect addressing. This can introduces worthwhile savings in nonlinear GS2 simulations at lower core counts. See Adrian Jackson's DCSE report for more details. |
|
logical |
.true. |
Set to true to use non-blocking communications in the redistribute routines. This is generally more performant but has been observed to be slower in one or two rare cases. |
|
logical |
.false. |
Set to true to use persistent (non-blocking) communications in
the redistribute routines. Requires |
|
logical |
.false. |
Set to true to try to overlap the mpi and local parts of the
gather/scatter routines. Should only be used with
|
|
logical |
.true. |
When in |
|
logical |
.false. |
Setting to true allows GS2 to adopt a more flexible domain
decomposition of the xxf data decomposition (used in nonlinear
FFTs). By default GS2 allocates each MPI task with the same
uniform blocksize in Note ingen can provide data on the imbalance and communication required. See Adrian Jackson's DCSE report for more details. |
|
logical |
.false. |
Setting to true allows GS2 to adopt a more flexible domain
decomposition of the yxf data decomposition (used in nonlinear
FFTs). By default GS2 allocates each MPI task with the same
uniform blocksize in yxf_lo, one task may have a smaller block
of data, and other tasks may be empty. There is no attempt to
keep both x and y as local as possible, and sometimes large
MPI data transfers are required to map from xxf to yxf and
vice-versa during FFTs. With Note ingen can provide data on the imbalance and communication required. See Adrian Jackson's DCSE report for more details. |
Used to represent the input configuration of le_grids
Name | Type | Default | Description |
---|---|---|---|
real |
10*epsilon(0.0) |
Acts as a small tolerance in deciding if a particular pitch
angle is forbidden at a particular theta grid point. Rather
than considering particles to be forbidden if |
|
logical |
.false. |
If true use generalised quadrature scheme for velocity integrals and energy grid. See G. Wilkie thesis. |
|
integer |
-10 |
Sets the number of energy grid points to use. If specified
then overrides values of |
|
integer |
8 |
Sets the number of energy grid points below the cutoff. |
|
integer |
2 |
Sets the number of energy grid points above the cutoff. |
|
logical |
.false. |
If |
|
logical |
.false. |
If |
|
integer |
5 |
The number of untrapped pitch-angles moving in one direction
along field line is |
|
integer |
500 |
Influences the minimum number of grid points in an integration subinterval used in calculating the integration grid weights. When using high ntheta with new_trap_int active it is possible that numerical instability can arise. Dropping nmax < ntheta can sometimes help in such situations. |
|
integer |
-1 |
The number of untrapped pitch-angles moving in one direction along field line. |
|
logical |
.true. |
The default lambda grid is now gauss-radau, for passing particles up to and including the passing-trapped boundary (wfb). The grid gives finite weight to the class of particles which bounce at theta = +/- pi (wfb) in the passing integral Note that the old gauss-legendre is used in the case that trapped_particles =.false. NoteIn reference to above comment - code doesn't seem to change radau_gauss_grid when trapped_particles is false, should it? |
|
logical |
.false. |
If true then we split the passing region into two separate regions for the purpose of choosing the integration weights. The split point is determined automatically by an attempt to minimise the passing weights error. |
|
logical |
.false. |
If |
|
logical |
.true. |
If set to |
|
real |
2.5 |
No. of standard deviations from the standard Maxwellian beyond which the distribution function will be set to 0. |
|
character(len = 20) |
'default' |
Set boundary condition for WFB in the linear/parallel solve:
|
|
real |
10.0 |
Influences the maximum integration weight allowed. |
Used to represent the input configuration of nonlinear_terms
Name | Type | Default | Description |
---|---|---|---|
real |
0.95 |
Scales the estimate CFL limit used to determine when the
timestep should be changed. The maximum allowed timestep
satisfies |
|
real |
0.1 |
Set the error threshold used to determine when the timestep should change if use_order_based_error is true. |
|
logical |
.true. |
Flag for testing. If false do not include apar contribution to nonlinear term. |
|
logical |
.true. |
Flag for testing. If false do not include bpar contribution to nonlinear term. |
|
logical |
.true. |
Flag for testing. If false do not include phi contribution to nonlinear term. |
|
integer |
30 |
Set the first timestep for which the order based error checks are made if use_order_based_error is true. |
|
logical |
.true. |
If |
|
character(len = 20) |
'default' |
Determines if the nonlinear terms should be calculated. Must be one of:
Could consider changing this to a logical. |
|
logical |
.false. |
Do we evolve the nonlinear term separately from the linear terms (true) or include the nonlinear term as a source in the standard algorithm (false). |
|
logical |
.true. |
If true then sum x and y cfl limiting velocities instead of taking the maximum. |
|
logical |
.true. |
If true then use the cfl limit to set the maximum timestep allowed. |
|
logical |
.false. |
If true then use an error estimate from comparing the nonlinear source calculated using 2nd and 3rd order Adams-Bashforth schemes to control the timestep in use. This does not disable the CFL estimate. |
|
logical |
.false. |
Not currently used, should consider removing. Original
documentation was "Experts only (for secondary/tertiary
calculations)." which suggests a close relation to the
|
Used to represent the input configuration of normalisations. These values are not used for anything but will be written to the output file to aid post processing etc.
Name | Type | Default | Description |
---|---|---|---|
real |
default_value |
Reference length in |
|
real |
default_value |
Reference magnetic field in |
|
real |
default_value |
Reference mass in atomic mass units |
|
real |
default_value |
Reference density in |
|
real |
default_value |
Reference Larmor radius in |
|
real |
default_value |
Reference temperature in |
|
real |
default_value |
Reference (thermal) velocity in |
|
real |
default_value |
Reference charge in units of the elementary charge |
Used to represent the input configuration for GS2's optimisation
procedure. When turned on, GS2 performs a scan for the given input file,
varying different optimisation flags. Results of this scan are reported
in
Name | Type | Default | Description |
---|---|---|---|
logical |
.true. |
When true, automatically continues GS2 to run the input file with the optimised parameters. |
|
logical |
.true. |
Estimate the absolute and relative errors in timing data FIXME: Why would we want this to be false? On small core counts it doesn't seem like a big overhead. |
|
real |
-1.0 |
The maximum fraction of unused procs to allow in the optimisation scan. |
|
integer |
0 |
The maximum number of unused procs to allow in the optimisation scan. |
|
logical |
.false. |
When true, use the "advance" timer. When false, use the "timestep" timer. |
|
real |
-1.0 |
The minimum efficiency (relative to the optimal parameters) considered when looking for a constrained set of parameters. A negative value implies only the optimal parameters are considered. |
|
integer |
5 |
The number of timestep to use in the timing experiments. Must be greater than 1 |
|
logical |
.false. |
Set true to turn on optimisation procedure |
|
logical |
.false. |
When true, perform a few runs before beginning the timing experiment |
Used to represent the input configuration of parameter_scan
Name | Type | Default | Description |
---|---|---|---|
real |
0.0 |
When the increment condition is |
|
real |
0.0 |
When the increment condition is |
|
character(len = 20) |
'delta_t' |
Specifies the condition for incrementing the parameter. Possible values are:
|
|
integer |
0 |
When the increment condition is |
|
integer |
0 |
When the increment condition is 'n_timesteps' or 'saturated', the parameter will not be changed until nstep_init have elapsed from the beginning of the simulation. Note that if the simulation is restarted, this parameter will measure from the restart. |
|
real |
0.0 |
If the scan is being run in 'range' mode, specifies the value of the parameter that will be reached. |
|
real |
0.0 |
If the parameter scan is being run in 'range' or 'target' modes, specifies the amount by which the parameter is varied at one go. |
|
real |
0.0 |
Specifies the starting value for the parameter scan. |
|
character(len = 20) |
'tprim' |
Specify the parameter to be varied. If the parameter pertains to a species, the scan_spec must be specified as well. |
|
logical |
.false. |
Specify the parameter to be varied. If the parameter pertains to a species, the scan_spec must be specified as well. |
|
integer |
1 |
When parameter pertains to a species, specifies the index of the species. |
|
character(len = 20) |
'none' |
Specifies the way that the parameter scan is conducted. Possible values are:
|
|
character(len = 20) |
'hflux_tot' |
If the scan is being run in 'target' or 'root_finding' mode, specifies the target parameter. Possible values are:
|
|
real |
0.0 |
Used to represent the input configuration of reinit
Name | Type | Default | Description |
---|---|---|---|
logical |
.true. |
If |
|
real |
2.0 |
When the time step needs to be changed it is adjusted by this
factor, i.e |
|
real |
1.5 |
Used in deciding when to increase the time step to help
prevent oscillations in time step around some value. We only
increase the time step when it is less than the scaled cfl
estimate divided by |
|
real |
1.e-5 |
The minimum time step allowed is delt_minimum. If the code wants to drop below this value then the run will end. |
|
real |
0.0 |
Sets the maximum value the time step can take. NoteThis gets a smart default of delt. |
|
logical |
.false. |
If |
Used to represent the input configuration of source
Name | Type | Default | Description |
---|---|---|---|
real |
0.0 |
Growth rate of non-standard source used with |
|
real |
0.0 |
Frequency of non-standard source used with |
|
real |
0.0 |
Amplitude of external phi added as source term with
|
|
real |
1.0 |
Amplitude of non-standard source used with |
|
character(len = 20) |
'default' |
Controls the source term used in the time advance. Should be one of:
|
|
real |
100.0 |
Turn on any artificial sources after time = t0. Only used with
|
Used to represent the input configuration of species
Name | Type | Default | Description |
---|---|---|---|
real |
-1.0 |
Specifies the electron mass used in calculating the slowing down parameters in simulations without kinetic electrons. |
|
integer |
2 |
Number of kinetic species to evolve. |
|
real |
-1.0 |
Specify the ion charge factor used in calculating the slowing down parameters. If not specified that will attempt to calculate from the kinetic ion species. |
Used to represent the input configuration of species
Name | Type | Default | Description |
---|---|---|---|
real |
1.0 |
Multiplies the argument of the Bessel function for this species. Useful for exploring the effect of the Bessel functions. |
|
real |
1.0 |
Set the normalised density for this species |
|
real |
1.0 |
Parameter used for a few specific initial condition types. TodoConsider moving this parameter to init_g_knobs. |
|
character(len = 20) |
"default" |
Select which type of background distribution should be assumed for this species. Must be one of:
See G. Wilkie thesis. |
|
real |
2.2 |
Normalised inverse density gradient: (Note here is the normalised radius . |
|
real |
1.0 |
Normalised mass of this species |
|
real |
0.0 |
Set the species hyper collision frequency used in the pitch
angle scattering collision operator if
[[collision_knobs::hypermult]] is |
|
real |
1.0 |
Set the normalised species temperature |
|
real |
0. |
Parameter used for a few specific initial condition types. TodoConsider moving this parameter to init_g_knobs. |
|
real |
0. |
Parameter used for a few specific initial condition types. TodoConsider moving this parameter to init_g_knobs. |
|
real |
6.9 |
Normalised inverse temperature gradient: (Note here is the normalised radius . |
|
character(len = 20) |
"default" |
Sets the characterisation of the species. Should be one of
This primarily controls the treatment in the collision operator, the detection of adiabatic species. Tracer species do not contribute to velocity space integrals. |
|
real |
1.0 |
Parameter used for a few specific initial condition types. TodoConsider moving this parameter to init_g_knobs. |
|
real |
0.0 |
Controls an energy independent part of a source term. NoteDocumentation needs improving, looks like it's an early attempt at adding in the parallel flow shear drive term. This effectively provides a constant offset to the parallel flow shear term, allowing one to add a species dependent shift. |
|
real |
0.0 |
Controls an energy dependent part of a source term. NoteDocumentation needs improving, looks like it's an early attempt at adding in the parallel flow shear drive term. This effectively provides a energy dependent offset to the parallel flow shear term, allowing one to add a species and energy dependent shift. |
|
real |
-999.9 |
Part of the |
|
real |
-1.0 |
Part of the |
|
real |
0.0 |
Sets the normalised species-species collisionality
frequency. For species s, |
|
real |
1.0 |
Normalised species charge |
Used to represent the input configuration of split_nonlinear_terms
Name | Type | Default | Description |
---|---|---|---|
real |
1.0e-3 |
The absolute tolerance used in error controlled schemes. Attempt to adjust time step to keep error below this tolerance. |
|
logical |
.false. |
If true then nonlinear integrator advances the nonadiabatic dfn, h, rather than the modified distribution function, g. |
|
real |
1.0e-1 |
The tolerance used in convergence checks. Currently only used for halting the fixed-point iteration in the beuler method |
|
real |
1.0e-2 |
The relative tolerance used in error controlled schemes. Attempt to adjust time step to keep error below this tolerance. |
|
character(len = 20) |
'default' |
Choose which specific RK scheme to use in the RK method. Generally if the tolerances are small a higher order scheme will be more effective than low order. At loose tolerances low order schemes are generally more efficient Valid options include:
See rk_schemes for other options. |
|
logical |
.false. |
If true then reports the number of right hand side (NL term) calculations, the number of failed internal steps and the number of successful steps at the end of each linear size step. |
|
character(len = 20) |
'default' |
What algorithm do we use to advance the nonlinear term if split_nonlinear is true. Valid options include:
|
|
logical |
.false. |
If true then indicates that we want to use a strang split approach where we advance the NL operator by a half step, linear by a full step and then NL by another half step. This should be second order accurate whilst the regular split is only first order accurate. |
|
real |
0.9 |
Multiplies the new time step calculated from either the error or cfl limits. Smaller values are more conservative but may help avoid repeated violation of the error/cfl limits and hence reduce the number of failed steps. |
Used to represent the input configuration of stir. See the documentation of the antenna module for more details.
Name | Type | Default | Description |
---|---|---|---|
real |
-1.0 |
Initial amplitude of right-moving component. It is not necessary to set a and b unless you are doing restarts, which are rather clunky at the moment with the antenna included. |
|
real |
-1.0 |
Initial amplitude of left-moving component. It is not necessary to set a and b unless you are doing restarts, which are rather clunky at the moment with the antenna included. |
|
integer |
1 |
Mode number for stirring. |
|
integer |
1 |
Mode number for stirring. |
|
integer |
1 |
Mode number for stirring. |
|
logical |
.true. |
Launches traveling wave if |
Used to represent the input configuration of theta_grid
Name | Type | Default | Description |
---|---|---|---|
real |
0.0 |
Used in calculation of NoteThis gets a "smart" default. |
|
real |
0.0 |
The gradient of the pressure. Strictly speaking this parameter
is not but : in other words,
the gradient of the magnetic field is ignored. Used only if
NoteThis gets a "smart" default. |
|
integer |
5 |
Use Bishop relations to generate metric coefficients.
|
|
logical |
.false. |
Use equilbrium data from the CHEASE file ogyropsi.dat |
|
real |
1e-3 |
Step size for radial derivatives, . Should be "small enough", typically 0.001. |
|
logical |
.false. |
Vacuum magnetic dipole geometry |
|
real |
1.0 |
Used to scale the pressure gradient, only if bishop = 7 or 8. |
|
logical |
.false. |
Use EFIT equilibrium (EFIT, codes with eqdsk format) |
|
character(len = eqfile_length) |
"default_unset_value" |
Name of file with numerical equilibrium data (if required) |
|
character(len = eqfile_length) |
"default_unset_value" |
Name of file with numerical equilibrium normalization data (if required) currently, only used for dipole equilibrium (deq) |
|
logical |
.true. |
Change field-line coordinate. Recommended value: F NoteWe recommend |
|
logical |
.false. |
If true then forces up-down symmetry in some geometrical quantities |
|
logical |
.false. |
Use Toq-style NetCDF equilibrium (TOQ) |
|
logical |
.false. |
Read Colin Roach's GS2D equilibrium file |
|
logical |
.false. |
Unknown equilibrium file. You probably don't want this. FIXME: Add documentation |
|
integer |
-1 |
Deprecated -- redundant information. |
|
real |
0. |
Used with bishop == 3: controls pressure length scale by multiplying |
|
integer |
2 |
Choose definition of flux surface coordinate
NB For consistency fprim, tprim, shat, uprim, g_exb etc must be computed using same radial variable, i.e. depend on choice of irho! |
|
integer |
-1 |
Deprecated, see force_sym instead |
|
integer |
-1 |
Deprecated, see use_large_aspect instead |
|
logical |
.true. |
If |
|
integer |
-1 |
The number of theta grid points to use in eikcoefs calls. Currently may not have an effect for all equilibrium types. If not set then defaults to ntheta |
|
logical |
.false. |
Use Menard-style NetCDF equilibrium (JSOLVER) |
|
real |
0.0 |
Used to overrides s_hat prescribed by the numerical equilibrium, but only if bishop=2,3,4,5,8, or 9. NoteThis gets a "smart" default. |
|
logical |
.false. |
Use PPL NetCDF equilibrium (psipqgrz equilibrium from TRANSP/TRXPL) |
|
logical |
.false. |
If true use large aspect ratio expansions in eik geometry to get ~s-alpha |
|
logical |
.false. |
Write a little extra about geometry to the screen. |
Used to represent the input configuration of theta_grid
Name | Type | Default | Description |
---|---|---|---|
character(len = run_name_size) |
"grid.out" |
Name of file with output from rungridgen. |
|
logical |
.false. |
If false, read |
Used to represent the input configuration of theta_grid_gridgen
Name | Type | Default | Description |
---|---|---|---|
real |
0.0 |
Relative weighting of pitch-angle metric to metric |
|
real |
1.e-8 |
Consider when the right grid point is equal to the target bmag. FIXME: What does this mean? |
|
real |
0.0 |
Parameter for weighted resolution in theta. Each theta grid point contributes to the resolution metric according to the function which has peaks at theta = +/- thetamax and deltaw controls the relative weighting of the theta dependent contribution. |
|
real |
1e-5 |
Maximum difference between neighbouring points for determining if a point is an extremum. |
|
real |
0.0 |
Used to set a "bonus" contribtion to resolution at B extrema with an even number of theta grid points. Those with an odd number of points and the assumed extrema at -pi have a metric of 1e20. Here extrknob can be used to bias the algorithm towards keeping extrema with an even number of points. |
|
integer |
2 |
Number of points between original grid points to oversample by |
|
real |
-1.0 |
Tension to use in interpolating splines for regrid of geometrical quantities Defaults to tension if not set. |
|
logical |
.false. |
If true then skip gridgen call and instead just use the existing grid. NoteThis is primarily for debugging and testing. When active we are effectively forced to assumed that the input bmag is symmetric and monotonic. If this is not true then we should not trust the results. |
|
real |
1.0 |
Tension for spline |
|
real |
0.0 |
Parameter for weighted resolution in theta. Each theta grid point contributes to the resolution metric according to the function which has peaks at theta = +/- thetamax. |
|
real |
1.0 |
Parameter for weighted resolution in theta. Each theta grid point contributes to the resolution metric according to the function which has peaks at theta = +/- thetamax and widthw controls the scale length of the peaks. |
Used to represent the input configuration of theta_grid
Name | Type | Default | Description |
---|---|---|---|
real |
1.0 |
Scales the curvature drift. |
|
character(len = 20) |
"default" |
The equilibrium_option variable controls which geometric assumptions are used in the run. Additional namelists determine the geometric parameters according to the choice made here. Allowed values are:
|
|
logical |
.false. |
If true then force grad-B drift to be equal to curvature
drift. This is not recommended when |
|
real |
1.0 |
Scales the grad-B drift. |
Used to represent the input configuration of theta_grid. Sets a number of parameters used by the different theta grid implementations. Not all parameters are active for a given theta grid type.
Name | Type | Default | Description |
---|---|---|---|
real |
1.0 |
The flux surface elongation (only used when |
|
real |
0.0 |
The radial gradient flux surface elongation (only used when
|
|
real |
0.0 |
Used in conjunction with alpmhdfac
to override |
|
real |
1.0 |
Minor radius of the flux surface that receives the specified
shaping (only used when |
|
real |
0.0 |
In the slab limit, determines the angle between the field and
the background flow (which flows in an imaginary toroidal
direction). It is effectively equal to
. |
|
real |
0.0 |
Zeroth cosine moment for the MXH local equilibrum. See geoType and local_eq |
|
real, dimension(mxh_max_moments) |
0.0 |
Cosine moments for the MXH local equilibrum. See geoType and local_eq |
|
real, dimension(mxh_max_moments) |
0.0 |
Radial derivatives of cosine moments for the MXH local equilibrum. See geoType and local_eq |
|
real |
1.0 |
The elongation of the flux surface labeled by aSurf (only used
when |
|
real |
1.0 |
The triangularity of the flux surface labeled by aSurf (only used when geoType=1, which selects the Global MHD analytic geometry specifications). See Section 2.1.2 of the Analytic Geometry Specification documentation for more details. |
|
real |
1.0 |
The magnitude of the mMode shaping effect (only used when
|
|
real |
0.0 |
Radial derivative of the magnitude of the mMode shaping effect
(only used when |
|
real |
1.0 |
The magnitude of the nMode shaping effect (only used when
|
|
real |
0.0 |
Radial derivative of the magnitude of the nMode shaping effect
(only used when |
|
real, dimension(mxh_max_moments) |
0.0 |
Radial derivatives of sine moments for the MXH local equilibrum. See geoType and local_eq |
|
real |
0.3 |
Controls particle trapping (among other things) in simple geometric models. |
|
real |
0.3 |
Sets curvature drift in s-alpha model, where is the GS2 equilibrium reference normalisation length and is the major radius at the centre of the flux surface. |
|
integer |
0 |
Selects between different analytic geometry specifications
(only used when
See Section 2.1 of the Analytic Geometry Specification documentation for more details on options 0-3, and PPCF 63 (2021) 012001 (5pp) for details of 4 (MXH). NoteThe default for this MUST be zero otherwise the Trinity interface will break. |
|
real |
-1.0 |
|
|
integer |
2 |
First flux surface shaping mode number (only used when
|
|
integer |
0 |
Number of moments for the MXH local equilibrum. Maximum value is mxh_max_moments. See geoType and local_eq for more details. |
|
integer |
3 |
Second flux surface shaping mode number (only used when
|
|
integer |
2 |
Sets the number of segments along equilibrium magnetic field to include in simulation domain. . Ignored in some cases TodoDocument when this is ignored |
|
integer |
24 |
Rough number of grid points along equilibrium magnetic field between . Actual number of grid points determined as follows:
|
|
real |
0.3 |
Sets , the magnetic safety factor, and therefore also sets the connection length, i.e. the length of the box in the parallel direction, in terms of . Used only in high aspect ratio equilibrium model. |
|
real |
1.5 |
Sets value of the safety factor when using local toroidal equilibrium model. |
|
real |
3.0 |
When not local_eq: Centerpoint of LCFS (normalized to
) - When local_eq: Major radius of
magnetic field reference point (normalized to
). Specifically, the reference magnetic
field is defined to be the value of the toroidal magnetic
field at |
|
real |
3.0 |
Major radial location of the magnetic axis (only used when
|
|
real |
0.5 |
|
|
real |
3.0 |
When not local_eq: Position of magnetic axis (normalized to ). When local_eq: Major radius of the centre of the flux surface of interest (normalized to ) |
|
real, dimension(mxh_max_moments) |
0.0 |
Sine moments for the MXH local equilibrum. See geoType and local_eq |
|
real |
0.75 |
Sets value of magnetic shear in simple geometric models.
Over-ridden by |
|
real |
0.0 |
shift is related to minor radial derivatives of the major radial location of the flux surface centers (i.e. the Shafranov shift), but this input variable has different physical definitions in s-alpha and other analytic equilbrium models:
NB in Miller shift contains the 1st radial derivative of the Shafranov shift, BUT in s-alpha shift is related to a 2nd radial derivative of the Shafranov shift.
|
|
real |
0.0 |
Minor radial derivative of the axial location of the flux
surface centers (i.e. the vertical Shafranov shift). It is
only used when equilibrium_option='eik' and |
|
real |
0.0 |
The tilt angle of the elongation of the flux surface labeled
by |
|
real |
0.0 |
The tilt angle of the triangularity of the flux surface
labeled by |
|
real |
0.0 |
The tilt angle of the triangularity (only used when
|
|
real |
0.0 |
The tilt angle of the elongation (only used when |
|
real |
0.0 |
The tilt angle of the mMode shaping effect (only used when
|
|
real |
0.0 |
The tilt angle of the nMode shaping effect (only used when
|
|
real |
0.0 |
The flux surface triangularity (only used when |
|
real |
0.0 |
The radial gradient of the flux surface triangularity (only
used when |
|
real |
0.0 |
Axial location of the magnetic axis (only used when geoType=1, which selects the Global MHD analytic geometry specification). See Section 2.1.2 of the Analytic Geometry Specification documentation for more details. |
Used to represent the input configuration of theta_grid_salpha
Name | Type | Default | Description |
---|---|---|---|
real |
0.0 |
Coefficient in model when |
|
real |
0.0 |
Used in conjunction with alpmhd to override
|
|
character(len = 20) |
"default" |
Sets the particular model for the magnetic field and related drifts. NB: All options have gbdrift = cvdrift except where noted. Can be one of
NB: For the final two options here ('const-curv' and 'no-curvature') (See also ingen output and contents of theta_grid.f90 for further details |