How to use OpenMX on ohtaka (ISSP supercomputer)
Last Update:2021/12/09
Abstract
OpenMX is a free software for first-principles electronic structure calculations. It is preinstalled in the ISSP supercomputer (ohtaka). OpenMX is suitable for surface structure calculations and O(N) large scale calculations, since its calculations are based on the pseudo-atomic localized basis functions. In this review, I introduce how can we generate OpenMX (ver. 3.9) input files from cif file format, and perform OpenMX on the ISSP supercomputer (ohtaka).
Generate OpenMX input from a structure file (.cif)
At first, I prepared a cif file of a WSe2 structure as an example of this demonstration. We can download “WSe2_mp-1023936_primitive.cif” from “Materias Project“.
Next, we can visualize the structure by drag and drop the cif file on OpenMX Viewer.
Click “save” button and choose “OMX(xyz)”, then we can save the structure as the OpenMX input format with xyz coordinates. (OMX(frac) means OpenMX input with fractional coordinates.) The saved file’s name should be renamed properly. (The default name is abc.dat.) I renamed it to wse2.dat. In the saved wse2.dat, parameters such as basis sets, psuedopotential, the number of k-point, energy cutoff, an so on have already chosen properly and automatically by OpenMX viewer.
For example, the choice of basis sets is based on the description in OpenMX website.
wse2.dat
# # This was generated by OpenMX Viewer System.CurrrentDirectory ./ System.Name abc level.of.stdout 1 level.of.fileout 1 Species.Number 2 <Definition.of.Atomic.Species Se Se7.0-s3p2d2 Se_PBE19 W W7.0-s3p2d2f1 W_PBE19 Definition.of.Atomic.Species> Atoms.Number 3 Atoms.SpeciesAndCoordinates.Unit Ang <Atoms.SpeciesAndCoordinates 1 W 0.0000000 0.0000000 0.0000000 6.0 6.0 2 Se -0.0000000 1.9200433 1.6804268 3.0 3.0 3 Se -0.0000000 1.9200433 15.8466582 3.0 3.0 Atoms.SpeciesAndCoordinates> Atoms.UnitVectors.Unit Ang <Atoms.UnitVectors 3.3256124 0.0000000 0.0000000 -1.6628062 2.8800649 0.0000000 0.0000000 0.0000000 17.5270850 Atoms.UnitVectors> scf.XcType GGA-PBE scf.SpinPolarization off scf.ElectronicTemperature 300.0 scf.energycutoff 220.0 scf.maxIter 100 scf.EigenvalueSolver band scf.Kgrid 6 6 1 scf.Mixing.Type rmm-diisk scf.Init.Mixing.Weight 0.05 scf.Min.Mixing.Weight 0.01 scf.Max.Mixing.Weight 0.30 scf.Mixing.History 25 scf.Mixing.StartPulay 15 scf.criterion 1.0e-7 MD.Type nomd MD.maxIter 1 MD.TimeStep 1.0 MD.Opt.criterion 0.0003
You can modify the parameters properly if you need. In addition, this input file does not include a specification of a directory in which the psuedopotential and basis sets are stored. Therefore, we need to add the following option in our input file.
In the case of ISSP supercomputer (ohtaka) :
data.path /home/issp/materiapps/intel/openmx/openmx-3.9.2-1/DFT_DATA19/
I also modified the name of output from abc to wse2.
System.Name wse2
The preparation of the OpenMX input file (wse2.dat) is now completed.
Execute OpenMX on ISSP supercomputer (ohtaka)
Next, we prepare a jobscript to run OpenMX on ISSP supercomputer (ohtaka) . I used a 1node-32mpi-4threads(openmp) hybrid parallel calculation.
openmx.sh
#!/bin/sh #SBATCH -p i8cpu #SBATCH -N 1 #SBATCH -n 32 #SBATCH -c 4 #SBATCH -t 00:10:00 set -e source /home/issp/materiapps/intel/openmx/openmxvars.sh module list export OMP_NUM_THREADS=4 srun openmx wse2.dat -nt ${OMP_NUM_THREADS} > wse2.std
In most cases, the most effective performance of OpenMX can be found when we choose 4~8 threads parallelization and parallelize the rest of cpu cores by MPI.
After moving openmx.sh and wse2.dat to the same directory for a test calculation, we can submit a job in the following command
$ sbatch openmx.sh
Once the calculation has finished normally, the result can be checked from “wse.out”.