Skip to content

Latest commit

 

History

History
221 lines (213 loc) · 19.7 KB

options.md

File metadata and controls

221 lines (213 loc) · 19.7 KB

Options

Here we describe the available options that can be changed in BOUT.inp. Storm-specific options are in the [storm] section. We mention a few useful BOUT++ options as well.

Contents

Storm

name description default
timestep time between outputs, in cyclotron times 1
nout number of output timesteps 1
mz number of z-points 64
zmin, zmax length of z-grid is 2\*pi\*(zmax-zmin) 0, 1
[Storm]
B_0 normalising magnetic field (T) 0.5
T_e0 normalizing electron temperature (eV) 40
T_i0 ion temperature (eV) used to calculate dissipation parameters 40
m_i ion mass (amu) 2
q 'safety factor' used to enhance dissipation parameters 7
R_c radius of curvature of the magnetic field (m), used to calculate g0 1.5
n_0 normalizing density (m^-3) 8e18
loglambda Coulomb logarithm, calculated from other parameters if negative value set -1
phi_wall electric potential of the wall (V/T_e0) 0
mu_n0 density diffusion coefficient, calculated from normalization parameters if negative -1
mu_vort0 vorticity diffusion coefficient, calculated from normalization parameters if negative -1
mu ion-electron mass ration m_i/m_e, calculated if negative -1
nu_parallel0 normalized resistivity, calculated from normalization parameters if negative -1
kappa0 constant prefactor of parallel heat conduction coefficient, calculated from normalization parameters if negative; not affected by uniform_diss_paras -1
kappa0_perp heat diffusion coefficient, calculated from normalization parameters if negative -1
g0 curvature drive term, calculated from R_c if negative -1
isothermal switch for evolution of electron temperature false
uniform_diss_paras if true, dissipation coefficients are just calculated from normalization parameters, variation with n and T is neglected false
verbose print current simulation time in stdout, updated each internal timestep false
bracket choose which BOUT++ option to use for the Poisson bracket operators: 0 - default finite differencing; 2 - Arakawa scheme; other options should not be used 2
add_blob if true, add a blob perturbation using parameters in [blob] true
symmetry_plane use reflection-symmetry boundary conditions at the lower y-boundary true
run_1d if true, run in 1d (y-direction only) mode for setting up a steady background; for use by create_bg_1d script false
run_1d_T_slowdown reduce time derivative of electron temperature T by this factor to allow longer time steps and speed up finding steady profiles 20
equilibrium_source where to get the initial 'background' profiles from: '1d_profiles' - binary files created by create_bg_1d; 'input_file' - standard BOUT++ variable initialization from the input file; 'profiles_file' - read arrays from a binary 'grid' file (netCDF or HDF5) given by equilibrium_data_file "1d_profiles"
equilibrium_file_path relative or absolute path to directory where files for equilibrium_source=1d_profiles or equilibrium_source=profiles_file options are located - if not given, the subdirectory given by equilibrium_directory of the directory specified for input/output ""
equilibrium_directory name of the subdirectory to read background profiles from "equilibrium"
equilibrium_data_file see equilibrium_source ""
[blob]
delta_perp width of density perturbation in units of rho_s 10
elongation ellipticity of density perturbation (ratio of long to short axis) 1
angle_blob tilt of axis of density perturbation relative to x-direction (radians) 0
A amplitude of density perturbation 2
A_relative_to_bg if true A is a multiple of the background density and A_T a multiple of the background temperature, if false A is a density normalized to n_0 and A_T a temperature normalized to T_e0 true
L_b parallel extent of density perturbation as a fraction of the domain size 0.5
xoffset initial x-position of the centre of the density perturbation as a fraction of the domain size 0.25
zoffset initial z-position of the centre of the density perturbation as a fraction of the domain size 0.5
boltzmann vorticity is initialized so that phi=log(n) false
delta_front scale length of the parallel gradient at the ends of the density perturbation, as a fraction of the domain size 0.3
conserve_momentum U and V are reduced so that the momentum density after adding the filament is the same as the momentum density of the background false
delta_perp_T width of temperature perturbation in units of rho_s 10
elongation_T ellipticity of temperature perturbation 1
angle_blob_T tilt of axis of temperature perturbation relative to x-direction (radians) 0
A_T amplitude of temperature perturbation 2
L_b_T parallel extent of temperature perturbation as a fraction of the domain size 0.5
xoffset_T initial x-position of the centre of the temperature perturbation as a fraction of the domain size 0.25
zoffset_T initial z-position of the centre of the temperature perturbation as a fraction of the domain size 0.5
delta_front_T scale length of the parallel gradient at the ends of the temperature perturbation, as a fraction of the domain size 0.3
[mesh]
staggergrids switch for staggered grids, must be set to true for STORM false
Lx length of x-grid in units of rho_s (just used to calculate dx) N/A
Ly length of y-grid in units of rho_s (just used to calculate dy) N/A
ixseps1, ixseps2 x-index of separatrices, should both be negative or zero for SOL simulations nx
[S]
function expression in terms of x, y, z giving particle source density multiplied by Ly (multiplying by Ly means if this number is kept fixed, the total particle source in the domain is constant as Ly changes, which keeps a similar density profile since the sink at the sheath also does not change with Ly) [0<x<1, 0<y<2pi, 0<z<2pi]
[S_E]
function expression in terms of x, y, z giving energy source density multiplied by Ly (multiplying by Ly means if this number is kept fixed, the total particle source in the domain is constant as Ly changes, which keeps a similar density profile since the sink at the sheath also does not change with Ly) [0<x<1, 0<y<2pi, 0<z<2pi]
[n]
function expression giving initial profile of n if equilibrium_source=input_file
bndry_yup boundary condition at the upper target, should be free_o3
bndry_ydown if symmetry_plane=true boundary condition at the symmetry plane, should be neumann; otherwise boundary coundition at lower target, should be free_o3
bndry_xin boundary condition at the inner radial boundary, should be neumann
bndry_xout boundary condition at the outer radial boundary, should be neumann
[T]
function expression giving initial profile of T if equilibrium_source=input_file
bndry_yup boundary condition at the upper target, should be free_o3
bndry_ydown if symmetry_plane=true boundary condition at the symmetry plane, should be neumann; otherwise boundary coundition at lower target, should be free_o3
bndry_xin boundary condition at the inner radial boundary, should be neumann
bndry_xout boundary condition at the outer radial boundary, should be neumann
[vort]
function expression giving initial profile of vort if equilibrium_source=input_file
bndry_yup boundary condition at the upper target, should be free_o3
bndry_ydown if symmetry_plane=true boundary condition at the symmetry plane, should be neumann; otherwise boundary coundition at lower target, should be free_o3
bndry_xin boundary condition at the inner radial boundary, should be neumann
bndry_xout boundary condition at the outer radial boundary, should be neumann
[U]
function expression giving initial profile of U if equilibrium_source=input_file
bndry_yup boundary condition at the upper target, should be free_o3
bndry_ydown if symmetry_plane=true boundary condition at the symmetry plane, should be dirichlet; otherwise boundary coundition at lower target, should be none
bndry_xin boundary condition at the inner radial boundary, should be neumann
bndry_xout boundary condition at the outer radial boundary, should be neumann
[V]
function expression giving initial profile of V if equilibrium_source=input_file
bndry_yup boundary condition at the upper target, should be free_o3
bndry_ydown if symmetry_plane=true boundary condition at the symmetry plane, should be dirichlet; otherwise boundary coundition at lower target, should be none
bndry_xin boundary condition at the inner radial boundary, should be neumann
bndry_xout boundary condition at the outer radial boundary, should be neumann
[phi]
function expression giving initial profile of phi if equilibrium_source=input_file
bndry_yup boundary condition at the upper target, should be free_o3
bndry_ydown if symmetry_plane=true boundary condition at the symmetry plane, should be neumann; otherwise boundary coundition at lower target, should be free_o3
bndry_xin boundary condition at the inner radial boundary, should be none
bndry_xout boundary condition at the outer radial boundary, should be none
[phi_stag]
bndry_yup boundary condition at the upper target, should be none
bndry_ydown boundary condition at the symmetry plane or lower target, should be none
bndry_xin boundary condition at the inner radial boundary, should be free_o3
bndry_xout boundary condition at the outer radial boundary, should be free_o3
[qpar]
bndry_yup boundary condition at the upper target, should be none
bndry_ydown if symmetry_plane=true boundary condition at the symmetry plane, should be dirichlet; otherwise boundary coundition at lower target, should be none
bndry_xin boundary condition at the inner radial boundary, should be none
bndry_xout boundary condition at the outer radial boundary, should be none
[laplace]
inner_boundary_flags needs to be set to 16 to use dirichlet boundary conditions set to the equilibrium value of phi at the radial boundaries
outer_boundary_flags needs to be set to 16 to use dirichlet boundary conditions set to the equilibrium value of phi at the radial boundaries
[solver]
type pvode - adaptive timestep, adaptive order implicit scheme; cvode - newer version of pvode, if you have SUNDIALS library installed; rk4 4th order Runke-Kutta scheme (fixed timestep by default) [for more options see BOUT++ documentation] pvode
mxstep maximum number of internal timesteps between output timesteps, usually good to set this to a very large number, like 100000000 500
timestep internal timestep for fixed-timestep solvers like rk4 output timestep
rtol relative tolerance for adaptive timestep 1e-5
atol absolute tolerance for adaptive timestep 1e-12
[mesh:ddx]
first differencing scheme for first derivatives in the x-direction: C2 - 2nd order central difference; C4 - 4th order central difference C2
second differencing scheme for second derivatives in the x-direction: C2 - 2nd order central difference; C4 - 4th order central difference C2
upwind differencing scheme for upwind derivatives in the x-direction: C2 - 2nd order central difference; C4 - 4th order central difference; U1 - 1st order upwind; U2 - 2nd order upwind; W3 - WENO scheme U1
[mesh:ddy]
first differencing scheme for first derivatives in the y-direction: C2 - 2nd order central difference; C4 - 4th order central difference C2
firststag differencing scheme for first derivatives output on a staggered grid in the y-direction: C2 - 2nd order central difference; C4 - 4th order central difference same as first
second differencing scheme for second derivatives in the y-direction: C2 - 2nd order central difference; C4 - 4th order central difference C2
secondstag differencing scheme for second derivatives output on a staggered grid in the y-direction: C2 - 2nd order central difference; C4 - 4th order central difference same as second
upwind differencing scheme for upwind derivatives in the y-direction: C2 - 2nd order central difference; C4 - 4th order central difference; U1 - 1st order upwind; U2 - 2nd order upwind; W3 - WENO scheme U1
upwindstag differencing scheme for upwind derivatives involving staggered fields in the y-direction: C2 - 2nd order central difference; C4 - 4th order central difference; U1 - 1st order upwind; U2 - 2nd order upwind; W3 - WENO scheme same as upwind
[mesh:ddz]
first differencing scheme for first derivatives in the z-direction: C2 - 2nd order central difference; C4 - 4th order central difference; FFT - fast-Fourier-transform scheme C2
firststag not used in STORM, but may need to be set explicitly if using FFT derivatives since FFT is not available for staggered derivatives: C2 - 2nd order central difference; C4 - 4th order central difference same as first
second differencing scheme for second derivatives in the z-direction: C2 - 2nd order central difference; C4 - 4th order central difference; FFT - fast-Fourier-transform scheme C2
secondstag not used in STORM, but may need to be set explicitly if using FFT derivatives since FFT is not available for staggered derivatives: C2 - 2nd order central difference; C4 - 4th order central difference same as second
upwind differencing scheme for upwind derivatives in the z-direction: C2 - 2nd order central difference; C4 - 4th order central difference; U1 - 1st order upwind; U2 - 2nd order upwind; W3 - WENO scheme U1
[output]
floats if true output single precision floats instead of double precision false

