Input Parameters: IN.PARAM

Note

The name of the main input file (e.g. ‘IN.PARAM’) must be specified in ‘control/filename’.

The main input file is divided into sections corresponding to different controls. Sections start with *SECTION_NAME and end with *end. To disable any section, simply prepend section title with a #.

To disable section SECTION_NAME_2

*SECTION_NAME_1
...
*end

#*SECTION_NAME_2
...
*end

Each section is futher divided into subsections, given by a title in parentheses (e.g. (QM-Nodes)), where input control parameters are defined. To disable any subsection, simply prepend subsection title with a ‘#’.

Example: To disable subsection_2 in section *SECTION_NAME

*SECTION_NAME
(subsection_1)

#(subsection_2)

(subsection_3)
*end

Note

Any unnecessary sections or subsections may be removed from input.file, depending on your simulation needs (recommended only for advanced users).

Parallel Section: *parallel

(QM-Nodes)

npx, npy, npz = [1|even integer] [1|even integer] [1|even integer]

Default **npx** = 1 **npy** = 1 **npz** = 1

QM-Nodes is a space delimited set of three integers npx, npy, npz. QXMD uses a hybrid spatial and band decompisition for parallel computing, and this set of three integers multiplied together defines the number of MPI ranks.

(k-points)

npk = [integer]

Default **npk** = 1

Defines the number of MPI ranks to parallelize k-point sampling. See section 5.8 for k-point sampling.

(MD-nodes)

md_npx, md_npy, md_npz = [1|even integer] [1|even integer] [1|even integer]

Default: **md_npx =1 , md_npy =1, md_npz** = 1

MD-Nodes is a space delimited set of three integers: md_npx, md_npy, md_npz.

These variables are used only for spatial decomposition inclassical MD and divide-and-conqure QMD simulations. For linear scaling DFT please see reference. [1] [2] [3] [4] [5] [6]

Start(on/off) Section

(On/Off)

lstart = [boolean]

Default **lstart** =  ``.FALSE.``

.FALSE. : Start self-consistent field (SCF) iteration using a random initial wavefunction

.TRUE. : Continue SCF iteration from a previous run’s output wavefunction.

Note

QM_* output files must be present in the data/ directory from the previous calculation.

Determines whether you would like to restart a successfully completed simulation. Note that if you are restarting a NAQMD simulation, you will also want to set ltddft_start to .TRUE. in the *TDDFT-MD section to properly restart a successfully completed simulation.

TDDFT-MD

(On/Off)

ltddft = [boolean]

Default **ltddft** =  ``.FALSE.``

.FALSE. : Execute Adiabtic QMD based on density functional theory (DFT)

.TRUE. : Execute non-adiabtic QMD (NAQMD) based on time-dependent density functional theory (TDDFT). [7]

Determines whether to run QMD simulation under adiabatic or non-adiabatic methods. Adiabatic methods simulate thermodynamic system in ground state equilibrium, while non-adiabatic methods simulate electronic excitations.

(FSSH)

ltddft_fssh = [boolean]

Default **ltddft_fssh** = .TRUE.

.TRUE. : Perform NAQMD based on Fewest Switches Surface Hopping (FSSH) method

.FALSE. : [8]. Perform NAQMD based on based on

Note

Ehrenfest dynamics (not yet implemented).

Determines the implementation method for electron state dynamics in NAQMD. Fewest Switches surface hopping method is proposed by J. Tully [8] molecular dynamics simulation of the processes including electronic transition. Next few flags ask for the specification of FSSH method

(FSSH-switch)

lfssh_switch = [boolean]

Default **lfssh_switch** = .TRUE.

.TRUE. : Allow electrons to move between excited states.

.FALSE.: Keep electronic occupations fixed.

Determines whether electronic occupations can change throughout the NAQMD simulation.

(FSSH-ground-state-SCF)

lfssh_gsscf = [boolean]

Default **lfssh_gsscf** =  ``.FALSE.``

.TRUE. : SCF iterations performed based on the ground state

.FALSE.:SCF with the excited state

Note

This parameter should always be set to .TRUE. to obtain convergence.

(FSSH-charge mixing)

imxchg_fssh = 0 | 1 | 2 | 3 aslh_fssh, bslh_fssh = [real] [real]

Default **imxchg_fssh** = 1
imxchg_fssh Charge Mixing Method
0 No Mixing
1 Pulay [9] 0.9, 0.6(Recommended values)
2 Anderson
3 Simple

