Skip to content

Input File Options

Emil Briggs edited this page May 11, 2024 · 11 revisions

-- A Real Space Multigrid Electronic structure code -- -- More information at www.rmgdft.org --

[Introduction ] [Control options] [Cell parameter options] [Pseudopotential related options] [Kohn Sham solver options] [Exchange correlation options] [Orbital occupation options] [Charge density mixing options] [Relaxation and Molecular dynamics options] [Diagonalization options] [Performance related options] [LDAU options] [TDDFT related options] [Poisson solver options] [Testing options] [Miscellaneous options]

Introduction

The RMG input file consists of a set of key-value pairs of the form.

    name = "scalar"


where scalar can be an integer, double or boolean value.

    period_of_diagonalization = "1"
    charge_density_mixing = "0.5"
    initial_diagonalization = "true"

There are also strings and arrays which are delineated by double quotes so an
integer array with three elements would be.

    processor_grid = "2 2 2"

while a string example would be

    description = "64 atom diamond cell test run at the gamma point"

strings can span multiple lines so the following would be valid as well.

    description = "64 atom diamond cell test run at gamma point
    using a Vanderbilt ultrasoft pseudopotential"

string vectors span multiple lines and are used to enter items like a kpoint list one item per line.

    kpoints = "0.00  0.00  0.00   0.50
               0.25  0.25  0.50   0.25
               0.50  0.50  0.50   0.25"

Control options

    Key name:     AFM
    Required:     no
    Key type:     boolean
    Expert:       No
    Experimental: No
    Default:      "false"
    Description:  If true, anti-feromagnetic will be forced by symmetry operation if 
                  possible. 

    Key name:     STM_bias
    Required:     no
    Key type:     string
    Expert:       No
    Experimental: No
    Default:      "-1.0 1.0"
    Allowed:      
    Description:  Bias (in unit of Volt) for STM calculation 

    Key name:     STM_height
    Required:     no
    Key type:     string
    Expert:       No
    Experimental: No
    Default:      "2.0 4.0"
    Allowed:      
    Description:  Height range for STM calculation 

    Key name:     a_length
    Required:     no
    Key type:     double
    Expert:       No
    Experimental: No
    Min value:    0.000000e+00
    Max value:    unlimited
    Default:      0.000000e+00
    Description:  First lattice constant. 

    Key name:     afd_cfac
    Required:     no
    Key type:     double
    Expert:       No
    Experimental: No
    Min value:    0.000000e+00
    Max value:    10.000000
    Default:      0.000000e+00
    Description:  Manual setting for the adaptive finite differencing parameter. 

    Key name:     b_length
    Required:     no
    Key type:     double
    Expert:       No
    Experimental: No
    Min value:    0.000000e+00
    Max value:    unlimited
    Default:      0.000000e+00
    Description:  Second lattice constant. 

    Key name:     c_length
    Required:     no
    Key type:     double
    Expert:       No
    Experimental: No
    Min value:    0.000000e+00
    Max value:    unlimited
    Default:      0.000000e+00
    Description:  Third lattice constant. 

    Key name:     calculation_mode
    Required:     no
    Key type:     string
    Expert:       No
    Experimental: No
    Default:      "Quench Electrons"
    Allowed:      "NSCF" "Exx Only" "Dimer Relax" "Psi Plot" "NEB Relax" "Plot" 
                  "Constant Temperature And Energy" "STM" "Band Structure Only" 
                  "Constant Pressure And Energy" "Constant Volume And Energy" 
                  "TDDFT" "Relax Structure" "Quench Electrons" 
    Description:  Type of calculation to perform. 

    Key name:     cell_relax
    Required:     no
    Key type:     boolean
    Expert:       No
    Experimental: No
    Default:      "false"
    Description:  flag to control unit cell relaxation 

    Key name:     coalesce_factor
    Required:     no
    Key type:     integer
    Expert:       Yes
    Experimental: No
    Min value:    1
    Max value:    16
    Default:      4
    Description:  Grid coalescing factor. 

    Key name:     coalesce_states
    Required:     no
    Key type:     boolean
    Expert:       Yes
    Experimental: No
    Default:      "false"
    Description:  Flag indicating whether or not to coalesce states. 

    Key name:     compressed_infile
    Required:     no
    Key type:     boolean
    Expert:       No
    Experimental: No
    Default:      "true"
    Description:  Flag indicating whether or not parallel restart wavefunction file 
                  uses compressed format. 

    Key name:     compressed_outfile
    Required:     no
    Key type:     boolean
    Expert:       No
    Experimental: No
    Default:      "true"
    Description:  Flag indicating whether or not parallel output wavefunction file 
                  uses compressed format. 

    Key name:     description
    Required:     no
    Key type:     string
    Expert:       No
    Experimental: No
    Default:      ""
    Allowed:      
    Description:  Description of the run. 

    Key name:     drho_precond_type
    Required:     no
    Key type:     string
    Expert:       No
    Experimental: No
    Default:      "Resta"
    Allowed:      "Kerker" "Resta" 
    Description:  Density mixing preconditioner method. Resta or Kerker are 
                  supported. 

    Key name:     energy_convergence_criterion
    Required:     no
    Key type:     double
    Expert:       No
    Experimental: No
    Min value:    1.000000e-20
    Max value:    1.000000e-07
    Default:      1.000000e-10
    Description:  The RMS value of the estimated change in the total energy per step 
                  where we assume self consistency has been achieved. 

    Key name:     energy_output_units
    Required:     no
    Key type:     string
    Expert:       No
    Experimental: No
    Default:      "Hartrees"
    Allowed:      "Rydbergs" "Hartrees" 
    Description:  Units to be used when writing energy values to the output file. 
                  Hartrees or Rydbergs are available. 

    Key name:     epsg_guard
    Required:     no
    Key type:     double
    Expert:       No
    Experimental: No
    Min value:    0.000000e+00
    Max value:    1.000000e-05
    Default:      1.000000e-07
    Description:  GGA guard value for low density regions. 

    Key name:     exx_integrals_filepath
    Required:     no
    Key type:     string
    Expert:       No
    Experimental: No
    Default:      "afqmc_rmg"
    Allowed:      
    Description:  File/path for exact exchange integrals. 

    Key name:     exx_mode
    Required:     no
    Key type:     string
    Expert:       No
    Experimental: No
    Default:      "Local fft"
    Allowed:      "Local fft" "Distributed fft" 
    Description:  FFT mode for exact exchange computations. 

    Key name:     exxdiv_treatment
    Required:     no
    Key type:     string
    Expert:       No
    Experimental: No
    Default:      "gygi-baldereschi"
    Allowed:      "none" "gygi-baldereschi" 
    Description:  Exact exchange method for handling exx divergence at G=0. 

    Key name:     freeze_ldaU_steps
    Required:     no
    Key type:     integer
    Expert:       No
    Experimental: No
    Min value:    1
    Max value:    2147483647
    Default:      500
    Description:  freeze the ldaU occupations ns_occ after this step. 

    Key name:     gpu_managed_memory
    Required:     no
    Key type:     boolean
    Expert:       Yes
    Experimental: No
    Default:      "false"
    Description:  Some AMD and Nvidia GPUs support managed gou memory which is 
                  useful when GPU memory limits are exceeded. 

    Key name:     input_tddft_file
    Required:     no
    Key type:     string
    Expert:       No
    Experimental: No
    Default:      "Waves/wave_tddft.out"
    Allowed:      
    Description:  Input file/path to read wavefunctions and other binary data from 
                  on a restart. 

    Key name:     input_wave_function_file
    Required:     no
    Key type:     string
    Expert:       No
    Experimental: No
    Default:      "Waves/wave.out"
    Allowed:      
    Description:  Input file/path to read wavefunctions and other binary data from 
                  on a restart. 

    Key name:     interpolation_type
    Required:     no
    Key type:     string
    Expert:       No
    Experimental: No
    Default:      "FFT"
    Allowed:      "FFT" "prolong" "Cubic Polynomial" 
    Description:  Interpolation method for transferring data between the potential 
                  grid and the wavefunction grid. Mostly for diagnostic purposes. 

    Key name:     max_exx_steps
    Required:     no
    Key type:     integer
    Expert:       No
    Experimental: No
    Min value:    1
    Max value:    2147483647
    Default:      100
    Description:  Maximum number of self consistent steps to perform with hybrid 
                  functionals. 

    Key name:     max_scf_steps
    Required:     no
    Key type:     integer
    Expert:       No
    Experimental: No
    Min value:    0
    Max value:    2147483647
    Default:      100
    Description:  Maximum number of self consistent steps to perform. Inner loop for 
                  hybrid functionals. 

    Key name:     noncollinear
    Required:     no
    Key type:     boolean
    Expert:       No
    Experimental: No
    Default:      "false"
    Description:  If set true, noncollinear calculation. 

    Key name:     nvme_orbitals
    Required:     no
    Key type:     boolean
    Expert:       No
    Experimental: No
    Default:      "false"
    Description:  Flag indicating whether or not orbitals should be mapped to disk. 

    Key name:     nvme_orbitals_filepath
    Required:     no
    Key type:     string
    Expert:       No
    Experimental: No
    Default:      "Orbitals/"
    Allowed:      
    Description:  File/path for runtime disk storage of orbitals. 

    Key name:     nvme_weights
    Required:     no
    Key type:     boolean
    Expert:       No
    Experimental: No
    Default:      "false"
    Description:  Flag indicating whether or not projector weights should be mapped 
                  to disk. 

    Key name:     nvme_weights_filepath
    Required:     no
    Key type:     string
    Expert:       No
    Experimental: No
    Default:      "Weights/"
    Allowed:      
    Description:  File/path for disk storage of projector weights. 

    Key name:     nvme_work
    Required:     no
    Key type:     boolean
    Expert:       No
    Experimental: No
    Default:      "false"
    Description:  Flag indicating whether or not work arrays should be mapped to 
                  disk. 

    Key name:     nvme_work_filepath
    Required:     no
    Key type:     string
    Expert:       No
    Experimental: No
    Default:      "Work/"
    Allowed:      
    Description:  File/path for disk storage of workspace. 

    Key name:     omp_threads_per_node
    Required:     no
    Key type:     integer
    Expert:       No
    Experimental: No
    Min value:    0
    Max value:    64
    Default:      0
    Description:  Number of Open MP threads each MPI process will use. A value of 0 
                  selects automatic setting. 

    Key name:     output_tddft_file
    Required:     no
    Key type:     string
    Expert:       No
    Experimental: No
    Default:      "Waves/wave_tddft.out"
    Allowed:      
    Description:  Output file/path to store wavefunctions and other binary data. 

    Key name:     output_wave_function_file
    Required:     no
    Key type:     string
    Expert:       No
    Experimental: No
    Default:      "Waves/wave.out"
    Allowed:      
    Description:  Output file/path to store wavefunctions and other binary data. 

    Key name:     pseudo_dir
    Required:     no
    Key type:     string
    Expert:       No
    Experimental: No
    Default:      "."
    Allowed:      
    Description:  Directory where pseudopotentials are stored. 

    Key name:     qfunction_filepath
    Required:     no
    Key type:     string
    Expert:       No
    Experimental: No
    Default:      "Qfunctions/"
    Allowed:      
    Description:  File/path for runtime disk storage of qfunctions. 

    Key name:     qmc_nband
    Required:     no
    Key type:     integer
    Expert:       No
    Experimental: No
    Min value:    0
    Max value:    2147483647
    Default:      0
    Description:  The number of band used in rmg-qmcpack interface. 

    Key name:     read_serial_restart
    Required:     no
    Key type:     boolean
    Expert:       No
    Experimental: No
    Default:      "false"
    Description:  Directs RMG to read from serial restart files. Normally used when 
                  changing the sprocessor topology used during a restart run 

    Key name:     rms_convergence_criterion
    Required:     no
    Key type:     double
    Expert:       No
    Experimental: No
    Min value:    0.000000e+00
    Max value:    1.000000e-03
    Default:      1.000000e-07
    Description:  The RMS value of the change in the total potential from step to 
                  step where we assume self consistency has been achieved. 

    Key name:     semilocal_projectors
    Required:     no
    Key type:     integer
    Expert:       No
    Experimental: No
    Min value:    6
    Max value:    40
    Default:      10
    Description:  Controls the number of semilocal projectors. 

    Key name:     spinorbit
    Required:     no
    Key type:     boolean
    Expert:       No
    Experimental: No
    Default:      "false"
    Description:  If set true, spinorbit coupling calculation. 

    Key name:     start_mode
    Required:     no
    Key type:     string
    Expert:       No
    Experimental: No
    Default:      "LCAO Start"
    Allowed:      "Modified LCAO Start" "Restart TDDFT" "Start TDDFT" "Gaussian 
                  Start" "FIREBALL Start" "LCAO Start" "Restart From File" "Random 
                  Start" 
    Description:  Type of run. 

    Key name:     stress
    Required:     no
    Key type:     boolean
    Expert:       No
    Experimental: No
    Default:      "false"
    Description:  flag to control stress cacluation 

    Key name:     stress_convergence_criterion
    Required:     no
    Key type:     double
    Expert:       No
    Experimental: No
    Min value:    0.000000e+00
    Max value:    50.000000
    Default:      0.500000
    Description:  The stress criteria 

    Key name:     system_charge
    Required:     no
    Key type:     double
    Expert:       No
    Experimental: No
    Min value:    -unlimited
    Max value:    unlimited
    Default:      0.000000e+00
    Description:  Number of excess holes in the system (useful for doped systems). 
                  Example: 2 means system is missing two electrons 

    Key name:     time_reversal
    Required:     no
    Key type:     boolean
    Expert:       No
    Experimental: No
    Default:      "true"
    Description:  if false, no k -> -k symmetry 

    Key name:     vdw_corr
    Required:     no
    Key type:     string
    Expert:       No
    Experimental: No
    Default:      "None"
    Allowed:      "DFT-D3" "DFT-D2" "Grimme-D2" "None" 
    Description:  Type of vdw correction 

    Key name:     vdwdf_grid_type
    Required:     no
    Key type:     string
    Expert:       No
    Experimental: No
    Default:      "Fine"
    Allowed:      "Fine" "Coarse" 
    Description:  Type of grid to use when computing vdw-df correlation. 

    Key name:     vdwdf_kernel_filepath
    Required:     no
    Key type:     string
    Expert:       No
    Experimental: No
    Default:      "vdW_kernel_table"
    Allowed:      
    Description:  File/path for vdW_kernel_table data. 

    Key name:     verbose
    Required:     no
    Key type:     boolean
    Expert:       No
    Experimental: No
    Default:      "false"
    Description:  Flag for writing out extra information 

    Key name:     wannier90
    Required:     no
    Key type:     boolean
    Expert:       No
    Experimental: No
    Default:      "false"
    Description:  set up informations for wannier90 interface 

    Key name:     wannier90_scdm_mu
    Required:     no
    Key type:     double
    Expert:       No
    Experimental: No
    Min value:    -unlimited
    Max value:    unlimited
    Default:      0.000000e+00
    Description:  when wannier90 is used to build wannier functions, the energy 
                  window parameter 

    Key name:     write_data_period
    Required:     no
    Key type:     integer
    Expert:       No
    Experimental: No
    Min value:    5
    Max value:    50
    Default:      5
    Description:  How often to write checkpoint files during the initial quench in 
                  units of SCF steps. During structural relaxations of molecular 
                  dynamics checkpoints are written each ionic step. 

    Key name:     write_qmcpack_restart
    Required:     no
    Key type:     boolean
    Expert:       No
    Experimental: No
    Default:      "false"
    Description:  If true then a QMCPACK restart file is written as well as a serial 
                  restart file. 

    Key name:     write_qmcpack_restart_localized
    Required:     no
    Key type:     boolean
    Expert:       No
    Experimental: No
    Default:      "false"
    Description:  If true then a QMCPACK restart file for localized orbitals 

    Key name:     write_serial_restart
    Required:     no
    Key type:     boolean
    Expert:       No
    Experimental: No
    Default:      "false"
    Description:  RMG normally writes parallel restart files. These require that 
                  restarts have the same processor topology. If write_serial_restart 
                  = "true" then RMG will also write a serial restart file that can 
                  be used with a different processor topology 

