Examples

The variable cell optimizations with/without constraints are supported in OpenMX Ver. 3.8. The relevant keywords for the variable cell optimizations are listed below:

   MD.Type                     RFC5       # OptC1|OptC2|OptC3|OptC4|OptC5|RFC5
   MD.Opt.DIIS.History          3         # default=3
   MD.Opt.StartDIIS             5         # default=5
   MD.Opt.EveryDIIS            200        # default=200
   MD.maxIter                  100        # default=1
   MD.Opt.criterion          1.0e-4       # default=0.0003 (Hartree/Bohr)

As confirmed, the keywords listed above are exactly the same as in the section 'Geometry optimization'. Thus, the variable cell optimization can be controlled just like the geometry optimization. The variable cell optimization is supported for only the collinear calculations including the plus U method, while, however, the cell optimization for the DFT-D2 and DFT-D3 methods for vdW interaction is not supported. By the keyword 'MD.Type', a method for the variable cell optimization is specified. When you perform the variable cell optimization, you can choose the following option for the keyword 'MD.Type':

Depending on your purpose, one of the options listed above should be properly chosen. Other constraint schemes will be implemented in future work.

As an example of the variable cell optimization, we show the simultaneous optimization of cell vectors and internal coordinates for the diamond primitive cell below. The calculation can be performed by

     % mpirun -np 16 openmx Cdia-RFC5.dat > Cdia-RFC5.std &
  
where the input file 'Cdia-RFC5.dat' can be found in the directory 'work', so that you can trace the same calculation. As an illustration the initial structure is distorted as shown below:
   Atoms.Number         2
   Atoms.SpeciesAndCoordinates.Unit   frac # Ang|AU
   <Atoms.SpeciesAndCoordinates
      1    C    0.10000000000000    0.00000000000000   -0.05000000000000     2.0     2.0
      2    C    0.25000000000000    0.25000000000000    0.25000000000000     2.0     2.0
   Atoms.SpeciesAndCoordinates>
   Atoms.UnitVectors.Unit             Ang # Ang|AU
   <Atoms.UnitVectors
     1.6400  1.6400  0.0000
     1.6400  0.0000  1.6400
     0.0000  1.6400  1.6400
   Atoms.UnitVectors>
Using a cluster machine consisting of Intel Xeon of 2.6 GHz, the elapsed time of the calculation was 326 sec., which corresponds to 12 optimization steps. The history of the total energy and the maximum gradients of the total energy with respect to atomic coordinates or cell vectors can be confirmed in 'System.Name.out'. You may find the following information in 'Cdia-RFC5.out' for the case.
  ***********************************************************
  ***********************************************************
                  History of cell optimization
  ***********************************************************
  ***********************************************************

    MD_iter   SD_scaling     |Maximum grad|     Maximum step        Utot
                             (Hartree/Bohr)        (Ang)         (Hartree)

      1       1.25981732       0.16438857       0.10583545     -11.59621750
      2       1.25981732       0.08853079       0.05902052     -11.64994330
      3       1.25981732       0.04581934       0.03054622     -11.66453804
      4       1.25981732       0.02205339       0.01470226     -11.66928384
      5       3.14954331       0.01038370       0.01730616     -11.67121215
      6       3.14954331       0.00540550       0.00900916     -11.67332697
      7       3.14954331       0.00487464       0.01195765     -11.67421714
      8       3.14954331       0.00354038       0.02370089     -11.67479904
      9       3.14954331       0.00157490       0.00373198     -11.67534268
     10       3.14954331       0.00137813       0.00160463     -11.67537386
     11       3.14954331       0.00067980       0.00165877     -11.67538616
     12       3.14954331       0.00003708       0.00000000     -11.67538986

It can be seen that the absolute value of the maximum gradient rapidly converged, and dropped to below the criterion of $0.0003$ Hartree/bohr.

Other examples (input and output files) for the variable cell optimization can be found in a directory 'work/cellopt_example'.

2016-04-03