Storm2D

name description default
timestep time between outputs, in cyclotron times 1
nout number of output timesteps 1
mz number of z-points 64
zmin, zmax length of z-grid is 2\*pi\*(zmax-zmin) 0, 1
[Storm]
B_0 normalising magnetic field (T) 0.5
T_e0 normalizing electron temperature (eV) 40
T_i0 ion temperature (eV) used to calculate dissipation parameters 40
m_i ion mass (amu) 2
q 'safety factor' used to enhance dissipation parameters 7
R_c radius of curvature of the magnetic field (m), used to calculate g0 1.5
n_0 normalizing density (m^-3) 8e18
loglambda Coulomb logarithm, calculated from other parameters if negative value set -1
mu_n0 density diffusion coefficient, calculated from normalization parameters if negative -1
mu_vort0 vorticity diffusion coefficient, calculated from normalization parameters if negative -1
kappa0 constant prefactor of parallel heat conduction coefficient, calculated from normalization parameters if negative; used by SOL_closure=vort_adv -1
kappa0_perp heat diffusion coefficient, calculated from normalization parameters if negative -1
g0 curvature drive term, calculated from R_c if negative -1
isothermal switch for evolution of electron temperature false
SOL_closure choice of SOL closure model: "sheath_diss", "vort_adv" or "ESEL_like" "sheath_diss"
sheath_linear in an isothermal simulation with SOL_closure="sheath_diss", calculate the sheath potential as (1-phi) instead of exp(-phi) false
n_bg set a constant background density, a density source will be set to restore the density to this value 1
T_bg set a constant background temperature, a heat source will be set to restore the temperature to this value 1
bracket choose which BOUT++ option to use for the Poisson bracket operators: 0 - default finite differencing; 2 - Arakawa scheme; other options should not be used 2
[mesh]
Lx length of x-grid in units of rho_s (just used to calculate dx) N/A
Ly parallel connection length in units of rho_s (used by SOL_closure="sheath_diss") N/A
[All]
bndry_all set boundary conditions for all variables, should be neumann
[n]
function expression in terms of x, y, z giving initial profile of n [0<x<1, 0<y<2pi, 0<z<2pi]
[T]
function expression in terms of x, y, z giving initial profile of T [0<x<1, 0<y<2pi, 0<z<2pi]
[vort]
function expression in terms of x, y, z giving initial profile of vort [0<x<1, 0<y<2pi, 0<z<2pi]
[sigma_n]
function expression in terms of x, y, z giving profile of density sink if SOL_closure="ESEL_like" [0<x<1, 0<y<2pi, 0<z<2pi]
[sigma_T]
function expression in terms of x, y, z giving profile of temperature sink if SOL_closure="ESEL_like" [0<x<1, 0<y<2pi, 0<z<2pi]
[sigma_vort]
function expression in terms of x, y, z giving profile of vorticity sink if SOL_closure="ESEL_like" [0<x<1, 0<y<2pi, 0<z<2pi]
[laplace]
inner_boundary_flags needs to be set to 16 to use dirichlet boundary conditions with non-zero value if the background phi is floating potential instead of zero
outer_boundary_flags needs to be set to 16 to use dirichlet boundary conditions with non-zero value if the background phi is floating potential instead of zero
[solver]
type pvode - adaptive timestep, adaptive order implicit scheme; cvode - newer version of pvode, if you have SUNDIALS library installed; rk4 4th order Runke-Kutta scheme (fixed timestep by default) [for more options see BOUT++ documentation] pvode
mxstep maximum number of internal timesteps between output timesteps, usually good to set this to a very large number, like 100000000 500
timestep internal timestep for fixed-timestep solvers like rk4 output timestep
rtol relative tolerance for adaptive timestep 1e-5
atol absolute tolerance for adaptive timestep 1e-12
[mesh:ddx]
first differencing scheme for first derivatives in the x-direction: C2 - 2nd order central difference; C4 - 4th order central difference C2
second differencing scheme for second derivatives in the x-direction: C2 - 2nd order central difference; C4 - 4th order central difference C2
upwind differencing scheme for upwind derivatives in the x-direction: C2 - 2nd order central difference; C4 - 4th order central difference; U1 - 1st order upwind; U2 - 2nd order upwind; W3 - WENO scheme U1
[mesh:ddz]
first differencing scheme for first derivatives in the z-direction: C2 - 2nd order central difference; C4 - 4th order central difference; FFT - fast-Fourier-transform scheme C2
firststag not used in STORM, but may need to be set explicitly if using FFT derivatives since FFT is not available for staggered derivatives: C2 - 2nd order central difference; C4 - 4th order central difference same as first
second differencing scheme for second derivatives in the z-direction: C2 - 2nd order central difference; C4 - 4th order central difference; FFT - fast-Fourier-transform scheme C2
secondstag not used in STORM, but may need to be set explicitly if using FFT derivatives since FFT is not available for staggered derivatives: C2 - 2nd order central difference; C4 - 4th order central difference same as second
upwind differencing scheme for upwind derivatives in the z-direction: C2 - 2nd order central difference; C4 - 4th order central difference; U1 - 1st order upwind; U2 - 2nd order upwind; W3 - WENO scheme U1
[output]
floats if true output single precision floats instead of double precision false