Cell parameter options

    Key name:     atomic_coordinate_type
    Required:     no
    Key type:     string
    Expert:       No
    Experimental: No
    Default:      "Absolute"
    Allowed:      "Absolute" "Cell Relative" 
    Description:  Flag indicated whether or not atomic coordinates are absolute or 
                  cell relative. 

    Key name:     bravais_lattice_type
    Required:     no
    Key type:     string
    Expert:       No
    Experimental: No
    Default:      "None"
    Allowed:      "Triclinic Primitive" "Tetragonal Primitive" "Hexagonal Primitive" 
                  "Cubic Body Centered" "Cubic Face Centered" "Cubic Primitive" 
                  "Orthorhombic Primitive" "Monoclinic Primitive" "None" 
    Description:  Bravais Lattice Type. 

    Key name:     cell_movable
    Required:     no
    Key type:     integer array
    Expert:       No
    Experimental: No
    Default:      "0 0 0 0 0 0 0 0 0 "
    Description:  9 numbers to control cell relaxation 

    Key name:     crds_units
    Required:     no
    Key type:     string
    Expert:       No
    Experimental: No
    Default:      "Bohr"
    Allowed:      "Angstrom" "Bohr" 
    Description:  Units for the atomic coordinates. 

    Key name:     frac_symmetry
    Required:     no
    Key type:     boolean
    Expert:       No
    Experimental: No
    Default:      "true"
    Description:  For supercell calculation, one can disable the fractional 
                  translation symmetry 

    Key name:     grid_spacing
    Required:     no
    Key type:     double
    Expert:       No
    Experimental: No
    Min value:    0.000000e+00
    Max value:    unlimited
    Default:      0.350000
    Description:  Approximate grid spacing (bohr). 

    Key name:     kpoint_distribution
    Required:     no
    Key type:     integer
    Expert:       No
    Experimental: No
    Min value:    -2147483647
    Max value:    2147483647
    Default:      -1
    Description:  This option affects kpoint parallelization. If there are M MPI 
                  procs then N = M/kpoint_distribution procs are assigned to each 
                  kpoint. M must be evenly divisible by kpoint_distribution. 

    Key name:     kpoint_is_shift
    Required:     no
    Key type:     integer array
    Expert:       No
    Experimental: No
    Default:      "0 0 0 "
    Description:  Three-D layout of the kpoint shift. 

    Key name:     kpoint_mesh
    Required:     no
    Key type:     integer array
    Expert:       No
    Experimental: No
    Default:      "1 1 1 "
    Description:  Three-D layout of the kpoint mesh. 

    Key name:     kpoint_units
    Required:     no
    Key type:     string
    Expert:       No
    Experimental: No
    Default:      "Reciprocal lattice"
    Allowed:      "2pi/alat" "Reciprocal lattice" 
    Description:  kpoint units for reading kpoint 

    Key name:     lattice_units
    Required:     no
    Key type:     string
    Expert:       No
    Experimental: No
    Default:      "Bohr"
    Allowed:      "Angstrom" "Alat" "Bohr" 
    Description:  Units for the lattice vectors 

    Key name:     lattice_vector
    Required:     no
    Key type:     double array
    Expert:       No
    Experimental: No
    Default:      "Not done yet"
    Description:  The simulation cell may be specified using either lattice vectors, 
                  a0, a1, a2 or by lattice constants and a bravais lattice type. If 
                  lattice vectors are used they should be entered as a 3x3 matrix. 

    Key name:     potential_grid_refinement
    Required:     no
    Key type:     integer
    Expert:       No
    Experimental: No
    Min value:    1
    Max value:    4
    Default:      2
    Description:  Ratio of the potential grid density to the wavefunction grid 
                  density. For example if the wavefunction grid is (72,72,72) and 
                  potential_grid_refinement = "2" then the potential grid would be 
                  (144,144,144). The default value is 2 but it may sometimes be 
                  beneficial to adjust this. (For USPP the minimum value is also 2 
                  and it cannot be set lower. NCPP can be set to 1). 

    Key name:     processor_grid
    Required:     no
    Key type:     integer array
    Expert:       No
    Experimental: No
    Default:      "1 1 1 "
    Description:  Three-D (x,y,z) layout of the MPI processes. 

    Key name:     use_symmetry
    Required:     no
    Key type:     integer
    Expert:       No
    Experimental: No
    Min value:    0
    Max value:    2
    Default:      2
    Description:  0: never use symmetry, 1: always use symmetry, 

    Key name:     wavefunction_grid
    Required:     no
    Key type:     integer array
    Expert:       No
    Experimental: No
    Default:      "1 1 1 "
    Description:  Three-D (x,y,z) dimensions of the grid the wavefunctions are 
                  defined on. 