imxchg_fssh is used to specify the method for charge mixing during SCF iterations, while aslh_fssh and bslh_fssh are used as tuning parameters. Note that this section is only considered when lfssh_gsscf is set to .TRUE.

(FSSH-random-initialize)

lfssh_random = [boolean] rseed_fssh = [real]

Default **lfssh_random** = .FALSE.

lfssh_random = .TRUE. : Automatically seed random number generator. lfssh_random = .FALSE. : Specify the seed for the random number generator with value given by rseed_fssh.

Determines how to specify the seed for the random number generator used by the FSSH method.

(Boltzmann factor for upward transition)

lfssh_boltzmn = [boolean]

Default **lfssh_boltzmn** = .TRUE.

.TRUE. : Multiply electronic transition probability by the Boltzmann factor.

.FALSE. : Leave electronic transtion probability unaltered.

Determines whether or not to multiply the electronic transition probability by the Boltzmann factor when the electronic excitation energy increases due to the transition. This is used in order to approximately satisfy the detailed balance condition.

(velocity scaling)

lfssh_vscale = [boolean] tminimum = [real]

Default **lfssh_vscale** = .FALSE.

.TRUE. : Rescale atomic velocities.

.FALSE. : Do not rescae atomicvelocities.

Determines whether or not to rescale atomic velocities upon electronic excitation. tminimum gives the minimum temperature in [K] and is used to constrain velocity scaling.

(time step)

dttddft = [real]

Default **dttddft** = 0.02d0

Gives the time step in [a.u.] for numerically integrating the TDDFT equations.

(parallel calculation)

lfssh_parallel = [boolean]

Default **lfssh_parallel** = .TRUE.

.TRUE. : Solves time-dependent K-S equations in parallel .FALSE. : Solves time-dependent K-S equations serially.

Determines whether or not to perform TDDFT calculations in parallel.

(restart)

ltddft_start = [boolean]

Default **ltddft_start** = .FALSE.

.FALSE. : Initialize electronic occupations as specified in the (occupations) subsection .TRUE. : Initialize electronic occupations with their values from the last step of a previously completed simulation. All files beginning with QM_* and MD_* must be present in the data/ directory.

Determines how to initialize electronic excitations for an NAQMD simulation. Note that if you are continuing a calculation by setting lstart to .TRUE. in the *start(on/off), you usually want ltddft_start to be set to .TRUE. as well to properly restart a successfully completed simulation.

(initial exciton)

nexciton = [integer] iband_hole, iband_electron, ldegenerate = [integer] [integer] [boolean]

Default **nexciton** = 0

nexciton = total number of excitons iband_hole = band index of the hole. iband_electron = band index of the electron. ldegenerate = .TRUE. : triplet ldegenerate = .FALSE. : singlet

This set of variables are used to define an exciton in linear-reponse TDDFT. Thus, these variables are only read when lrtddft is set to .TRUE. in the *linear-response TDDFT section.

nexciton gives the total number of excitons to be initially created and should be followed by that many lines of space delimted values for iband_hole, iband_electron, ldegenerate, where each set specifies one exciton. nexciton should be only be set to 0 or 1, as higher numbers of excitons is not gaurenteed to work.

Example:

(initial exciton)
    1
    10  11  .FALSE.

(ground state force)

lfssh_gsfrc = [boolean]

Default **lfssh_gsfrc** = .FALSE.

.TRUE. : ground state forces are used in FSSH .FALSE. : the excited state forces are used.

Note that this variable is only read if lfssh_gsscf is set to .TRUE. in the (FSSH-ground-state-SCF) subsection.

(NSC force)

ltddft_nscforce = [boolean]

Default **ltddft_nscforce** = .TRUE.

.TRUE. : On .FALSE.: Off

Determines whether or not to calculate excited state forces using a non-self-consistent (NSC) method.

(occupations)

nocc_change = [integer] num_band, occ_new = [integer] [real] [real]

nocc_change = total number of bands with electronic occupation number to be changed. num_band = band index for occupation change. occ_new = new occupation number for the corresponding band for up (and down) electrons.

nocc_change gives the total number of bands that will undergo a change in electronic occupation number and should be followed by that many lines of space delimted values for num_band, occ_new, where each set specifies the band index undergoing a change in its electron occupation values. If not using spin polarization, only the first number in the occ_new varibale will be read. If using spin-polarization, you must set lspin to .TRUE. in the *spin polarization section, then, you may specify the number of up electrons to move with the first number in the occ_new varibale set and the number of down electrons to move with the second number in the occ_new varibale set.

