The appendix gives a complete description of all the keywords that may be given in the INTBMD input file. List of all the keywords in alphabetical order :
calc_elocal = T | F
Default : T
When this switch in T the code will compute the local energy on each ions. In TB it is possible to define such a quantity because of the implicit atomic basis set.
calc_forces = T | F
Default : T
Indicates if forces should be calculated or not. If this flag is set to F and elec_gs_algo or elec_md_algo = 2 (i.e. diagonalization of the Hamiltonian matrix is performed) then the eigenvectors will not be calculated, only the eigenvalues. If you are only interested in the energy you may use this flag, this will substantially speed up calculations.
calc_stress = T | F
Default : calc_forces
Indicates if the stress tensor should be calculated or not.
debug = 0|1|2|3
Default : 0
The keyword controls the amount of diagnostic information that is printed by the program. If debug is set to 1, you will get a tracing of all the main routines that are executed, which may be useful to locate a bug.
NOTE : The amount of output generated for debug > 1 is not yet tuned properly, so it might be pretty large depending on the number of atoms in the system. This will be fixed in the beta version.
dt = time step in fs
Default: 1.0 fs.
dt supplies the time step for integrating the equations of motion of the system during a molecular dynamics simulation. Given in fs.
elec_charge_tol = charge tolerance in frcation of the number of electrons.
Default: 10-8
With unconstrained CG minimization the total charge is not constrained to be equal to the number of electrons (hence the name!). The energy functional that is used in the algorithme guarantees that at the minimum the system will have the right the number of electrons. This parameter controls the precision to which the minimization will converge the total charge.
elec_evergy_tol = energy tolerance in eV.
Default: 10-6 eV.
Precision to which the iterative CG minimization of the electronic energy will be done. This value is critical to obtain well converged forces and hence a good conservation of the total energy.
elec_gs_algo = 0 (CP), 1 (CG), 2/3 (diagonalization) or 4 (KPM).
Default : 2
Algorithm used to find the electronic ground state, for the first MD and subsequent steps. For the moment the possibles choices are:
elec_start = 0 (random) | 1 (read from file)
Default: 0
This parameter controls how the wavefunctions are initialized at the start of the simulation:
emass = fictitious mass of the electrons for CP dynamics
Default: 10.0
This specifies the fictitious mass of the electrons used for doing Car-Parinello type molecular-dynamics.
eta = some real value.
Default: 50 eV
Value of the parameter chemical potential used in unconstrained CG minimization.
NOTE : make sure to use a large enough value, if too small the unconstrained minimization will give unpredictable results. The default of 50.0 was found to be large enough for most cases.
ionic_algo = 0 (MD), 1 (CG) or 3 (fixed velocities).
Default : 0 (MD)
Algorithm used to move the ions. The possible choices are:
Molecular dynamics, ionic_algo=0
This the default type of simulation when
number_of_ionic_steps > 0. By default the simulation is
performed in the microcanonical ensemble. Simulations in the canonical ensemble are also
possible by using a thermostat. The initial velocities are either read from POSTBMD
or randomly drawn from a Maxwellian distribution for a temperature specified with the
temperature keyword.
Conjugate-gradient minimization, ionic_algo=1
In this mode the total energy of the systems is minimized using the CG algorithm. The minimization
is stopped when one of the following is true: (i) the maximum number of steps (as specified by
the number_of_ionic_steps keyword) has been reached, (ii) the
change in total energy is smaller than the tolerance given by the ions_delta_e
keyword or (iii) when the components of all forces are smaller than the tolerance given by the ions_max_force keyword.
Fixed velocities, ionic_algo=3
This mode is mostly used to do frozen phonon calculations. In this mode the at each time step
the velocities times the time step are added to the positions. It is recommended to fix the
velocities with a magnitude of 1.0 and adjust the time step (see keyword dt).
ionic_eom_algo = 1 (Verlet) or 2 (Velocity-Verlet)
Default : 1
Algorithm used to integrate the ionic equations of motions.
Default is 0.0.
This keyword gives the friction coefficient used to damp the motion of the ions. It is required when you use Langevin dynamics.
ionic_thermostat = 0 (none) | 1 ( Nosé-Hoover) | 2 (Langevin)
Default : 0 (none)
Indicates if and what kind of thermostat should be used for the ions when doing molecular dynamics.
The temperature of the system will fluctuate around the value supplied with the keyword temperature.
The default is to have no thermostat, in which case the simulation will be done in the micro-canonical ensemble.
If you choose a Nosé-Hoover thermostat (ionic_thermostat = 1) then you will have to choose an appropriate ``mass'' for it as specified by the q_nose_ions keyword. For large enough systems and a correct choice of the mass of the thermostat the MD will sample the canonical ensemble. The Nosé-Hoover thermostat allows to define a new constant of motion which is monitored in the ENE.OUT file.
If you choose to use a Langevin ``thermostat'' you will be required to give a friction coefficient by setting the keyword ionic_friction. Since the Langevin dynamics is a stochastic method the total energy of the system is not conserved, this fact may be exploited to use a larger time step for the MD.
ions_delta_e = total energy tolerance in eV.
Default: 1E-10 eV.
This keyword is used to specify the tolerance in the total energy that is used during conjugate-gradient minimization of the ionic coordinates. If the change in total energy from one CG step to the next is smaller than the tolerance the minimization is considered converged and the minimization is stopped. Since the change in energy during minimization is not monotonous we recommend that you rather use a convergence criterion based on the ionic forces (see ions_max_force).
ions_max_force = tolerence for the maximum force component in eV/Ang.
Default: 1E-4 eV/Ang.
This keyword is used to specify the tolerance in the maximum force component that is used during conjugate-gradient minimization of the ionic coordinates. If the maximum force component on any atom is smaller than the tolerance the minimization is considered converged and the minimization is stopped.
mass = atomic mass in amu
Default: as read from the TBPARAM file.
Specifies the mass of the ions. Should be given in atomic mass units.
max_elec_iter = Maximum number of CG iteration to find the electronic ground state.
Default: 10
max_elec_iter = Minimum number of CG iterations done at every MD step.
Default = 3
non_orth = T | F
Default : set internally depending on the TB model used.
Flag used to indicate if the TB model used is orthogonal or not. It is not recommended to change this flag, since this is set by defaults depending on which TB model you are using.
number_of_electrons = number of electrons in the system.
Default : values calculated from the number of electrons/atoms found in TBPARAM.
You can change the number of electrons in the system if you want simulate charged systems, but the resulting Coulomb interaction due to the periodic boundary conditions is not taken into account.
number_of_ionic_steps = number of ionic steps (sic).
Default : 0 (i.e. the ions remain fixed).
Indicates the number of ionic MD or relaxation steps.
number_of_moments = number of moments used in the KPM.
Default : 100.
Sepcifies the number of Chebyshev moments that are used in the kernel polynomial method. The more moments the more accurate the calculation of the energy and of the forces will be. The number of moments needed for a given accuracy depends on the systems, so it is recommended to do careful convergence tests.
n_h_dup = number of replicas for the Hamiltonian
Default : number of processors
Determines how many times the Hamiltonian is replicated in a parallel job. The default is the number of processors, which means that the Hamiltonian is split over all the processors in the run. In the memory on the each nodes is large enough, you may want to set n_h_dup to the number of precessors, this will minimize communications among processors while using the KPM.
number_of_states = number of states included in the calculation
Default : number_of_electrons/2 for insulators (i.e. sigma = 0) plus some extra states for metals (i.e. sigma > 0).
The number of extra states included for metals is a guess, so if the occupation of the highest state is not negligible you may need to increase this number by hand. Also for insulators you may want to include a few unoccupied states to determine the band gap.
pair_pot_used = T | F
Default : set internally depending on the TB model used.
Some tight-binding models use a pair potential in addition to the band-structure energy to calculate the total electronic energy. You can switch this part of the code on/off with this flag. But be aware that if the TB model uses a pair-potential setting this switch to F may have unpredictable consequences.
output_level = 0 ... 3
Default: 1
Controls the amount of output written to OUTTBMD. This only affects the output from the iterative CG minimization routine.
q_nose_ions = Mass associated with the Nosé thermostat for the ions.
r_cut = Cut-off radius in Angstroms.
Default : taken from the parameter file TBPARAM.
Cut-off radius used to define nearest-neighbor lists.
save_freq = integer value.
Default : 1
Frequency at which the system status is printed to OUTTBMD, ionic positions to save to POS, energies to ENE or the current restart information is save to POSCONT, etc, ...
save_to_file = <physical_property> [file_name],
where <physical_property> is one of
the keywords described below.
Default : None
This keyword is used to choose which information is saved every save_freq ionic steps. The physical quantities that can be saved are given in the table below together with their respective keywords (only the first three letters count) and default file names.
| Property | Keyword | Default filename |
| positions | pos | POS |
| energies | ene | ENE |
| velocities | vel | VEL |
| forces | for | FOR |
| eigenvalues | eig | EIG |
save_wfs = 0 | 1 | 2
Default : 0
Parameter that controls whether or not and when the wavefunctions are saved to the WFS file:
scc_used = T | F
Default : F
Parameter that controls whether or not a self-consistent (SC) calculation is performed. For the moment this only possible in conjuction with CG minimization. The SC is done using a simple Hubbard U model.
sigma = width of the Fermi broadening (
) in eV
Default : 0.01 eV
This variable indicated the width of the Fermi broadening function used for calculated the occupation of the states close to the Fermi level. If you want to do calculations without fractional occupancies set sigma to zero.
start = 0 | 1
Default : 0
Switch that indicates whether or not to read the restart information from the POSTBMD file. This KW is usually used in conjuction with the POSCONT file to continue a stopped/crashed simulation.
temperature = Temperature of system in Kelvin.
Default : 300 K
If the initial velocities are not provided in POSTBMD then this value is used to initialize the velocities. Furthermore if you use a thermostat, this specifies the target temperature.
start = 0 | 1 | 2
Default : 1
Switch that indicates how the velocites are initialized:
Florian Kirchhoff