Pseudopotential related options

    Key name:     all_electron_parm
    Required:     no
    Key type:     integer
    Expert:       Yes
    Experimental: Yes
    Min value:    1
    Max value:    12
    Default:      4
    Description:  Gygi all electron parameter. 

    Key name:     atomic_orbital_type
    Required:     no
    Key type:     string
    Expert:       No
    Experimental: No
    Default:      "delocalized"
    Allowed:      "delocalized" "localized" 
    Description:  Atomic Orbital Type. Choices are localized and delocalized. 

    Key name:     energy_cutoff_parameter
    Required:     no
    Key type:     double
    Expert:       Yes
    Experimental: No
    Min value:    0.600000
    Max value:    1.000000
    Default:      0.800000
    Description:  

    Key name:     filter_factor
    Required:     no
    Key type:     double
    Expert:       Yes
    Experimental: No
    Min value:    0.060000
    Max value:    1.000000
    Default:      1.000000
    Description:  Filtering factor. 

    Key name:     internal_pseudo_type
    Required:     no
    Key type:     string
    Expert:       No
    Experimental: No
    Default:      "sg15"
    Allowed:      "nc_standard" "nc_accuracy" "sg15" "all_electron" "ultrasoft" 
    Description:  Internal pseudopotential type. Choices are sg15, ultrasoft, 
                  nc_accuracy or all_electron 

    Key name:     localize_localpp
    Required:     no
    Key type:     boolean
    Expert:       No
    Experimental: No
    Default:      "true"
    Description:  The local potential associated with a particular ion also decays 
                  rapidly in real-space with increasing r. As with beta projectors 
                  truncating the real-space representation for large cells can lead 
                  to significant computational savings with a small loss of accuracy 
                  but it should be set to false for small cells. 

    Key name:     localize_projectors
    Required:     no
    Key type:     boolean
    Expert:       No
    Experimental: No
    Default:      "true"
    Description:  The Beta function projectors for a particular ion decay rapidly in 
                  real-space with increasing r. For large cells truncating the 
                  real-space representation of the projector can lead to significant 
                  computational savings with a small loss of accuracy. For smaller 
                  cells the computational cost is the same for localized or 
                  delocalized projectors so it is better to set localize_projectors 
                  to false. 

    Key name:     max_nlradius
    Required:     no
    Key type:     double
    Expert:       Yes
    Experimental: No
    Min value:    2.000000
    Max value:    10000.000000
    Default:      10000.000000
    Description:  maximum radius for non-local projectors 

    Key name:     max_qradius
    Required:     no
    Key type:     double
    Expert:       Yes
    Experimental: No
    Min value:    2.000000
    Max value:    10000.000000
    Default:      10000.000000
    Description:  maximum radius for qfunc in ultra-pseudopotential 

    Key name:     min_nlradius
    Required:     no
    Key type:     double
    Expert:       Yes
    Experimental: No
    Min value:    1.000000
    Max value:    10000.000000
    Default:      2.000000
    Description:  minimum radius for non-local projectors 

    Key name:     min_qradius
    Required:     no
    Key type:     double
    Expert:       Yes
    Experimental: No
    Min value:    1.000000
    Max value:    10000.000000
    Default:      2.000000
    Description:  minimum radius for qfunc in ultra-pseudopotential 

    Key name:     projector_expansion_factor
    Required:     no
    Key type:     double
    Expert:       Yes
    Experimental: No
    Min value:    0.500000
    Max value:    3.000000
    Default:      1.000000
    Description:  When using localized projectors the radius can be adjusted with 
                  this parameter. 

    Key name:     pseudopotential
    Required:     no
    Key type:     string
    Expert:       No
    Experimental: No
    Default:      ""
    Allowed:      
    Description:  External pseudopotentials may be specfied with this input key. The 
                  format uses the atomic symbol followed by the pseudopotential file 
                  name. pseudopotential = "Ni Ni.UPF O O.UPF" 

    Key name:     use_bessel_projectors
    Required:     no
    Key type:     boolean
    Expert:       No
    Experimental: Yes
    Default:      "false"
    Description:  When a semi-local pseudopotential is being used projectors will be 
                  generated using Bloechl's procedure with Bessel functions as the 
                  basis set if this is true. 