Example for no spin-polarization: This example shows how to excited both electrons in band index 10 and both electrons in band index 11, to band indices 12 and 13 (four total electrons changing occupation). This assumes that in the ground state band indicies 10 and 11 are fully occupied and band indices 12 and 13 are empty.

(occupations)
4
10   0.0   0.0
11   0.0   0.0
12   2.0   0.0
13   2.0   0.0

Example for spin-polarization: This example shows how to excite the up electron in band index 10 and the down electron in band index 11 to band indices 12 and 13, respectively (two total electrons changing occupation). This assumes that in the ground state band indicies 10 and 11 are fully occupied and band indices 12 and 13 are empty.

(occupations)
2
10   0.0   1.0
11   1.0   0.0
12   1.0   0.0
13   0.0   1.0

(broadening)

tdbroad = [real]

Default **tdbroad** = 0.0

Determines the width of Gaussian broadening of the Fermi surface in [K]. Note: tdbroad = 0.0 denotes no broadening.

(DISH)

lfssh_dish = [boolean] ndishpair = [integer] ndishi, ndishj, decoherence_rate = [integer] [integer] [real]

Default **lfssh_dish** = .FALSE. **ndishpair** = 0

lfssh_dish = .TRUE. : Enables Decoherence-Induced Surface Hopping (DISH) lfssh_dish = .FALSE. : Disables DISH ndishpair = the number of state pairs ndishi, ndishj, decoherence_rate = the two band indices between which to define the decoherence rate in [a.u.] for DISH

Example:

(DISH)
 .true.
   6
   23   24  5.063109E-03
   23   25  5.117713E-03
   23   26  4.5.5.83E-03
   24   25  7.877069E-03
   24   26  7.426337E-03
   25   26  2.768402E-03

The decoherence rate for each pair of states is given by Jaeger [10]:

rate = sqrt(alpha),

where alpha is a parameter of gaussian

gaus(alpha,t) = exp(-alpha*t*t)

which is fitted to the dephasing function

dij(t) = exp(-gij(t))

with

