Skip to content

Input file: in.pmd

pmd starts with reading setting file in.pmd and atom-configuration files pmdini. So simulation settings except the atom configuration must be described in in.pmd.

Example of in.pmd

#
#  unit of time  = femto sec
#  unit of length= Angstrom
#  unit of mass  = unified atomic mass unit
#
  io_format         ascii
  print_level       1
  num_omp_threads   4

  time_interval     2d0
  num_iteration     1000
  min_iteration     10
  num_out_energy    100

  flag_out_pos      2
  num_out_pos       10
# out_pos_combined  F

  force_type        Morse Coulomb
  cutoff_radius     5.8d0
  cutoff_buffer     0.2d0

  flag_damping      0
  damping_coeff     0.99d0
  converge_eps      1d-4
  converge_num      3

  initial_temperature    -1.0d0
  final_temperature      -1.0d0
  temperature_control     none
  temperature_target      300.0
  temperature_relax_time  100.0

  factor_direction 3 2
    1.000d0  1.000d0  1.000d0
    1.000d0  0.000d0  1.000d0

  stress_control      none
  stress_relax_time   100.0
  stress_target    5.0  5.0  5.0  0.0  0.0  0.0

  boundary   ppp

Here, lines begin with ! or # are treated as comment lines.

Warning

This example is for NVE-MD with Morse and Coulomb potentials. Modify this in order to match your simulation.

Input parameters

num_nodes_x

  • Default: -1

Number of division in x, y, or z direction. If one of these is non-positive (<=0), these numbers are automatically estimated from the system size and the number of MPI processes used. If all of these are positive, specified values are used.


num_omp_threads

  • Default: -1

Number of threads for OpenMP parallelization. If not positive, use the value given by the environment variable OMP_NUM_THREADS. This is only effective when the pmd is compiled with OpenMP compiler option, such as -fopenmp in the case of gfortran.

It is recommended to set it less than 8, and in the case of using 3-body force-fields 4 would be appropriate.


io_format

  • Default: ascii

You can choose either ascii or binary format of atom-configuration files. When you perform large scale simulation, you should choose binary for efficient reading/writing atom-configuration files.


  • Default: 1

How much information is written out during the run.

  • 1 -- Normal information for MD simulation run.
  • 100 -- Debug info is written out.

time_interval

  • Default: 1.0

Time interval in the unit of femto second. If negative, it activates variable time-step mode and its absolute value is the maximum time interval \(\Delta t_{\max}\) in the mode. Appropriate range of dt_max would be 2.0 to 5.0 depending on the minimum mass of ion in the system.


vardt_length_scale

  • Default: 0.1

The specific length \(L^*\) of the variable time-step mode where the time interval is determined as

\[\begin{equation} \Delta t = \min \left( \Delta t_\mathrm{max}, \frac{L^*}{v_\mathrm{max}}\right). \end{equation}\]

num_iteration

  • Default: 0
  • Alternative: num_steps

Number of MD steps. Simulation time equals time_interval times num_iteration.


min_iteration

  • Default: 0
  • Alternative: min_steps

Minimum number of MD steps. In the case you want the MD simulation at least min_iteration, you can set this parameter.


num_out_energy

  • Default: 1000

Number of outputs of energies.


flag_out_pos

  • Default: 1
  • Alternative: flag_out_pmd

The flag whether or not to write atomic configurations to files at certain steps.

  • 0 -- Not to write.
  • 1 -- Write pmd-format atomic configurations to files pmd_#### where #### indicates sequential number of the files.
  • 2 -- Write LAMMPS dump-fomrat atomic configurations to files dump_####.

num_out_pos

  • Default: 10
  • Alternative: num_out_pmd

Number of atom-configuration files to be written.


flag_write_force

  • Default: F (false)

The flag whether or not to write atomic forces in the atomic configuration files. This flag is applicable to the pmd-format.


combine_out_pos

  • Default: F (false)

Whether or not combine position data into one file. (Availble since rev230307.)


flag_sort

  • Default: 1

A flag whether or not to sort the order of atoms by tag before writing out atomic configurations to a file.

  • 0 -- Not to sort
  • 1 -- Heap sort

dump_aux_order

  • Default: ekin epot sxx syy szz syz sxz sxy

Order of atomic attributes written in each line of atom data following atomic positions in the case LAMMMPS dump-format is chosen for output.

Available atomic attributes are as follows:

  • v? -- velocity component, ? is either x, y, or z. These entry must be written before the following entries.
  • ekin/eki -- kinetic energy
  • epot/epi -- potential energy
  • s?? -- stress tensor component, ?? is either xx,yy,zz,yz,xz,xy
  • chg -- charge
  • chi -- electronegativity
  • tei -- electronic temperature
  • clr -- color charge

force_type

  • Default: None

Choice of the interatomic potential. Available potentials are listed below:

  • LJ : Lennard-Jones potential for Ar system.
  • SW_Si : Stillinger-Weber potential for Si system.
  • EDIP_Si : Environment Dependent Interatomic Potential for Si system.
  • Ito3_WHe : EAM potential for W-He system made by Ito et al. at NIFS.
  • Morse : Morse potential that requires an input files in.params.Morse.
  • Coulomb : Coulomb potential that requires an input files in.params.Coulomb.
  • DNN : Neural-network potential that requires two input files in.params.desc and in.params.NN.

flag_damping

  • Default: 0

A flag whether or not damp atom velocities.

  • 0 -- No damping.
  • 1 -- Simple damped MD using the following damping_coeff.
  • 2 -- FIRE algorithm. This is usually much faster and stabler than the simple damped MD.

damping_coeff

  • Default: 0.9