Kohn Sham solver options

    Key name:     davidson_max_steps
    Required:     no
    Key type:     integer
    Expert:       No
    Experimental: No
    Min value:    5
    Max value:    20
    Default:      8
    Description:  Maximum number of iterations for davidson diagonalization. 

    Key name:     davidson_multiplier
    Required:     no
    Key type:     integer
    Expert:       No
    Experimental: No
    Min value:    0
    Max value:    6
    Default:      0
    Description:  The davidson solver expands the eigenspace with the maximum 
                  expansion factor being set by the value of davidson_multiplier. 
                  Larger values often lead to faster convergence but because the 
                  computational cost of the davidson diagonalization step scales as 
                  the cube of the number of eigenvectors the optimal value based on 
                  the fastest time to solution depends on the number of orbitals. If 
                  not specified explicitly or set to 0 RMG uses the following 
                  algorithm to set the value. 
                  
                  Number of orbitals <= 600 davidson_multiplier= "4" 
                  600 < Number of orbitals <= 900 davidson_multiplier = "3" 
                  Number of orbitals > 900 davidson_multiplier = "2" 
                  
                  For very large problems the N^3 scaling makes even a factor of 2 
                  prohibitively costly and the multigrid solver is a better choice. 

    Key name:     davidson_premg
    Required:     no
    Key type:     integer
    Expert:       No
    Experimental: No
    Min value:    0
    Max value:    8
    Default:      0
    Description:  If the davidson solver is selected this parameter controls the 
                  number of multigrid steps to use before enabling davidson. 

    Key name:     kohn_sham_coarse_time_step
    Required:     no
    Key type:     double
    Expert:       Yes
    Experimental: No
    Min value:    0.000000e+00
    Max value:    1.200000
    Default:      1.000000
    Description:  Time step to use in the kohn-sham multigrid solver on the coarse 
                  levels. 

    Key name:     kohn_sham_fd_order
    Required:     no
    Key type:     integer
    Expert:       Yes
    Experimental: No
    Min value:    6
    Max value:    12
    Default:      8
    Description:  RMG uses finite differencing to represent the kinetic energy 
                  operator and the accuracy of the representation is controllable by 
                  the kohn_sham_fd_order parameter. The default is 8 and is fine for 
                  most purposes but higher accuracy is obtainable with 10th or 12th 
                  order at the cost of some additional computational expense. 

    Key name:     kohn_sham_mg_levels
    Required:     no
    Key type:     integer
    Expert:       No
    Experimental: No
    Min value:    -1
    Max value:    6
    Default:      -1
    Description:  Number of multigrid levels to use in the kohn-sham multigrid 
                  preconditioner. 

    Key name:     kohn_sham_mg_timestep
    Required:     no
    Key type:     double
    Expert:       Yes
    Experimental: No
    Min value:    0.000000e+00
    Max value:    2.000000
    Default:      0.666667
    Description:  timestep for multigrid correction. 

    Key name:     kohn_sham_mucycles
    Required:     no
    Key type:     integer
    Expert:       No
    Experimental: No
    Min value:    1
    Max value:    6
    Default:      2
    Description:  Number of mu (also known as W) cycles to use in the kohn-sham 
                  multigrid preconditioner. 

    Key name:     kohn_sham_post_smoothing
    Required:     no
    Key type:     integer
    Expert:       Yes
    Experimental: No
    Min value:    1
    Max value:    5
    Default:      2
    Description:  Number of global grid post-smoothing steps to perform after a 
                  multigrid preconditioner iteration. 

    Key name:     kohn_sham_pre_smoothing
    Required:     no
    Key type:     integer
    Expert:       Yes
    Experimental: No
    Min value:    1
    Max value:    5
    Default:      2
    Description:  Number of global grid pre-smoothing steps to perform before a 
                  multigrid preconditioner iteration. 

    Key name:     kohn_sham_solver
    Required:     no
    Key type:     string
    Expert:       No
    Experimental: No
    Default:      "davidson"
    Allowed:      "davidson" "multigrid" 
    Description:  RMG supports a pure multigrid Kohn-Sham solver as well as a 
                  multigrid preconditioned davidson solver. The davidson solver is 
                  usually better for smaller problems with the pure multigrid solver 
                  often being a better choice for very large problems. 

    Key name:     kohn_sham_time_step
    Required:     no
    Key type:     double
    Expert:       Yes
    Experimental: No
    Min value:    0.000000e+00
    Max value:    2.000000
    Default:      0.660000
    Description:  Smoothing timestep to use on the fine grid in the the kohn-sham 
                  multigrid preconditioner. 

    Key name:     prolong_order
    Required:     no
    Key type:     integer
    Expert:       Yes
    Experimental: No
    Min value:    0
    Max value:    12
    Default:      10
    Description:  Debug option that controls interpolation order used to form the 
                  charge density and to compute the kinetic component of stress. If 
                  a value of 0 is selected then an FFT will be used. 

    Key name:     unoccupied_tol_factor
    Required:     no
    Key type:     double
    Expert:       Yes
    Experimental: No
    Min value:    1.000000
    Max value:    100000.000000
    Default:      1000.000000
    Description:  When using the Davidson Kohn-Sham solver unoccupied states are 
                  converged to a less stringent tolerance than occupied orbitals 
                  with the ratio set by this parameter. 

Exchange correlation options

    Key name:     exchange_correlation_type
    Required:     no
    Key type:     string
    Expert:       No
    Experimental: No
    Default:      "AUTO_XC"
    Allowed:      "hartree-fock" "vdw-df-c09" "sla+pw+pbe+vdw1" "VDW-DF" "vdw-df" 
                  "gaupbe" "B3LYP" "hse" "mgga tb09" "AUTO_XC" "m06l" "VDW-DF-CX" 
                  "tpss" "ev93" "optbk88" "sogga" "wc" "HSE" "HCTH" "hcth" "Q2D" 
                  "q2d" "PBESOL" "tb09" "b86bpbe" "PW86PBE" "PBE0" "MGGA TB09" 
                  "pw86pbe" "REVPBE" "pbe" "revpbe" "GGA PBE" "BLYP" "pbe0" "pbesol" 
                  "blyp" "PBE" "GGA XP CP" "pw91" "GGA XB CP" "TB09" "optb86b" 
                  "olyp" "BP" "GGA BLYP" "bp" "b3lyp" "LDA" "vdw-df-cx" "PW91" "PZ" 
                  "pz" 
    Description:  Most pseudopotentials specify the exchange correlation type they 
                  were generated with and the default value of AUTO_XC means that 
                  the type specified in the pseudopotial is what RMG will use. That 
                  can be overridden by specifying a value here. 

    Key name:     exx_convergence_criterion
    Required:     no
    Key type:     double
    Expert:       No
    Experimental: No
    Min value:    1.000000e-12
    Max value:    1.000000e-06
    Default:      1.000000e-09
    Description:  Convergence criterion for the EXX delta from step to step where we 
                  assume EXX consistency has been achieved. 

    Key name:     exx_fraction
    Required:     no
    Key type:     double
    Expert:       No
    Experimental: No
    Min value:    -1.000000
    Max value:    1.000000
    Default:      -1.000000
    Description:  when hybrid functional is used, the fraction of Exx 

    Key name:     vexx_fft_threshold
    Required:     no
    Key type:     double
    Expert:       Yes
    Experimental: No
    Min value:    1.000000e-14
    Max value:    0.100000
    Default:      1.000000e-14
    Description:  The value for the EXX delta where we switch from single to double 
                  precision ffts. Single precision ffts are generally accurate 
                  enough. 

    Key name:     x_gamma_extrapolation
    Required:     no
    Key type:     boolean
    Expert:       No
    Experimental: No
    Default:      "true"
    Description:  if set true, use exx extrapolation to gamma 

Orbital occupation options

    Key name:     MP_order
    Required:     no
    Key type:     integer
    Expert:       No
    Experimental: No
    Min value:    0
    Max value:    5
    Default:      2
    Description:  Order of Methefessel Paxton occupation. 

    Key name:     dos_broading
    Required:     no
    Key type:     double
    Expert:       No
    Experimental: No
    Min value:    0.000000e+00
    Max value:    1.000000
    Default:      0.100000
    Description:  For DOS with Gaussian broading method 

    Key name:     dos_method
    Required:     no
    Key type:     string
    Expert:       No
    Experimental: No
    Default:      "tetrahedra"
    Allowed:      "Gaussian" "tetrahedra" 
    Description:  tetrahedra or gauss smearing method for DOS calculation 

    Key name:     occupation_electron_temperature_eV
    Required:     no
    Key type:     double
    Expert:       No
    Experimental: No
    Min value:    0.000000e+00
    Max value:    2.000000
    Default:      0.040000
    Description:  Target electron temperature when not using fixed occupations. 

    Key name:     occupation_number_mixing
    Required:     no
    Key type:     double
    Expert:       No
    Experimental: No
    Min value:    0.000000e+00
    Max value:    1.000000
    Default:      1.000000
    Description:  Mixing parameter for orbital occupations when not using fixed 
                  occupations. 

    Key name:     occupations_type
    Required:     no
    Key type:     string
    Expert:       No
    Experimental: No
    Default:      "Fermi Dirac"
    Allowed:      "Error Function" "Gaussian" "Tetrahedron" "Fermi Dirac" 
                  "MethfesselPaxton" "Cold Smearing" "Fixed" 
    Description:  RMG supports several different ways of specifying orbital 
                  occupations. For a spin polarized system one may specify the 
                  occupations for up and down separately. In the case of a non-zero 
                  electronic temperature these will be adjusted as the calculation 
                  proceeds based on this setting. 

    Key name:     states_count_and_occupation
    Required:     no
    Key type:     string
    Expert:       No
    Experimental: No
    Default:      ""
    Allowed:      
    Description:  Occupation string for states. Format for a system with 240 
                  electrons and 20 unoccupied states would be. "120 2.0 20 0.0" 

    Key name:     states_count_and_occupation_spin_down
    Required:     no
    Key type:     string
    Expert:       No
    Experimental: No
    Default:      ""
    Allowed:      
    Description:  Occupation string for spin down states. Format is the same as for 
                  states_count_and_occupation. Total number of states must match 
                  spin up occupation string. 

    Key name:     states_count_and_occupation_spin_up
    Required:     no
    Key type:     string
    Expert:       No
    Experimental: No
    Default:      ""
    Allowed:      
    Description:  Occupation string for spin up states. Format is the same as for 
                  states_count_and_occupation. Total number of states must match 
                  spin down occupation string. 

    Key name:     tetra_method
    Required:     no
    Key type:     string
    Expert:       No
    Experimental: No
    Default:      "Bloechl"
    Allowed:      "Optimized" "Linear" "Bloechl" 
    Description:  tetrahedron method to use 

    Key name:     unoccupied_states_per_kpoint
    Required:     no
    Key type:     integer
    Expert:       No
    Experimental: No
    Min value:    -2147483647
    Max value:    2147483647
    Default:      -1
    Description:  The number of unoccupied orbitals. A value that is 15-20% of the 
                  number of occupied orbitals generally works well. 