gij(t) = int^t_0 intg(t') dt'

and

int g(t) = int_t^0 Cij(t)

Cij(t) is an autocorrelation function of the energy gap between two states

Cij(t) = <(Eij(t)-Eij_ave)(Eij(0)-Eij_ave)>
       = <(Eij(t)*Eij(0)> - Eij_ave*Eij_ave
where Eij(t) = Ei(t) - Ej(t)

Approximation for Exchange

(approximation)

jgga = 1|2|3|4|5.5

Default **jgga** = 2
jgga Excahnge functional
1 LDA [11]
2 GGA(PBE)[12]

jgga is used to specify the exchange correction functional.

(DFT-D)

ldftd = [boolean]

Default **ldftd** = .FALSE.

.TRUE. : Employ an empirical vdW correction .FASLE. : Do not use an empirical vdW correction

Determines whether to use an empirical correction for the van der Waals interaction proposed by S. Grimme [13] [14]

SCF iterations

(global iterations)

iscfmx = [integer]

Default **iscfmx** = 100

Gives the maximum number of global iterations of SCF to be performed.

(tolerances)

tolpot = [real] tolres = [real]

Default **tolpot** = 5.0d-09 **tolres** = 5.0d-09

tolpot gives the tolerance for change in total energy. Once the change in total energy between subsequent SCF iterations is smaller than the tolerance, the SCF iterations are considered to have converged. tolres similarly gives the tolerance for average residual.

(charge mixing)

imxchg = [0|1|2|3|4|5.5] aslh, bslh = [real] [real]

Default **imxchg** = 1
imxchg Charge Mixing Method
0 No Mixing
1 Pulay
2 Anderson
3 Simple
4 Srivastava
5 Johnson
6 Johnson w/ variable weights

Determines which charge mixing method will be used, along with tuning parameters for that method.

(number of mixing)

itratn = [integer]

Default **itratn** = 10

Determines how many charge densities from previous SCF iterations to use for charge mixing. Not available for imxchg = [0|3].

Kohn-Sham equation

(On/Off)

ihldam = [1|2]

Default **ihldam** = 1

1 : Conjugate-Gradient (CG) Method 2 : Residual minimization scheme, direct inversion in the iterative subspace (RMM-DIIS) Method

Determines the method used in the iterative minimization of energy as a functional of wavefunctions.

(tolerance)

toleig = [real]

Default **toleig** = 1.d-10

Gives the tolerance for the Kohn-Sham equations.

(threshold for w.f. direction)

threinn = [real]

Default **threinn** = 0.0

Gives the threshold for direction of new wavefunction

(iteration)

itermx = [integer]

Default **itermx** = 4

Gives the maximum number of iterations.

(empty-band iteration)

iteremx = [integer]

Default **iteremx** = 4

Gives the maximum number of iterations for empty bands.

(CG method)

methodcg = [1|2]

Default **methodcg** = 2

1:line minimization 2:BKL [ref]

Gives the method used of CG This variable is only read if ihldam == 1

molecular dynamics

(On/Off)

ifmd = [0|1|2|3|4|5.7]

Default **ifmd** = 0
ifmd Type of Dynamics
0 Single Step
1 Optimization
2 NVE
3 NVT [15]
4 NPT [15]
5 NVT for each atom
10 MSST [16] [17]

Determines the type of QMD simulation to run. Add short description of each type.

(time step)

dtmd, nstop = [real] [integer]

Default **dtmd** = 50.0 **nstop** = 10

dtmd gives the time step for QMD simulation in [a.u.], while nstop gives the total number of time steps to simulate. Thus, the total simulation time will equal (nstop * dtmd)

(initial step number)

nstep_ini = [integer]

Default **nstep_ini** = 0

Gives the initial step number. This varibale is ignored for lstart == .TRUE.

(temperature)

treq = [real]

Default **treq** = 300.0

Gives the initial temperature in [K] for NVE, NVT, and NPT QMD simulations.

(check temperature)

liscale = [boolean] iscnum = [integer] iscstp = [integer]

Default **liscale** = .FALSE. **iscnum** = 25 **iscstp** = 20

liscale = .FALSE. : Do not scale temperature. liscale = .TRUE. : Scale temperature a total of iscstp times, with iscnum steps in between each scaling.

Determines whether and how to scale temperature to keep it near the initial given temperature.

(make total momentum zero)

lmomzero = [boolean]

Deafault: lmomzero = .FALSE.

.TRUE. : Make the total momentum zero. .FALSE. : Do not

(optimization)

ioptmze = [-1|0|1|2|3|10]

Default **ioptmze** = 2
ioptmze Type of Structural Optimization
-1 Do not optimize atomic coords
0 Conjugate gradient
1 Projected velocity Verlet
2 Quasi-Newton method with BFGS formula

Determines method for structural optimization of atomic coordinates. This varibale is onlt read when ifmd == 1.

(cell optimization)

ioptmze_cell = [-1|0|1|2]

Default **ioptmze_cell** = -1
ioptmze_cell Type of Cell Optimization
-1 Do not optimize supercell
0 Conjugate gradient
1 Not yet implemented
2 Quasi-Newton method with BFGS formula

Determines method for optimization of (super)cell. This varibale is only read when ifmd == 1, and is not not read when ioptmze == 1 or 10.

(cell CG time step)

dtcellcg = [real]

Default **dtcellcg** = 0.1

only for Conjugate gradient method (ifmd == 1 & ioptmze_cell == 0).

(stabilizer for quasi-Newton)

gammamin = [real]

Default **gammamin** = 0.1

only for quasi-Newton method (ifmd == 1 & ioptmze == 2).

(clear Hessian)

ibfgsclear = [0|1]

Default

ibfgsclear = 0

1: Clear Hessian after every ibfgsclear step 0: Hessian is not cleared

(clear cell Hessian)

iclearcellh = [integer]

Default **iclearcellh** = 0

Clear Hessian every iclearcellh step. If iclearcellh == 0, the Hessian is not cleared.

(hybrid optimization)

lhybridopt = [boolean] nstep_hybrid = [integer] nstep_hybrid_cell = [integer]

Default **lhybridopt** = .TRUE. **nstep_hybrid** = 10

nstep_hybrid_cell = 10

lhybridopt = .TRUE. : Perform structural optimization first, then cell optimization. lhybridopt = .FALSE. : Perform cell optimization first, then structural optimization.

nstep_hybrid is the time step for structural optimization. nstep_hybrid_cell is the time step for cell optimization. These variables are only read for optimization calculations(ifmd == 1 & ioptmze >= 0 & ioptmze_cell >= 0 )

(pressure)

hpext = [real]

Default **hpext** = 0.0

Defines the pressure in [GPa] for NPT-MD & MSST (ifmd == 4, 10) & ioptmze_cell >= 0.

(barostat parameters)

tbomega = [real] blkmod = [real]

Default **tbomega** = 5500.0 **blkmod** = 250.0

Barostat parameters for NPT (ifmd == 4). tbomega gives the time scale for barostat in [a.u.], and blkmod gives the bulk modulus in [GPa].

(shock wave velocity)

shockspeed = [real] nshockv(1:3) = [0|1, 0|1, 0|1]

Default **shockspeed** = 2000.0 **nshockv(1:3)** = (/1,0,0/)

These variables are only read for MSST (ifmd == 10). They define the shockspeed and the shock direction. For example:

nshockv(1:3) = 1 0 0: L1 direction nshockv(1:3) = 0 1 0: L2 direction nshockv(1:3) = 0 0 1: L3 direction nshockv(1:3) = 1 1 0: L1 + L2 direction

(clear barostat velocity)

lmsstscale = [boolean] msstscnum = [integer] msstscstp = [integer]

Default **lmsstscale** = .FALSE. **msstscnum** = 20 **msstscstp** = 500

These variables are only read for MSST (ifmd == 10).

(initial barostat velocity)

vxmsst = [real]

Default **vxmsst** = 0.0

Defines the initial barostat velocity. Only read for MSST (ifmd == 10).

(output data)

ioskip = [integer] locoor, ioskipcoor = [boolean, integer]

Defines what data to output for MD-nodes.

(charge estimation)

ichest = [integer]

Default **ichest** = 3

Number of previous steps

(wavefunction estimation)

ihest = [integer]

Number of previous steps

(tolerance)

tol_energy = [real] tol_force = [real]

tolerance for CG optimization (ifmd == 1 ). tol_energy given in energy/atom in [a.u.]. tol_force gives maximum force in [a.u.].

save data

(On/Off)

lsave = [boolean]

Default **lsave** = .TRUE.

Whether or not to save data…which data?

(data type)

lsreal8 = [boolean]

Default **lsreal8** = .TRUE.

.TRUE. : Saves data as real8 .FALSE. : Saves data as integer2

Determines the data type for saved data

stress calculation —— only for bulk calculations

(On/Off)

lstress = [boolean]

Default **lstress** = .TRUE.

.TRUE. : Estimate the stress .FASLE. : Do not estimate the stress

Determines whether to estimate the stress.

(skip step)

nskip_stress = [integer]

Default **nskip_stress** = 5

nskip_stress is skip step to estimate the stress.

dump charge density

(On/Off)

ldpchg = [boolean]

Default **ldpchg** = .FALSE.

.TRUE. : Output charge density .FASLE. : Do not output

Determines whether to output the charge density.

(skip step)

nskip_dpchg = [integer]

Default **nskip_dpchg** = 5

nskip_dpchg is skip step to output the charge density.

(output area)

x_min x_max = [real] [real] y_min y_max = [real] [real] z_min z_max = [real] [real]

Default **x_min** **x_max** = 1.0 0.0 **y_min** **y_max** = 1.0 0.0

z_min z_max = 1.0 0.0

These parameter specify the area to output the charge density. They are reduced coordinates. If [x|y|z]_min > [x|y|z]_max, output are is the whole space.

dump wavefunctions

(On/Off)

ldpwav = [boolean]

Default **ldpwav** = .FALSE.

.TRUE. : Output wavefunction .FASLE. : Do not output

Determines whether to output the wavefunction.

(bands)

(ibstt1, ibstt2) = [integer] [integer]

Default (**ibstt1**, **ibstt2**) = (/ 0, 0 /)

The wavefunction will be output from ibstt1 to ibstt2. ibstt1 and ibstt2 are the index of bands. If both ibstt1 and ibstt2 are zero, all bands will be output.

(skip step)

nskip_dpwav = [integer]

Default **nskip_dpwav** = 5

nskip_dpwav is skip step to output the wavefunction.

(output area)

x_min x_max = [real] [real] y_min y_max = [real] [real] z_min z_max = [real] [real]

Default **x_min** **x_max** = 1.0 0.0 **y_min** **y_max** = 1.0 0.0

z_min z_max = 1.0 0.0

These parameter specify the area to output the wavefunction. They are reduced coordinates. If [x|y|z]_min > [x|y|z]_max, output are is the whole space.

dump local potential

(On/Off)

ldppot = [boolean]

Default **ldppot** = .FALSE.

.TRUE. : Output local potential .FASLE. : Do not output

Determines whether to output the local potential.

(average plane)

nav_dppot = [1|2|3]

Default **nav_dppot** = 1
nav_dppot Plane
1 xy
2 yz
3 zx

The plane-averaged local potential will be output.

(skip step)

nskip_dppot = [integer]

Default **nskip_dppot** = 5

nskip_dppot is skip step to output the local potential.

(output area)

x_min x_max = [real] [real] y_min y_max = [real] [real] z_min z_max = [real] [real]

Default **x_min** **x_max** = 1.0 0.0 **y_min** **y_max** = 1.0 0.0

z_min z_max = 1.0 0.0

These parameter specify the area to output the local potential. They are reduced coordinates. If [x|y|z]_min > [x|y|z]_max, output are is the whole space.

supercell

(unit of length)

(bohr) or (ang)

Default (bohr)

Determines the unit of supercell (bohr or angstrom). And the supercell is specified by either cell vector or ‘lengths and angles’. You need comment out the subsection you do not specify. Note that for cluster calculations, the supercell has to be ORTHORHOMBIC.

(cell vector)

L1 = [real] [real] [real] L2 = [real] [real] [real] L3 = [real] [real] [real]

Example:

10.68   0.0    0.0        : super cell vector L1
 0.0   10.68   0.0        : super cell vector L2
 0.0    0.0   10.68       : super cell vector L3

(lengths & angles)

Example:

10.68,  10.68,  10.68  :  lengths of cell vectors
90.00,  90.00,  90.00  :  angles between cell vec. in [deg.]

planewaves

(unit of cutoff energy)

(ry) or (hr) or (ev)

Default (ry)

Determines the unit of cutoff energy.

(for wavefuctions)

ecut = [real]

ecut is the cutoff energy to expand wavefunctions.

(for electron density)

ecutdens = [real]

Default **ecutdens** = 0.0

ecutdens is the cutoff energy to expand electron density. ecutdens must be greater than ecutsoft. if .not.lvand, ecutdens must be equal to ecutsoft.

(for soft part of density)

ecutsoft = [real]

Default **ecutorth** = 0.0

ecutsoft is the cutoff energy to expand soft part of electron density. It must be greater than ecut, and smaller than ecut*4.

(for orthogonalization)

ecutorth = [real]

Default **ecutorth** = 0.0

ecutorth is the cutoff energy for orthogonalization in CG iteration.

(for charge density mixing)

ecutc = [real]

Default **ecutc** = 0.0

ecutc is the cutoff energy for charge density mixing.

electronic bands

(occupied bands)

noband = [integer]

Default **noband** = 0

The number of occupied bands should at least be sufficient to accommodate all the valence electrons in the simulation.

(empty bands)

neband = [integer]

Default **neband** = 0

A good rule of thumb is to set neband equal to 10% of occupied bands.

(broadening)

lfermi = [integer] flag tfermi = [real]

Default **lfermi** = 3 **tfermi** = 2000.0

lfermi = 1 for Non-metallic systems, lfermi = 2 for Fermi smearing, lfermi = 3 for Gaussian smearing and lfermi > 3 for Methfessel-Paxton smearing scheme of order lfermi-3

(charge number of ion)

ncion = [integer]

Default **ncion** = 0. For calculation of electronically non-neutral

systems. The number of electrons is given by nel-ncion. Charged-periodic calculations are perfomed with the uniform background.

Atoms

(species)

ntype = [integer]

Default **ntype** = 0

Number of atom types. The subsequent sections must be duplicated ntype times.

(atomic number)

zatom = [integer]

Default **zatom** = No default

Atomic number of the current atom type

(partial core correction)

lpcc = [boolean] rpcc = [real] lpking = [boolean] rpking = [real] gpkgmax = [real] gpkgexct = [real]

Default **lpcc** = No default **rpcc** = No default **lpking** = No

default rpking = No default gpkgmax = No default gpkgexct = No default

Psuedopotential formalism treat core and valence electron seperately. Partial core correction includes the effect of core charge as a perturbation which increase the transferrability of the code. It is recommended to use partial core correction. Please see paper by Louie et al.

(the number of atoms)

nhk = [integer]

Default **nhk** = 0

Number of atoms of the current type. If nhk is zero, then atomic configuration is read from the positions file

(unit of length)

(bohr) or (ang)

Default No default

(position file)

fname = [String] scaledflag* = [integer] keyword* = [integer]

Default **fname** = No default **scaledflag**\ \* = No default

keyword* = No default

Filename to read atomic positions from. Filenames are given with reference to the current working directory. scaledflag determines if the aomtic positions in the coordinate file are in real or scaled units. Atoms of this type are denoted by the integer keyword in the corrdinates file.

The structure of ‘CONFIGURATION_FILE’ is as follows.

ntotal
n_1      x_1      y_1      z_1
n_2      x_2      y_2      z_2
...      ...      ...      ...
n_ntotal x_ntotal y_ntotal z_ntotal

The coordinates for (n_i == keyword) are selected.

(positions)

nunitcells = [integer][integer][integer] scaledflag* = [integer] nhk lines of positions = [real][real][real]

Default **nunitcells** = No defaults **scaledflag**\ \* = No defaults

nunitcells gives the number of unit cells along the x, y and z directions. The flag scaledflag defines if the atomic positions are defined in real or scaled coordinates (scaledflag = 1 is scaled coordinates, scaledflag = 2 is real coordinates).

If ‘1 (scaled)’ is selected, the scaled coordinates ( 0.0 < x,y,z < 1.0 ) have to be given above. If ‘2 (real)’ is selected, the real coordinates ( in a.u. ) have to be given like below.

 2                            : 1:scaled, 2:real coordinates
  0.00d0  0.00d0  0.00d0      : If '2 (real)' is selected,
 10.34d0 10.34d0 10.34d0      :  the real coordinates ( in a.u. )
 10.34d0  0.00d0 10.34d0      :  have to be given.
0.00d0 10.34d0 10.34d0

(velocity file)

fname = [String] keyword* = [integer]

Default **fname** = No default **keyword**\ \* = No default

fname is the filename to read atomic velocities from. Filename is given with reference to the current working directory. Atoms of this type are denoted by the integer keyword in the velocities file.

The structure of ‘VELOCITY_FILE’ is as follows.

ntotal
vmax                              : maximum velocity in (a.u.)
n_1      vx_1      vy_1      vz_1 : an integer & scaled velocity
n_2      vx_2      vy_2      vz_2
...      ...       ...       ...
n_ntotal vx_ntotal vy_ntotal vz_ntotal

The velocities for (n_i == keyword) are selected.

(velocities)

nunitcells = [integer][integer][integer] scalingfactor* = [real] nhk lines of scaled velocities = [real][real][real] . Ensure that -1.0 < velocities < 1.0

Default **nunitcells** = No defaults **scalingfactor**\ \* = No

defaults

nunitcells gives the number of unit cells along the x, y and z directions. Atomic velocities are initialized by multiplying the vector velocities by the scalingfactor.

[1]Fuyuki Shimojo, Rajiv K. Kalia, Aiichiro Nakano, and Priya Vashishta. Linear-scaling density-functional-theory calculations of electronic structure based on real-space grids: design, analysis, and scalability test of parallel algorithms. Computer Physics Communications, 140(3):303–314, 2001. doi:10.1016/S0010-4655(01)00247-8.
[2]Fuyuki Shimojo, Rajiv K. Kalia, Aiichiro Nakano, and Priya Vashishta. Embedded divide-and-conquer algorithm on hierarchical real-space grids: parallel molecular dynamics simulation based on linear-scaling density functional theory. Computer Physics Communications, 167(3):151–164, 2005. doi:10.1016/j.cpc.2005.01.005.
[3]F. Shimojo, S. Ohmura, W. Mou, R. K. Kalia, A. Nakano, and P. Vashishta. Large nonadiabatic quantum molecular dynamics simulations on parallel computers. Computer Physics Communications, 184(1):1–8, 2013. doi:10.1016/j.bbr.2011.03.031.
[4]Manaschai Kunaseth, Rajiv K. Kalia, Aiichiro Nakano, Ken-ichi Nomura, and Priya Vashishta. A scalable parallel algorithm for dynamic range-limited <i>n</i> -tuple computation in many-body molecular dynamics simulation. Proceedings of the International Conference for High Performance Computing, Networking, Storage and Analysis on - SC ‘13, pages 1–12, 2013. URL: http://dl.acm.org/citation.cfm?doid=2503210.2503235, doi:10.1145/2503210.2503235.
[5]Ken-Ichi Nomura, Rajiv K. Kalia, Aiichiro Nakano, Priya Vashishta, Kohei Shimamura, Fuyuki Shimojo, Manaschai Kunaseth, Paul C. Messina, and Nichols A. Romerod. Metascalable quantum molecular dynamics simulations of hydrogen-on-demand. SC14: International Conference for High Performance Computing, Networking, Storage and Analysis, pages 661–673, 2014. URL: http://ieeexplore.ieee.org/document/7013041/, doi:10.1109/SC.2014.59.
[6]Fuyuki Shimojo, Shinnosuke Hattori, Rajiv K. Kalia, Manaschai Kunaseth, Weiwei Mou, Aiichiro Nakano, Ken Ichi Nomura, Satoshi Ohmura, Pankaj Rajak, Kohei Shimamura, and Priya Vashishta. A divide-conquer-recombine algorithmic paradigm for large spatiotemporal quantum molecular dynamics simulations. Journal of Chemical Physics, 2014. doi:10.1063/1.4869342.
[7]Erich Runge and E. K. U. Gross. Density-functional theory for time-dependent systems. Physical Review Letters, 52(12):997–1000, 1984. doi:10.1103/PhysRevLett.52.997.
[8](1, 2) John C. Tully. Molecular dynamics with electronic transitions. The Journal of Chemical Physics, 93(2):1061–1071, 1990. doi:10.1063/1.459170.
[9]Péter Pulay. Convergence acceleration of iterative sequences. the case of scf iteration. Chemical Physics Letters, 73(2):393–398, 1980. doi:10.1016/0009-2614(80)80396-4.
[10]Heather M. Jaeger, Sean Fischer, and Oleg V. Prezhdo. Decoherence-induced surface hopping. Journal of Chemical Physics, 2012. doi:10.1063/1.4757100.
[11]J. P. Perdew and Alex Zunger. Self-interaction correction to density-functional approximations for many-electron systems. Physical Review B, 23(10):5048–5079, 1981. doi:10.1103/PhysRevB.23.5048.
[12]John P. Perdew, Kieron Burke, and Matthias Ernzerhof. Generalized gradient approximation made simple. Physical Review Letters, 77(18):3865–3868, 1996. URL: https://link.aps.org/doi/10.1103/PhysRevLett.77.3865, doi:10.1103/PhysRevLett.77.3865.
[13]Stefan Grimme. Accurate description of van der waals complexes by density functional theory including empirical corrections. Journal of Computational Chemistry, 25(12):1463–1473, 2004. doi:10.1002/jcc.20078.
[14]Stefan Grimme. Semiempirical gga-type density functional constructed with a long-range dispersion correction. Journal of Computational Chemistry, 27(15):1787–1799, 2006. URL: http://doi.wiley.com/10.1002/jcc.20495, doi:10.1002/jcc.20495.
[15](1, 2) Glenn J. Martyna, Mark E. Tuckerman, Douglas J. Tobias, and Michael L. Klein. Explicit reversible integrators for extended systems dynamics. Molecular Physics, 87(5):1117–1157, 1996. URL: http://www.tandfonline.com/doi/abs/10.1080/00268979600100761, doi:10.1080/00268979600100761.
[16]Kohei Shimamura, Masaaki Misawa, Satoshi Ohmura, Fuyuki Shimojo, Rajiv K. Kalia, Aiichiro Nakano, and Priya Vashishta. Crystalline anisotropy of shock-induced phenomena: omni- directional multiscale shock technique. Applied Physics Letters, 108(7):071901–071901, 2016. URL: http://dx.doi.org/10.1063/1.4942191 http://aip.scitation.org/doi/10.1063/1.4942191, doi:10.1063/1.4942191.
[17]Kohei Shimamura, Masaaki Misawa, Ying Li, Rajiv K. Kalia, Aiichiro Nakano, Fuyuki Shimojo, and Priya Vashishta. A crossover in anisotropic nanomechanochemistry of van der waals crystals. Applied Physics Letters, 107(23):231903–231903, 2015. URL: http://dx.doi.org/10.1063/1.4937268,http://aip.scitation.org/doi/10.1063/1.4937268, doi:10.1063/1.4937268.