Damping coefficient.


converge_eps

  • Default: 1d-4

Convergence criterion in eV. If it is negative value, not to stop because of convergence.


converge_num

  • Default: 1

Convergence is achieved if the convergence criterion is sufficed this times successively.


initial_temperature

  • Default: -1.0

Initial temperature of all atoms. If negative, employ the velocities loaded from pmdini (initial configuration).


final_temperature

  • Default: -1.0

Final temperature of all atoms. If this is positive value, target temperature changes linearly from initial_temperature to final_temperature during the simulation within num_iteration.


temperature_control

  • Default: none

Temperature-control method, none, Berendsen, and Langevin are now available. These keywords are character-case agnostic, so any of berendsen, Berendsen, BERENDSEN will be changed to berendsen in the program. This applies to stress_control as well.


flag_multi_temp

  • Default: F, .false.

Whether or not use multiple temperature targets. The format of temperature_target changes depending on this flag.


temperature_target

  • Default: 300.0

Target temperature (K). For example:

temperature_target   300.0

If flag_multi_temp is .true., the format becomes as,

temperature_target   1   300.0

This means the target temperature of atoms with ifmv=1 is 300 K.


temperature_limit

  • Default: 1.0d+4

The limit of temperature used to check whether the MD is running correctly. Once the system temperature exceeds this limit, pmd stops with an error message.


temperature_relax_time

  • Default: 100.0

Relaxation time of Berendsen thermostat (fs).


remove_translation

  • Default: 0

Interval of removal of translational motion of the system.

  • N < 0 : not to remove translation
  • N == 0 : remove translation only at the beginning
  • N > 0 : remove translation at the beginning and every N step

stress_control

  • Default: none

Type of barostat. Following methods are available:

  • Berendsen / vc-Berendsen: variable-cell Berendsen method.
  • vv-Berendsen: variable-volume Berendsen method which keeps the cell shape but changes volume by scaling all the cell vectors.

In the Berendsen method, the cell matrix is udpated in every MD step as \(\boldsymbol{h}^\mathrm{new} \leftarrow \boldsymbol{\mu h}^\mathrm{old}\) where \(\boldsymbol{\mu}\) is, $$ \boldsymbol{\mu} = 1- \frac{\beta \Delta t}{3\tau_P}(\boldsymbol{\sigma}_\mathrm{tgt}-\boldsymbol{\sigma}), $$ where \(\beta\), \(\tau_P\), \(\boldsymbol{\sigma}_\mathrm{tgt}\) are the compressibility, relaxation time and target stress, respectively. See Berendsen's paper1 for more detail.


pressure_target

Default: 0.0

Target hydrostatic pressure, \(P_\mathrm{tgt}\), which only works when stress_control is vv-Berendsen.


stress_target

Default:

 0.0  0.0  0.0  0.0  0.0  0.0

Target stress component values, xx, yy, zz, yz, xy, and xy of \(\boldsymbol{\sigma}_\mathrm{tgt}\) which only work when stress_control is Berendsen or vc-Berendsen. If only 3 values are given, only xx, yy, and zz components are to be controlled, and no restriction is given to shear components.


stress_relax_time

  • Default: 100d0

Relaxation time (fs), \(\tau_P\), of the Berendsen barostat.


stress_beta

  • Default: 1d-2

Compressibility (1/GPa), \(\beta\), used in the Berendsen barostat.


cell_fix

Default:

 F  F  F
 F  F  F
 F  F  F

Whether or not to fix the value of h-matrix component even if the stress_control is Berendsen or vc-Berendsen.


zload_type

  • Default: no

How to apply z-direction strain:

  • atoms -- atoms whose ifmv value are 2 and relative z-position are over 0.5 are moved to upward, those of relative z-position under 0.5 are moved downward.
  • box -- control z-component of simulation box matrix.
  • no -- Not to apply z-direction strain.

final_strain

  • Default: 0.0

Final strain value (%). Thus strain rate can be given as final_strain / ( time_interval * num_iteration ).


shear_stress

  • Default: 0.0

Shear stress value applied to the system.


cutoff_radius

  • Default: 5.0

Cutoff radius (Angstrom) of the interatomic potential used.


flag_temp_dist

  • Default: .false.

Flag about whether or not writing out temperature distribution to out.temp-dist file.


num_temp_dist

  • Default: 1

Number of bins along x-direction where the temperature is calculated. This value must be a multiple of num_nodes_x.


mass

  • Default: masses of given species are set automatically.

If masses of some species need to be set different from those of elements, masses should be specified as follows. :

mass   Si  28.0855
mass   He   4.00

boundary

  • Default: ppp

Boundary conditions for each axis, 123.

  • p: periodic boundary condition
  • f: free boundary condition

flag_clrchg

  • Default: .false.

Flag whether or not to use color charge non-equilibrium MD


spcs_clrchg

  • Default: non

One species name that color charges are assigned must be specified. Currently only one species can be treated, and +1 or -1 is assigned to each atom where the sum of these colr charges are zero in the system.


clrfield

  • Default: 0d0 0d0 0d0

The field applied to color charges.


flag_lflux

  • Default: .false.

Flag whether of not to measure the local flux of ions who are given finite color charges. The file out.lflux will be written.


ndiv_lflux

  • Default: 1 1 1

Number of division in each axis in a node. Thus the total number of divisions are obtained by multiplying number of parallel node in each axis. The information about local nodes are given at the top of out.lflux.


  1. Berendsen, C., Postma, P. M., Van Gunsteren, W. F., Dinola, A., & Haak, R. (1984). Molecular dynamics with coupling to an external bath, 81(8), 3684--3690.