Charge density mixing options

    Key name:     charge_broyden_order
    Required:     no
    Key type:     integer
    Expert:       No
    Experimental: No
    Min value:    1
    Max value:    10
    Default:      5
    Description:  Number of previous steps to use when Broyden mixing is used to 
                  update the charge density. 

    Key name:     charge_density_mixing
    Required:     no
    Key type:     double
    Expert:       No
    Experimental: No
    Min value:    0.000000e+00
    Max value:    1.000000
    Default:      0.500000
    Description:  Proportion of the current charge density to replace with the new 
                  density after each scf step when linear mixing is used. 

    Key name:     charge_mixing_type
    Required:     no
    Key type:     string
    Expert:       No
    Experimental: No
    Default:      "Pulay"
    Allowed:      "Broyden" "Pulay" "Linear" 
    Description:  RMG supports Broyden, Pulay and Linear mixing When the davidson 
                  Kohn-Sham solver is selected Broyden or Pulay are preferred. For 
                  the multigrid solver Linear with potential acceleration is often 
                  (but not always) the best choice. 

    Key name:     charge_pulay_Gspace
    Required:     no
    Key type:     boolean
    Expert:       No
    Experimental: No
    Default:      "true"
    Description:  if set true, charge density mixing the residual in G space 

    Key name:     charge_pulay_order
    Required:     no
    Key type:     integer
    Expert:       No
    Experimental: No
    Min value:    1
    Max value:    10
    Default:      5
    Description:  Number of previous steps to use when Pulay mixing is used to 
                  update the charge density. 

    Key name:     charge_pulay_refresh
    Required:     no
    Key type:     integer
    Expert:       No
    Experimental: No
    Min value:    1
    Max value:    2147483647
    Default:      100
    Description:  charge Pulay mixing reset steps. 

    Key name:     drho_precond
    Required:     no
    Key type:     boolean
    Expert:       No
    Experimental: No
    Default:      "true"
    Description:  if set true, charge density residual is preconded with 
                  q^2/(q^2+q0^2) 

    Key name:     drho_precond_q0
    Required:     no
    Key type:     double
    Expert:       No
    Experimental: No
    Min value:    0.000000e+00
    Max value:    10.000000
    Default:      0.250000
    Description:  Kerker type preconditioning the charge density residual by 
                  q^2/(q^2+q0^2) 

    Key name:     ldau_mixing
    Required:     no
    Key type:     double
    Expert:       No
    Experimental: No
    Min value:    0.000000e+00
    Max value:    1.000000
    Default:      1.000000
    Description:  Proportion of the current ldau occupation to replace with the new 
                  ones after each scf step when linear mixing is used. 

    Key name:     ldau_mixing_type
    Required:     no
    Key type:     string
    Expert:       No
    Experimental: No
    Default:      "Linear"
    Allowed:      "Broyden" "Pulay" "Linear" 
    Description:  RMG supports Pulay and Linear mixing for DFT+U occupation mixing 

    Key name:     ldau_pulay_order
    Required:     no
    Key type:     integer
    Expert:       No
    Experimental: No
    Min value:    1
    Max value:    10
    Default:      5
    Description:  Number of previous steps to use when Pulay mixing is used to 
                  update the ldau occupation . 

    Key name:     ldau_pulay_refresh
    Required:     no
    Key type:     integer
    Expert:       No
    Experimental: No
    Min value:    1
    Max value:    2147483647
    Default:      100
    Description:  ldau pulay mixing reset steps 

    Key name:     ldau_pulay_scale
    Required:     no
    Key type:     double
    Expert:       No
    Experimental: No
    Min value:    0.000000e+00
    Max value:    1.000000
    Default:      1.000000
    Description:  

    Key name:     potential_acceleration_constant_step
    Required:     no
    Key type:     double
    Expert:       No
    Experimental: No
    Min value:    0.000000e+00
    Max value:    4.000000
    Default:      1.000000
    Description:  When set to a non-zero value this parameter causes RMG to perform 
                  a band by band update of the self-consistent potential during the 
                  course of an SCF step when the multigrid kohn_sham_solver is 
                  chosen. This means that updates to the lower energy orbitals are 
                  incorporated into the SCF potential seen by the higher energy 
                  orbitals as soon as they are computed. This can lead to faster 
                  convergence and better stability for many systems. The option 
                  should only be used with Linear mixing. Even when the davidson 
                  solver is chosen this parameter may be used since the first few 
                  steps with davidson usually uses the multigrid solver. 

    Key name:     resta_beta
    Required:     no
    Key type:     double
    Expert:       No
    Experimental: No
    Min value:    1.000000
    Max value:    20.000000
    Default:      8.000000
    Description:  Beta parameter for resta charge density preconditioning. A good 
                  estimate 

Relaxation and Molecular dynamics options

    Key name:     dynamic_time_counter
    Required:     no
    Key type:     integer
    Expert:       No
    Experimental: No
    Min value:    0
    Max value:    0
    Default:      0
    Description:  

    Key name:     dynamic_time_delay
    Required:     no
    Key type:     integer
    Expert:       No
    Experimental: No
    Min value:    5
    Max value:    5
    Default:      5
    Description:  

    Key name:     force_grad_order
    Required:     no
    Key type:     integer
    Expert:       No
    Experimental: No
    Min value:    0
    Max value:    12
    Default:      8
    Description:  Atomic forces may be computed to varying degrees of accuracy 
                  depending on the requirements of a specific problem. A value of 0 
                  implies highest accuracy which is obtained by using FFTs in place 
                  of finite differencing. 

    Key name:     ionic_time_step
    Required:     no
    Key type:     double
    Expert:       No
    Experimental: No
    Min value:    0.000000e+00
    Max value:    unlimited
    Default:      50.000000
    Description:  Ionic time step for use in molecular dynamics and structure 
                  optimizations. 

    Key name:     ionic_time_step_decrease
    Required:     no
    Key type:     double
    Expert:       No
    Experimental: No
    Min value:    0.000000e+00
    Max value:    1.000000
    Default:      0.500000
    Description:  Factor by which ionic timestep is decreased when dynamic timesteps 
                  are enabled. 

    Key name:     ionic_time_step_increase
    Required:     no
    Key type:     double
    Expert:       No
    Experimental: No
    Min value:    1.000000
    Max value:    3.000000
    Default:      1.100000
    Description:  Factor by which ionic timestep is increased when dynamic timesteps 
                  are enabled. 

    Key name:     max_ionic_time_step
    Required:     no
    Key type:     double
    Expert:       No
    Experimental: No
    Min value:    0.000000e+00
    Max value:    150.000000
    Default:      150.000000
    Description:  Maximum ionic time step to use for molecular dynamics or 
                  structural optimizations. 

    Key name:     max_md_steps
    Required:     no
    Key type:     integer
    Expert:       No
    Experimental: No
    Min value:    0
    Max value:    2147483647
    Default:      100
    Description:  Maximum number of molecular dynamics steps to perform. 

    Key name:     md_integration_order
    Required:     no
    Key type:     string
    Expert:       No
    Experimental: No
    Default:      "5th Beeman-Velocity Verlet"
    Allowed:      "5th Beeman-Velocity Verlet" "3rd Beeman-Velocity Verlet" "2nd 
                  Velocity Verlet" 
    Description:  Integration order for molecular dynamics. 

    Key name:     md_nose_oscillation_frequency_THz
    Required:     no
    Key type:     double
    Expert:       No
    Experimental: No
    Min value:    0.000000e+00
    Max value:    unlimited
    Default:      15.590000
    Description:  

    Key name:     md_number_of_nose_thermostats
    Required:     no
    Key type:     integer
    Expert:       No
    Experimental: No
    Min value:    5
    Max value:    5
    Default:      5
    Description:  Number of Nose thermostats to use during Constant Volume and 
                  Temperature MD. 

    Key name:     md_randomize_velocity
    Required:     no
    Key type:     boolean
    Expert:       No
    Experimental: No
    Default:      "true"
    Description:  The initial ionic velocities for a molecular dyanamics run are 
                  randomly initialized to the target temperature. 

    Key name:     md_temperature
    Required:     no
    Key type:     double
    Expert:       No
    Experimental: No
    Min value:    0.000000e+00
    Max value:    unlimited
    Default:      300.000000
    Description:  Target MD Temperature. 

    Key name:     md_temperature_control
    Required:     no
    Key type:     string
    Expert:       No
    Experimental: No
    Default:      "Nose Hoover Chains"
    Allowed:      "Anderson Rescaling" "Nose Hoover Chains" 
    Description:  Type of temperature control method to use in molecular dynamics. 

    Key name:     relax_dynamic_timestep
    Required:     no
    Key type:     boolean
    Expert:       No
    Experimental: No
    Default:      "false"
    Description:  Flag indicating whether or not to use dynamic timesteps in 
                  relaxation mode. 

    Key name:     relax_mass
    Required:     no
    Key type:     string
    Expert:       No
    Experimental: No
    Default:      "Atomic"
    Allowed:      "Equal" "Atomic" 
    Description:  Mass to use for structural relaxation, either atomic masses, or 
                  the mass of carbon for all atoms. 

    Key name:     relax_max_force
    Required:     no
    Key type:     double
    Expert:       No
    Experimental: No
    Min value:    0.000000e+00
    Max value:    unlimited
    Default:      2.500000e-03
    Description:  Force value at which an ionic relaxation is considered to be 
                  converged. 

    Key name:     relax_method
    Required:     no
    Key type:     string
    Expert:       No
    Experimental: No
    Default:      "LBFGS"
    Allowed:      "LBFGS" "MD Min" "Quick Min" "FIRE" "Fast Relax" 
    Description:  Type of relaxation method to use for structural optimizations. 

    Key name:     renormalize_forces
    Required:     no
    Key type:     boolean
    Expert:       No
    Experimental: No
    Default:      "true"
    Description:  Flag indicating whether or not to renormalize forces. 

    Key name:     tddft_time_step
    Required:     no
    Key type:     double
    Expert:       No
    Experimental: No
    Min value:    0.000000e+00
    Max value:    unlimited
    Default:      0.200000
    Description:  TDDFT time step for use in TDDFT mode 

