WELCOME TO THE "ABACUS" PROGRAM! THE PROJECT STARTS FROM https://github.com/abacusmodeling/abacus-develop, WHERE MORE INFORMATION CAN BE FOUND.
- Table of contents
- About ABACUS
- Download and install
- Quickstart guide
- Features
- Functionalities
- Examples
- For developers
ABACUS IS AN ELECTRONIC STRUCTURE PACKAGE BASED ON DENSITY FUNCTIONAL THEORY. ABACUS ADOPTS EITHER PLANE WAVE BASIS OR NUMERICAL ATOMIC ORBITALS
ABACUS provides the following features and functionalities:
- Ground-state total energy calculations using Kohn-Sham (KS) density functional theory (DFT) with local-density, generalized gradient approximations (LDA/GGAs), and hybrid functionals (PBE0 and HSE06, only for LCAO).
- Brillouin zone sampling using the Monkhorst-Pack special k-points.
- Geometry relaxations with Conjugated Gradient (CG) and BFGS methods.
- Semi-empirical van der Waals energy correction using the Grimme DFT-D2/D3 scheme.
- NVT molecular dynamics simulation.
- Stress calculations and cell relaxations.
- Electric polarization calculation using Berry Phase theory.
- Interface to the Wannier90 package.
- Real-time time dependent density functional theory (TDDFT).
- Electrostatic potential.
- Mulliken charge analysis.
- Projected density of states (PDOS).
ABACUS can be downloaded from its official website or our github website.
Please refer to the installation guide for instruction on the structure of the package and how to install ABACUS.
The following files are the central input files for ABACUS. Before executing the program, please make sure these files are prepared and stored in the working directory.
-
The INPUT file
The file named INPUT contains the setting parameters used in the calculation, which informs the program “what to do and how to do it”. Most parameters are supplied with default values, but some important parameters must be explicitly set by the user. For a complete list of the input parameters, please consult this instruction.
Attention: Users cannot change the filename “INPUT” to other names.
-
The structure file
The default name for structure file is STRU.The name can however be changed to a different name by explicitly specifying the name in the INPUT file.
The STRU file contains the structural information about the system, e.g., lattice constant, lattice vectors, and positions of the atoms within a unit cell. The positions can be given either in direct or Cartesian coordinates. Moreover, the name (and location of the pseudopotential and numerical orbital files, see below) need to be specified in the STRU file.
Specifications of the STRU file can be found in this short instruction.
-
The k-point file The default name is KPT. It contains the information of the k-grid setting for the Brillouin zone sampling.
Specification of the k-point file can be found in this short instruction.
-
The pseudopotential files
Norm-conserving pseudopotentials are used in ABACUS, in the UPF file format.The filename of each element’s pseudopotential needs to be specified in the
STRU
file, if the the pseudopotential files are already present in the working directory. However, in case that the pseudopotential files are stored in some other directories, then a full path to access the pseudopotential files have to be specified in theSTRU
file.More information on pseudopotentials is given here.
-
The numerical orbital file
When doing calculations with atomic orbital basis, it’s necessary to prepare a numerical orbital file for each element in the system. Generally, the numerical orbital file should be prepared by the user, which will be described later. The filename for each element’s numerical orbital basis needs to be specified in the
STRU
file. However, in case that the numerical orbital files are stored in a location different from the working ddirectory, then a full path to access the orbital files have to be specified in theSTRU
file. ABACUS provides atomic basis sets of different accuracy levels for most elements commonly used. Users can download these basis sets from our website. Moreover, users can generate basis themselves, and the procedure is provided in this short introduction.
When the calculation finishes, the program will create an output directory (default: OUT.ABACUS/), into which the following output files will be generated:
- INPUT: contains all input parameters, user’s input and default.
- istate.info: information of energy eigenvalues.
- running_${calculation}.log: contains the running details. Information on the variable calculation is found in the list of keywords. For example, if we are doing a SCF calculation, the log files will be named running_scf.log.
- STRU_READIN_ADJUST.cif: structure file in the cif formatter.
- warning.log: errors and warning messages.
- directories containing element information. For example, Si/:
- Si.NONLOCAL: non-local pseudopotential projectors.
- Si-P.ORBITAL: pseudo atomic orbitals, p orbital
- Si-S.ORBITAL: pseudo atomic orbitals, s orbital
- v_loc_g.dat: vlocal in G space
Users can refer to this page for several features of the ABACUS code:
- Basis sets
- Pseudopotentials
- Boundary conditions and k-points
- Kohn-Sham solver
- Exchange-correlation functionals
ABACUS provides a wide variety of functionalities, with explanation and examples:
- Basic electronic structure calculation with PW basis set
- Basic electronic structure calculation with LCAO basis set
- DFT + dispersion calculations
- DOS, wave functions
- Band structure
- Magnetic properties
- Force calculation and structure relaxation
- Stress calculation and cell relaxation
- Molecular dynamics
- Macroscopic polarization calculation
- ABACUS-wannier90 interface
- Real-time time dependent density functional theory
- Electrostatic potential
- Mulliken charge
We also provide many examples in the directories examples/ and tests/.
Note that the examples there are intended as references, and the results are not converged with regard to basis set or k point sampling.
In the directory tests/, each sub-directory contains a separate test example. An introduction of the examples in tests/ directory can be found here. In each subdirectory, you may also find a file named jd which contains a short job description, and for some cases you may also find a README file containing more details about the run. Also, reference output is provided in the file result.ref.
We also provide some information for developers.