ensemble (standard)

The ensemble keyword is used to set up an integration method (an “integrator”). The integrators described on this page provide conventional methods for controlling temperature and pressure during classical MD simulations. Background information pertaining to the different methods referred to on this page can be found here.

Syntax

nve

If the first parameter is nve, it means that the ensemble for the current run is NVE (micro-canonical). There is no need to further specify any other parameters and the full command is simply:

ensemble nve

nvt_ber

If the first parameter is nvt_ber, it means that the ensemble for the current run is NVT (canonical) generated by using the Berendsen method. In this case, one needs to specify an initial target temperature <T_1>, a final target temperature <T_2>, and a parameter <T_coup>, which reflects the strength of the coupling between the system and the thermostat. The full command is:

ensemble nvt_ber <T_1> <T_2> <T_coup>

The target temperature (not the instant system temperature) will vary linearly from <T_1> to <T_2> during a run. The choice of <T_coup> is discussed below.

nvt_nhc

If the first parameter is nvt_nhc, it is similar to the case of nvt_ber, but using the Nose-Hoover chain method.

nvt_bdp

If the first parameter is nvt_bdp, it is similar to the case of nvt_ber, but using the Bussi-Donadio-Parrinello method.

nvt_lan

If the first parameter is nvt_lan, it is similar to the case of nvt_ber, but using the Langevin method as proposed in [Bussi2007a].

nvt_bao

If the first parameter is nvt_bao, it is similar to the case of nvt_ber, but using the Langevin method with BAOAB splitting [Leimkuhler2013].

npt_ber

If the first parameter is npt_ber, it means that the ensemble for the current run is NPT (isothermal–isobaric) generated by using the Berendsen barostat. In this case, apart from the same parameters as in the case of nvt_ber, one needs to further specify some target pressure(s), the same number of estimated elastic moduli, and a pressure coupling constant <p_coup>. The general format is:

ensemble npt_ber <T_1> <T_2> <T_coup> {<pressure_control_parameters>}

with three different options for specifying pressure_control_parameters:

  • Condition 1: Cell shape updates are isotropic

    <p_hydro> <C_hydro> <p_coup>
    

    This means you regard your system as isotropic and want to control the three box lengths uniformly according to the hydrostatic pressure <p_hydro> = (p_xx + p_yy + p_zz)/3. All directions should have periodic boundary conditions. Currently, we require the box to be orthogonal.

  • Condition 2: Cell shape updates are orthorhombic

    <p_xx> <p_yy> <p_zz> <C_xx> <C_yy> <C_zz> <p_coup>
    

    In this case, the simulation box must be orthogonal. The three box lengths will be controlled independently according to their respective target pressures. Any direction can be either periodic or nonperiodic and pressure controlling will only be effective in periodic directions.

  • Condition 3: Cell shape updates are triclinic

    <p_xx> <p_yy> <p_zz> <p_yz> <p_xz> <p_xy> <C_xx> <C_yy> <C_zz> <C_yz> <C_xz> <C_xy> <p_coup>
    

    The simulation box must be triclinic and all the directions must be periodic. All cell components will be controlled independently according to the 6 target pressure components.

    Elastic constants in literature may use a different nomenclature. The correspondence is as follows:

    C_xx=C_xxxx=C_11, C_yy=C_yyyy=C_22, C_zz=C_zzzz=C_33,
    C_yz=C_yzyz=C_44, C_zx=C_zxzx=C_55, C_xy=C_xyxy=C_66

    It is sufficient for the elastic constant tensor C_ab to be a (very rough) estimate as long as it is of the right magnitude. It is used to convert the coupling constant (or relaxation time, see here) of the barostat into suitable internal units.

npt_scr

If the first parameter is npt_scr, it is similar to the case of npt_ber, but using the stochastic cell rescaling method.