Diagonalization options

    Key name:     extra_random_lcao_states
    Required:     no
    Key type:     integer
    Expert:       No
    Experimental: No
    Min value:    0
    Max value:    2147483647
    Default:      0
    Description:  LCAO (Linear Combination of Atomic Orbitals) is the default 
                  startup method for RMG. The atomic orbitals are obtained from the 
                  pseudpotentials but in some cases better convergence may be 
                  obtained by adding extra random wavefunctions in addition to the 
                  atomic orbitals. 

    Key name:     folded_spectrum
    Required:     no
    Key type:     boolean
    Expert:       Yes
    Experimental: No
    Default:      "false"
    Description:  When the number of eigenvectors is large using folded_spectrum is 
                  substantially faster than standard diagonalization. It also tends 
                  to converge better for metallic systems. It works with the 
                  multigrid kohn_sham_solver but not the davidson solver. 

    Key name:     folded_spectrum_iterations
    Required:     no
    Key type:     integer
    Expert:       Yes
    Experimental: No
    Min value:    0
    Max value:    20
    Default:      2
    Description:  Number of folded spectrum iterations to perform. 

    Key name:     folded_spectrum_width
    Required:     no
    Key type:     double
    Expert:       Yes
    Experimental: No
    Min value:    0.100000
    Max value:    1.000000
    Default:      0.300000
    Description:  Submatrix width to use as a fraction of the full spectrum. The 
                  folded spectrum width ranges from 0.10 to 1.0. For insulators and 
                  semiconductors a value of 0.3 is appropriate. For metals values 
                  between 0.15 to 0.2 tend to be better. The default value is 0.3 

    Key name:     initial_diagonalization
    Required:     no
    Key type:     boolean
    Expert:       No
    Experimental: No
    Default:      "true"
    Description:  Perform initial subspace diagonalization. 

    Key name:     period_of_diagonalization
    Required:     no
    Key type:     integer
    Expert:       No
    Experimental: No
    Min value:    0
    Max value:    2147483647
    Default:      1
    Description:  Diagonalization period (per scf step). Mainly for debugging and 
                  should not be changed for production. 

    Key name:     scalapack_block_factor
    Required:     no
    Key type:     integer
    Expert:       No
    Experimental: No
    Min value:    4
    Max value:    2048
    Default:      32
    Description:  Block size to use with scalapack. Optimal value is dependent on 
                  matrix size and system hardware. 

    Key name:     subdiag_driver
    Required:     no
    Key type:     string
    Expert:       No
    Experimental: No
    Default:      "auto"
    Allowed:      "rocsolver" "elpa" "cusolver" "auto" "scalapack" "magma" "lapack" 
    Description:  Driver type used for subspace diagonalization of the eigenvectors. 

    Key name:     subdiag_groups
    Required:     no
    Key type:     integer
    Expert:       No
    Experimental: No
    Min value:    1
    Max value:    16
    Default:      1
    Description:  Number of scalapack or elpa groups. 

Performance related options

    Key name:     fd_allocation_limit
    Required:     no
    Key type:     integer
    Expert:       Yes
    Experimental: No
    Min value:    1024
    Max value:    262144
    Default:      65536
    Description:  Allocation sizes in finite difference routines less than this 
                  value are stack rather than heap based. 

    Key name:     mpi_queue_mode
    Required:     no
    Key type:     boolean
    Expert:       No
    Experimental: No
    Default:      "true"
    Description:  Use mpi queue mode. 

    Key name:     non_local_block_size
    Required:     no
    Key type:     integer
    Expert:       No
    Experimental: No
    Min value:    64
    Max value:    40000
    Default:      512
    Description:  Block size to use when applying the non-local and S operators. 

    Key name:     preconditioner_threshold
    Required:     no
    Key type:     double
    Expert:       Yes
    Experimental: No
    Min value:    1.000000e-09
    Max value:    0.100000
    Default:      0.100000
    Description:  The RMS value of the change in the total potential where we switch 
                  the preconditioner from single to double precision. 

    Key name:     require_huge_pages
    Required:     no
    Key type:     boolean
    Expert:       No
    Experimental: Yes
    Default:      "false"
    Description:  If set RMG assumes that sufficient huge pages are available. Bad 
                  things may happen if this is not true. 

    Key name:     rmg_threads_per_node
    Required:     no
    Key type:     integer
    Expert:       Yes
    Experimental: No
    Min value:    0
    Max value:    64
    Default:      0
    Description:  Number of Multigrid/Davidson threads each MPI process will use. A 
                  value of 0 means set automatically. 

    Key name:     spin_manager_thread
    Required:     no
    Key type:     boolean
    Expert:       Yes
    Experimental: No
    Default:      "true"
    Description:  When mpi_queue_mode is enabled the manager thread spins instead of 
                  sleeping. 

    Key name:     spin_worker_threads
    Required:     no
    Key type:     boolean
    Expert:       Yes
    Experimental: No
    Default:      "true"
    Description:  When mpi_queue_mode is enabled the worker threads spin instead of 
                  sleeping. 

    Key name:     state_block_size
    Required:     no
    Key type:     integer
    Expert:       Yes
    Experimental: No
    Min value:    1
    Max value:    2147483647
    Default:      64
    Description:  State block size used in nlforce. Larger values require more 
                  memory but can 

    Key name:     use_alt_zgemm
    Required:     no
    Key type:     boolean
    Expert:       No
    Experimental: No
    Default:      "false"
    Description:  Flag indicating whether or not to use alternate zgemm 
                  implementation. 

    Key name:     use_async_allreduce
    Required:     no
    Key type:     boolean
    Expert:       No
    Experimental: No
    Default:      "true"
    Description:  RMG uses MPI_Allreduce function calls in several places and for 
                  large problems these can account for a significant fraction of the 
                  total run time. In most cases using the asynchronous MPI versions 
                  of the functions is faster but this is not true for all platforms 
                  and in that casesetting this flag to false can improve 
                  performance. 

    Key name:     use_hwloc
    Required:     no
    Key type:     boolean
    Expert:       No
    Experimental: No
    Default:      "false"
    Description:  Use internal hwloc setup if available. If both this and use_numa 
                  are true hwloc takes precedence. 

    Key name:     use_numa
    Required:     no
    Key type:     boolean
    Expert:       No
    Experimental: No
    Default:      "true"
    Description:  Numa stands for Non Uniform Memory Access and means that the main 
                  memory of a computer is organized into seperate distinct banks. 
                  Each bank is then attached to a CPU core or group of cores and 
                  while all cores can normally access all banks the access speed is 
                  faster for directly attached banks. Ensuring that individual CPU 
                  cores mostly access memory in banks they are directly attached to 
                  can have a large impact on performance. Process mapping that does 
                  this can normally be done when jobs are submitted and run via 
                  arguments to mpirun/mpiexec but if this is not done RMG will 
                  attempt to provide an optimal mapping if use_numa is set to true. 

