Author: Yue-Wen FANG
Contact: fyuewen@gmail.com
Revision history: created in 6th, September 2017, at New York Uniersity, Shanghai
New York University, Shanghai
Kyto University
The simple tutorial is actually my learning notes of OpenMX.
OpenMX (Open source package for Material eXplorer) http://www.openmx-square.org/ is a software package for nano-scale material simulations based on density functional theories (DFT), it was initially developped by Prof. T. Ozaki at University of Tokyo, and has been contributed by many other contributors.
As far as I have known, OpenMX can only work in the LINUX/UNIX systems.
The installation is very simple, more details can be found from its official [webpage]http://www.openmx-square.org. Note that some versions may need patches. In avoid of unexpected running erros, just use the latest version. Currently the latest one is OpenMX 3.8.
Although we can find a very well-written and complete manual from the official page. Here, I will only show the important featurs and usages.
Here, let me show you an example of non-collinear calculations for SrMnO3. The good implement of non-collinear calculations with spin-orbital coupling in OpenMX is the main reason why I learn using it.
Here is my input (BMO.dat):
#
# File Name
#
System.CurrrentDirectory ./ # default=./
System.Name bmo
level.of.stdout 1 # default=1 (1-3)
level.of.fileout 1 # default=1 (0-2)
DATA.PATH /home/cgduan/software/openmx3.8/DFT_DATA13
#
# Definition of Atomic Species
#
# The empirical orbital basis (i.e. s3p3d3f2) can be found from the http://www.jaist.ac.jp/~t-ozaki/vps_pao2013/Ba/
Species.Number 3
<Definition.of.Atomic.Species
Ba Ba10.0-s3p3d3f2 Ba_PBE13
Mn Mn6.0-s3p2d2f1 Mn_PBE13
O O5.0-s2p2d1 O_PBE13
Definition.of.Atomic.Species>
#<Hubbard.U.values # eV
# Mn 1s 0.0 2s 0.0 3s 0.0 1p 0.0 2p 0.0 1d 3.0 2d 0.0 1f 0.0
# O 1s 0.0 2s 0.0 1p 0.0 2p 0.0 1d 0.0
#Hubbard.U.values>
#
# Atoms
#
Atoms.Number 5
Atoms.SpeciesAndCoordinates.Unit FRAC # Ang|AU
<Atoms.SpeciesAndCoordinates # Unit=AU
1 Ba 0.5 0.5 0.5 5.0 5.0 0.0 0.0 0.00 0.0 0 off
2 Mn 0.000 0.000 0.000 10.0 5.0 0.00 0.0 0.00 0.0 0 off
3 O 0.5000 0.000 0.000 3.0 3.0 0.00 0.0 0.00 0.0 0 off
4 O 0.0000 0.5000 0.0000 3.0 3.0 0.00 0.0 0.00 0.0 0 off
5 O 0.0000 0.0000 0.5000 3.0 3.0 0.00 0.0 0.00 0.0 0 off
Atoms.SpeciesAndCoordinates>
Atoms.UnitVectors.Unit Ang # Ang|AU
<Atoms.UnitVectors # unit=AU
3.9361000061 0.0000000000 0.0000000000
0.0000000000 3.9361000061 0.0000000000
0.0000000000 0.0000000000 4.3
Atoms.UnitVectors>
#
# SCF or Electronic System
#
scf.XcType GGA-PBE # LDA|LSDA-CA|LSDA-PW|GGA-PBE
scf.Hubbard.U off # On|Off , default=off
scf.Hubbard.Occupation dual # onsite|full|dual, default=dual
scf.SpinPolarization NC # On|Off|NC
scf.SpinOrbit.Coupling on # On|Off, default=off
scf.ElectronicTemperature 300.0 # default=300 (K)
scf.energycutoff 150.0 # default=150 (Ry)
scf.maxIter 1000 # default=40
scf.EigenvalueSolver band # Recursion|Cluster|Band
scf.Kgrid 5 5 5 # means 4x4x4
scf.Mixing.Type rmm-diis # Simple|Rmm-Diis|Gr-Pulay|Kerker|Rmm-Diisk
scf.Init.Mixing.Weight 0.010 # default=0.30
scf.Min.Mixing.Weight 0.010 # default=0.001
scf.Max.Mixing.Weight 0.250 # default=0.40
scf.Mixing.History 20 # default=5
scf.Mixing.StartPulay 14 # default=6
scf.Mixing.EveryPulay 10 # default=6
scf.criterion 1.0e-6 # default=1.0e-6 (Hartree)
scf.lapack.dste dstevx # dstegr|dstedc|dstevx, default=dstevx
scf.NC.Zeeman.Spin off # on|off, default=off
scf.NC.Mag.Field.Spin 1.0e+2 # default=0.0(Tesla)
scf.NC.Zeeman.Orbital off # on|off, default=off
scf.NC.Mag.Field.Orbital 1.0e+3 # default=0.0(Tesla)
#
# Voronoi Charge
#
Voronoi.Charge on # default = Off
#
# MD or Geometry Optimization
#
MD.Type Nomd # Nomd|Constant_Energy_MD|Opt
MD.maxIter 1 # default=1
MD.TimeStep 0.01 # default=0.5 (fs)
MD.Opt.criterion 1.0e-4 # default=1.0e-4 (Hartree/bohr)
#
# restarting using a restart file, *.rst
#
scf.restart off # on|off , default=off
#
# MO output
#
MO.fileout off # on|off
num.HOMOs 3 # default=1
num.LUMOs 3 # default=1
MO.Nkpoint 1 # default=1
<MO.kpoint
0.0 0.0 0.0
MO.kpoint>
In calculations, please carefully examine the convergence of the cutoff energy and k-grid. Readers can refer to http://www.openmx-square.org/openmx_man3.7/node33.html for more details.
Important references:
T. Ozaki and H. Kino, Numerical atomic basis orbitals from H to Kr
A presentation by Javier Junquera, Exercises on basis set generation Full control on the definition of the basis set functions: the PAO.Basis block
Michele Gusso, Study on the maximum accuracy of the pseudopotential density functional method with localized atomic orbitals versus plane-wave basis sets: A detailed study on the accuracy attainable with numerical atomic orbitals in the context of pseudopotential first-principles density functional theory is presented.
Openmx can generate about ten output files with rich format. Some of them are structured data, and some of them can be visulazed by XCrysden or VESTA easily.
For non-collinear calculations, it will output the xsf file with spin moment sited in the magnetic ions. Hence it will be easy for us to visulize them in Xcrysden or VESTA. I recommend to use VESTA because it is more flexible and can be used in many operating systems.