LDAU options

    Key name:     Hubbard_U
    Required:     no
    Key type:     string
    Expert:       No
    Experimental: No
    Default:      ""
    Allowed:      
    Description:  Hubbard U parameter for each atomic species using the format 
                  Hubbard_U="Ni 6.5 3d 0.0 0.0 0.0" 

    Key name:     ldaU_mode
    Required:     no
    Key type:     string
    Expert:       No
    Experimental: No
    Default:      "None"
    Allowed:      "Simple" "None" 
    Description:  Type of lda+u implementation. 

    Key name:     ldaU_radius
    Required:     no
    Key type:     double
    Expert:       No
    Experimental: No
    Min value:    1.000000
    Max value:    12.000000
    Default:      9.000000
    Description:  Max radius of atomic orbitals to be used in LDA+U projectors. 

TDDFT related options

    Key name:     restart_tddft
    Required:     no
    Key type:     boolean
    Expert:       No
    Experimental: No
    Default:      "false"
    Description:  restart TDDFT 

    Key name:     tddft_mode
    Required:     no
    Key type:     string
    Expert:       No
    Experimental: No
    Default:      "electric field"
    Allowed:      "point charge" "electric field" 
    Description:  TDDFT mode 

    Key name:     tddft_qgau
    Required:     no
    Key type:     double
    Expert:       No
    Experimental: No
    Min value:    0.000000e+00
    Max value:    unlimited
    Default:      1.000000
    Description:  Gaussian parameter for point charge to Gaussian charge 

    Key name:     tddft_qpos
    Required:     no
    Key type:     double array
    Expert:       No
    Experimental: No
    Default:      "Not done yet"
    Description:  cartesian coordinate of the point charge for tddft 

    Key name:     tddft_start_state
    Required:     no
    Key type:     integer
    Expert:       No
    Experimental: No
    Min value:    0
    Max value:    2147483647
    Default:      0
    Description:  the starting state to use in tddft dynamics 

    Key name:     tddft_steps
    Required:     no
    Key type:     integer
    Expert:       No
    Experimental: No
    Min value:    0
    Max value:    2147483647
    Default:      2000
    Description:  Maximum number of tddft steps to perform. 

Poisson solver options

    Key name:     hartree_max_sweeps
    Required:     no
    Key type:     integer
    Expert:       No
    Experimental: No
    Min value:    5
    Max value:    100
    Default:      10
    Description:  Maximum number of hartree iterations to perform per scf step. 

    Key name:     hartree_min_sweeps
    Required:     no
    Key type:     integer
    Expert:       No
    Experimental: No
    Min value:    0
    Max value:    5
    Default:      5
    Description:  Minimum number of hartree iterations to perform per scf step. 

    Key name:     hartree_rms_ratio
    Required:     no
    Key type:     double
    Expert:       No
    Experimental: No
    Min value:    1000.000000
    Max value:    unlimited
    Default:      100000.000000
    Description:  Ratio between target RMS for get_vh and RMS total potential. 

    Key name:     poisson_coarse_time_step
    Required:     no
    Key type:     double
    Expert:       Yes
    Experimental: No
    Min value:    0.400000
    Max value:    1.000000
    Default:      0.800000
    Description:  Time step to use in the poisson multigrid solver on the coarse 
                  levels. 

    Key name:     poisson_coarsest_steps
    Required:     no
    Key type:     integer
    Expert:       Yes
    Experimental: No
    Min value:    10
    Max value:    100
    Default:      25
    Description:  Number of smoothing steps to use on the coarsest level in the 
                  hartree multigrid solver. 

    Key name:     poisson_finest_time_step
    Required:     no
    Key type:     double
    Expert:       Yes
    Experimental: No
    Min value:    0.400000
    Max value:    1.000000
    Default:      1.000000
    Description:  Time step to use in the poisson multigrid solver on the finest 
                  level. 

    Key name:     poisson_mg_levels
    Required:     no
    Key type:     integer
    Expert:       No
    Experimental: No
    Min value:    -1
    Max value:    6
    Default:      -1
    Description:  Number of multigrid levels to use in the hartree multigrid solver. 

    Key name:     poisson_mucycles
    Required:     no
    Key type:     integer
    Expert:       Yes
    Experimental: No
    Min value:    1
    Max value:    4
    Default:      3
    Description:  Number of mu (also known as W) cycles to use in the hartree 
                  multigrid solver. 

    Key name:     poisson_post_smoothing
    Required:     no
    Key type:     integer
    Expert:       Yes
    Experimental: No
    Min value:    1
    Max value:    6
    Default:      1
    Description:  Number of global hartree grid post-smoothing steps to perform 
                  after a multigrid iteration. 

    Key name:     poisson_pre_smoothing
    Required:     no
    Key type:     integer
    Expert:       Yes
    Experimental: No
    Min value:    1
    Max value:    6
    Default:      2
    Description:  Number of global hartree grid pre-smoothing steps to perform 
                  before a multigrid iteration. 

    Key name:     poisson_solver
    Required:     no
    Key type:     string
    Expert:       No
    Experimental: No
    Default:      "pfft"
    Allowed:      "pfft" "multigrid" 
    Description:  poisson solver. 

    Key name:     charge_analysis_period
    Required:     no
    Key type:     integer
    Expert:       No
    Experimental: No
    Min value:    0
    Max value:    500
    Default:      0
    Description:  How often to perform and write out charge analysis. 

    Key name:     output_rho_xsf
    Required:     no
    Key type:     boolean
    Expert:       No
    Experimental: No
    Default:      "false"
    Description:  Generate xsf format for electronic density. 

    Key name:     write_eigvals_period
    Required:     no
    Key type:     integer
    Expert:       No
    Experimental: No
    Min value:    1
    Max value:    100
    Default:      5
    Description:  How often to output eigenvalues in units of scf steps. 

    Key name:     write_orbital_overlaps
    Required:     no
    Key type:     boolean
    Expert:       No
    Experimental: No
    Default:      "false"
    Description:  If true the orbital overlap matrix from successive MD steps is 
                  written. 

    Key name:     write_pdos
    Required:     no
    Key type:     boolean
    Expert:       No
    Experimental: No
    Default:      "false"
    Description:  Flag to write partial density of states. 

    Key name:     write_pseudopotential_plots
    Required:     no
    Key type:     boolean
    Expert:       No
    Experimental: No
    Default:      "false"
    Description:  Flag to indicate whether or not to write pseudopotential plots. 

Testing options

    Key name:     test_bond_length
    Required:     no
    Key type:     double
    Expert:       No
    Experimental: No
    Min value:    0.000000e+00
    Max value:    20.000000
    Default:      nan
    Description:  Expected dimer bond length for testing. 

    Key name:     test_bond_length_tolerance
    Required:     no
    Key type:     double
    Expert:       No
    Experimental: No
    Min value:    1.000000e-04
    Max value:    0.100000
    Default:      1.000000e-03
    Description:  Test bond length tolerance. 

    Key name:     test_energy
    Required:     no
    Key type:     double
    Expert:       No
    Experimental: No
    Min value:    -1000000000.000000
    Max value:    1000000000.000000
    Default:      nan
    Description:  Expected final energy for testing. 

    Key name:     test_energy_tolerance
    Required:     no
    Key type:     double
    Expert:       No
    Experimental: No
    Min value:    1.000000e-08
    Max value:    1.000000e-04
    Default:      1.000000e-07
    Description:  Test final energy tolerance. 

    Key name:     test_steps
    Required:     no
    Key type:     integer
    Expert:       No
    Experimental: No
    Min value:    0
    Max value:    1000
    Default:      0
    Description:  Expected number of scf steps for testing. 

    Key name:     test_steps_tolerance
    Required:     no
    Key type:     integer
    Expert:       No
    Experimental: No
    Min value:    0
    Max value:    10
    Default:      1
    Description:  Test scf steps tolerance. 

Miscellaneous options

    Key name:     E_POINTS
    Required:     no
    Key type:     integer
    Expert:       No
    Experimental: No
    Min value:    201
    Max value:    201
    Default:      201
    Description:  

    Key name:     Emax
    Required:     no
    Key type:     double
    Expert:       No
    Experimental: No
    Min value:    -100.000000
    Max value:    100.000000
    Default:      0.000000e+00
    Description:  

    Key name:     Emin
    Required:     no
    Key type:     double
    Expert:       No
    Experimental: No
    Min value:    -100.000000
    Max value:    100.000000
    Default:      -6.000000
    Description:  

    Key name:     ExxCholMax
    Required:     no
    Key type:     integer
    Expert:       No
    Experimental: No
    Min value:    1
    Max value:    64
    Default:      8
    Description:  maximum number of Exx integral cholesky vectors 

    Key name:     ExxIntCholosky
    Required:     no
    Key type:     boolean
    Expert:       No
    Experimental: No
    Default:      "true"
    Description:  if set true, Exx integrals are Cholesky factorized to 3-index 

    Key name:     alt_laplacian
    Required:     no
    Key type:     boolean
    Expert:       Yes
    Experimental: No
    Default:      "true"
    Description:  Flag indicating whether or not to use alternate laplacian weights 
                  for some operators. 

    Key name:     boundary_condition_type
    Required:     no
    Key type:     string
    Expert:       No
    Experimental: No
    Default:      "Periodic"
    Allowed:      "Periodic" 
    Description:  Boundary condition type Only periodic is currently implemented. 

    Key name:     charge_analysis
    Required:     no
    Key type:     string
    Expert:       No
    Experimental: No
    Default:      "Voronoi"
    Allowed:      "Voronoi" "None" 
    Description:  Type of charge analysis to use. Only Voronoi deformation density 
                  is currently available. 

    Key name:     cube_pot
    Required:     no
    Key type:     boolean
    Expert:       No
    Experimental: No
    Default:      "false"
    Description:  if set true, total potential is printed out in cube format 

    Key name:     cube_rho
    Required:     no
    Key type:     boolean
    Expert:       No
    Experimental: No
    Default:      "false"
    Description:  if set true, charge density is printed out in cube format 

    Key name:     cube_states_list
    Required:     no
    Key type:     string
    Expert:       No
    Experimental: No
    Default:      ""
    Allowed:      
    Description:  plot the states listed here 

    Key name:     cube_vh
    Required:     no
    Key type:     boolean
    Expert:       No
    Experimental: No
    Default:      "false"
    Description:  if set true, hatree potential is printed out in cube format 

    Key name:     dftd3_version
    Required:     no
    Key type:     integer
    Expert:       No
    Experimental: No
    Min value:    2
    Max value:    6
    Default:      3
    Description:  Grimme's DFT-D3 versions, 

    Key name:     dipole_correction
    Required:     no
    Key type:     integer array
    Expert:       No
    Experimental: No
    Default:      "0 0 0 "
    Description:  (1,1,1) for molecule, dipole correction in all directions. 

    Key name:     dipole_moment
    Required:     no
    Key type:     boolean
    Expert:       No
    Experimental: No
    Default:      "false"
    Description:  Turns on calculation of dipole moment for the entire cell. 

    Key name:     ecutrho
    Required:     no
    Key type:     double
    Expert:       No
    Experimental: No
    Min value:    0.000000e+00
    Max value:    10000.000000
    Default:      0.000000e+00
    Description:  ecut for rho in unit of Ry. 

    Key name:     ecutwfc
    Required:     no
    Key type:     double
    Expert:       No
    Experimental: No
    Min value:    0.000000e+00
    Max value:    10000.000000
    Default:      0.000000e+00
    Description:  ecut for wavefunctions in unit of Ry. 

    Key name:     electric_field_magnitude
    Required:     no
    Key type:     double
    Expert:       No
    Experimental: No
    Min value:    0.000000e+00
    Max value:    unlimited
    Default:      0.000000e+00
    Description:  Magnitude of external electric field. 

    Key name:     electric_field_vector
    Required:     no
    Key type:     double array
    Expert:       No
    Experimental: No
    Default:      "Not done yet"
    Description:  Components of the electric field. 

    Key name:     equal_initial_density
    Required:     no
    Key type:     boolean
    Expert:       No
    Experimental: No
    Default:      "false"
    Description:  Specifies whether to set initial up and down density to be equal. 

    Key name:     exx_int_flag
    Required:     no
    Key type:     boolean
    Expert:       No
    Experimental: No
    Default:      "false"
    Description:  If set true, calculate the exact exchange integrals. 

    Key name:     fast_density
    Required:     no
    Key type:     boolean
    Expert:       Yes
    Experimental: No
    Default:      "false"
    Description:  Use a faster but less accurate method to generate the charge 
                  density from the electronic wavefunctions. As the cutoff 
                  (grid-density) increases this method improves in accuracy. This 
                  option should be set to false if you receive warnings about 
                  negative charge densities after interpolation. 

    Key name:     freeze_occupied
    Required:     no
    Key type:     boolean
    Expert:       No
    Experimental: Yes
    Default:      "false"
    Description:  Flag indicating whether or not to freeze the density and occupied 
                  orbitals after a restart. 

    Key name:     gw_residual_convergence_criterion
    Required:     no
    Key type:     double
    Expert:       No
    Experimental: Yes
    Min value:    1.000000e-14
    Max value:    4.000000e-04
    Default:      1.000000e-06
    Description:  The max value of the residual for unoccupied orbitals when 
                  performing a GW calculation. 

    Key name:     gw_residual_fraction
    Required:     no
    Key type:     double
    Expert:       No
    Experimental: Yes
    Min value:    0.000000e+00
    Max value:    1.000000
    Default:      0.900000
    Description:  The residual value specified by gw_residual_convergence_criterion 
                  is applied to this fraction of the total spectrum. 

    Key name:     kohn_sham_ke_fft
    Required:     no
    Key type:     boolean
    Expert:       Yes
    Experimental: No
    Default:      "false"
    Description:  Special purpose flag which will force use of an FFT for the 
                  kinetic energy operator. 

    Key name:     kpoints
    Required:     yes
    Key type:     string
    Expert:       No
    Experimental: No
    Default:      ""
    Allowed:      
    Description:  Normally kpoints are specified using the kpoint_mesh and 
                  kpoint_is_shift options but one can also enter a list of kpoints 
                  and their weights with this option. If kpoint_mesh is not 
                  specified or this is a bandstructure calculation this is required 
                  otherwise it is optional. 

    Key name:     kpoints_bandstructure
    Required:     no
    Key type:     string
    Expert:       No
    Experimental: No
    Default:      ""
    Allowed:      
    Description:  List of kpoints to use in a bandstructure calculation. For more 
                  detailed information look at the github wiki page on kpoint 
                  calculations. 

    Key name:     lcao_use_empty_orbitals
    Required:     no
    Key type:     boolean
    Expert:       No
    Experimental: No
    Default:      "false"
    Description:  Some pseudopotentials contain unbound atomic orbitals and this 
                  flag indicates whether or not they should be used for LCAO starts. 

    Key name:     md_steps_offset
    Required:     no
    Key type:     integer
    Expert:       No
    Experimental: No
    Min value:    0
    Max value:    0
    Default:      0
    Description:  

    Key name:     num_wanniers
    Required:     no
    Key type:     integer
    Expert:       No
    Experimental: No
    Min value:    0
    Max value:    2147483647
    Default:      0
    Description:  number of wannier functions to be used in wannier90 

    Key name:     rmg2bgw
    Required:     no
    Key type:     boolean
    Expert:       No
    Experimental: Yes
    Default:      "false"
    Description:  Write wavefunction in G-space to BerkeleyGW WFN file. 

    Key name:     scf_steps_offset
    Required:     no
    Key type:     integer
    Expert:       No
    Experimental: No
    Min value:    0
    Max value:    0
    Default:      0
    Description:  

    Key name:     sqrt_interpolation
    Required:     no
    Key type:     boolean
    Expert:       Yes
    Experimental: No
    Default:      "false"
    Description:  Flag indicating whether or not to use square root technique for 
                  density interpolation. 

    Key name:     total_scf_steps_offset
    Required:     no
    Key type:     integer
    Expert:       No
    Experimental: No
    Min value:    0
    Max value:    0
    Default:      0
    Description:  

    Key name:     use_cpdgemr2d
    Required:     no
    Key type:     boolean
    Expert:       No
    Experimental: No
    Default:      "true"
    Description:  if set to true, we use Cpdgemr2d to change matrix distribution 

    Key name:     use_gpu_fd
    Required:     no
    Key type:     boolean
    Expert:       No
    Experimental: Yes
    Default:      "false"
    Description:  Use gpus for kohn-sham orbital finite differencing. Depending on 
                  the balance of hardware characteristics this can provide a 
                  significant speedup but individual testing is required. 
                  Experimental. 

    Key name:     vxc_diag_nmax
    Required:     no
    Key type:     integer
    Expert:       No
    Experimental: No
    Min value:    1
    Max value:    10000
    Default:      1
    Description:  Maximum band index for diagonal Vxc matrix elements. 

    Key name:     vxc_diag_nmin
    Required:     no
    Key type:     integer
    Expert:       No
    Experimental: No
    Min value:    1
    Max value:    10000
    Default:      1
    Description:  Minimum band index for diagonal Vxc matrix elements. 

    Key name:     wannier90_scdm
    Required:     no
    Key type:     integer
    Expert:       No
    Experimental: No
    Min value:    -2147483647
    Max value:    2
    Default:      0
    Description:  use scdm method to set the trial wannier functions 

    Key name:     wannier90_scdm_sigma
    Required:     no
    Key type:     double
    Expert:       No
    Experimental: No
    Min value:    0.000000e+00
    Max value:    unlimited
    Default:      1.000000
    Description:  when wannier90 is used to build wannier functions, the energy 
                  window parameter 

    Key name:     z_average_output_mode
    Required:     no
    Key type:     string
    Expert:       No
    Experimental: No
    Default:      "None"
    Allowed:      "potential and charge density" "wave functions" "None" 
    Description:  z_average_output_mode.