|
|
This program is a real-space density functional theory (DFT) package.
|
|
|
ACE-Molecule project is opened to anyone who has interests on testing various experimental features.
|
|
|
The **ACE-Molecule** is a **density functional theory** (DFT) calculation package based on **real-space numerical grid**.
|
|
|
The ACE-Molecule project is opened to anyone who has interests in testing various experimental features.
|
|
|
|
|
|
# Main Features
|
|
|
## Large-scale calculations
|
|
|
ACE-Molecule mainly targets large-scale calculations. You can refer [parallelizaiton test issue page](https://gitlab.com/aceteam.kaist/ACE-Molecule/issues/47)
|
|
|
# Main features
|
|
|
## Large-scale electronic structure simulation
|
|
|
ACE-Molecule mainly targets efficient electronic structure calculation of large molecular or condensed-matter system.
|
|
|
|
|
|
## Excited state calculations
|
|
|
Various excited state methods are implemented. (e.g. TDDFT, CIS, etc) Following list contains our previous works
|
|
|
You can refer [parallelizaiton test issue page](https://gitlab.com/aceteam.kaist/ACE-Molecule/issues/47)
|
|
|
|
|
|
## Excited state calculation
|
|
|
ACE-Molecule developers have developed and implemented efficient and reliable calculation methods for excited state calculations in the real-space numerical grid. (e.g. TDDFT, CIS, etc) Following list contains our previous works
|
|
|
|
|
|
* [TDDFT w/ hybrid functional](http://pubs.rsc.org/en/content/articlehtml/2017/cp/c7cp00704c)
|
|
|
* [TDDFT w/ range-separated functional](https://www.sciencedirect.com/science/article/pii/S001046551830122X)
|
|
|
* [CIS w/ KLI functional](https://pubs.rsc.org/en/content/articlehtml/2015/cp/c5cp00352k)
|
|
|
* [CISD w/ KLI functional](https://aip.scitation.org/doi/abs/10.1063/1.4971786)
|
|
|
# Numerical Approaches
|
|
|
|
|
|
|
|
|
# Numerical aspects
|
|
|
## Real-space method
|
|
|
ACE-Molecule package support two different stencil based approaches (Sinc basis set expansion, finite-difference method). For more details, please refer [this paper](https://aip.scitation.org/doi/abs/10.1063/1.4913569)
|
|
|
|
|
|
## Pseudopotential and PAW
|
|
|
ACE-Molecule use pseudopotentials or PAW to eliminate cusp-like behavior around nuclear potential.
|
|
|
ACE-Molecule uses pseudopotentials or PAW to eliminate cusp-like behavior around nuclear potential. Currently, we support Norm-conserving pseudopotentials and PAW method.
|
|
|
You may refer [this paper](https://onlinelibrary.wiley.com/doi/abs/10.1002/qua.25106)
|
|
|
|
|
|
|
|
|
# Installation
|
|
|
## Requirements
|
|
|
The following library and programs are required to install ACE-Molecule.
|
|
|
- **Trilinos** library. Version higher than **12.0.1** have been tested for this program.
|
|
|
Trilinos package, which is developed by Sandia National Laboratory takes charge of linear algebraic operations in ACE-Molecule. The most of performance-sensitive part is done by Trilinos package.
|
|
|
Although Trilinos package can be found on numerous Linux repositories, it is recommended to compile it manually with MPI compiler,
|
|
|
since the choice of LAPACK/BLAS/MPI/compiler for building Trilinos affects this program profoundly.
|
|
|
Also, default configurations used for ACE-Molecule follows the setting that is used for Trilinos.<br>
|
|
|
Note that Trilinos library should be compiled to support complex numbers.
|
|
|
|
|
|
Trilinos library can be downloaded from [the official website, https://trilinos.org/download/](https://trilinos.org/download/)
|
|
|
|
|
|
# TODO list
|
|
|
- **LibXC** library. Version higher than 4.0.0 are required.
|
|
|
Libxc is exchange-correlation libraries. Except for few functionals, most of the functionals are rely on that library.
|
|
|
|
|
|
* unrestricted TDDFT feature
|
|
|
* Build error and assert functions under Util folder
|
|
|
LibXC library can be downloaded from [the official website, http://www.tddft.org/programs/libxc/download/](http://www.tddft.org/programs/libxc/download/)
|
|
|
|
|
|
# Installation
|
|
|
## Requirements
|
|
|
ACE-Molecule depends on following libraries.
|
|
|
- Trilinos. Version higher than 12.0.1 are tested.
|
|
|
Trilinos packages, which is developed by Sandia National Lab. takes charge of linear algebraic operations in ACE-Molecule. The most of performance-sensitive part is done by Trilinos package.
|
|
|
Although trilinos package can be found on numerous linux repositories, it is recommended to compile it manually with MPI compiler,
|
|
|
since the choice of LAPACK/BLAS/MPI/compiler for building Trilinos affects this program heavily.
|
|
|
Also, default configurations used for ACE-Molecule follows the configuration that are used for Trilinos.<br>
|
|
|
Note that trilinos should be compiled to support complex numbers.
|
|
|
- CMake will try to use compilers and MPI used for building Trilinos package to build ACE-Molecule.<br>
|
|
|
- **CMake**(minimum version **2.8**) is required to install ACE-Molecule. <br>
|
|
|
You may want to invoke, for example, "apt install cmake" to install it easily using aptitude.
|
|
|
- LibXC. Version higher than 4.0.0 are required.
|
|
|
Libxc is exchange-correlation libraries. Except a few functionals, most of functionals are rely on that library. To install ACE-Molecule, CMake(minimum version 2.8) is required. <br>
|
|
|
You may want to invoke, for example, "apt install libxc-dev" to install it easily using aptitude.
|
|
|
|
|
|
- **MPI** will be used for building Trilinos package to build ACE-Molecule.
|
|
|
|
|
|
For optional libraries, please refer the below list
|
|
|
- CUDA : If you want to enable GPU, CUDA library should be given
|
|
|
- MAGMA : For GPU calculations, this is optional dependency. See [Installation tutorial](https://gitlab.com/aceteam.kaist/ACE-Molecule/wikis/tutorial/Installation)
|
|
|
- GSL (GNU Scientific libraries) : See http://www.gnu.org/software/gsl/. You may want to type "apt install libgsl-dev" to install it easily using aptitude. GSL library takes charge of the multi-dimensional conjugate gradient routine for geometry optimization.
|
|
|
- LibXML2. Although the most linux distribution contains LibXML2 by default, you need developer files.<br>
|
|
|
You may want to invoke, for example, "apt install libxml2-dev" to install the developer files easily using aptitude. LibXML2 is required for parsing the PAW dataset.
|
|
|
## Install Option variables for CMake
|
|
|
- **CUDA**: If you want to enable **GPU**, CUDA library should be used.
|
|
|
- **MAGMA**: Additional library for **GPU calculations**.(Optional) See [Installation tutorial](https://gitlab.com/aceteam.kaist/ACE-Molecule/wikis/tutorial/Installation)
|
|
|
- **GNU Scientific libraries(GSL)**: See http://www.gnu.org/software/gsl/. You may want to type "apt install libgsl-dev" to install it easily using aptitude. GSL library takes charge of the multi-dimensional conjugate gradient routine for **geometry optimization**.
|
|
|
- **LibXML2**: The library required for the **PAW** dataset parsing. Additional to the LibXML2 library, you need a developer packages.<br>
|
|
|
You may want to invoke, for example, "apt install libxml2-dev" to install the developer files easily using aptitude.
|
|
|
|
|
|
## Install using CMake
|
|
|
|
|
|
CMAKE INSTALL INSTRUCTION LINK FILE - THIS Section should be seperated into ANOTHER DOCUMENTS!
|
|
|
|
|
|
### Mandatory variables
|
|
|
- TRILINOS_PATH (PATH): Path to Trilinos package.
|
|
|
- LIBXC_PATH (PATH): Path to libxc library (currently supports static linking only).
|
|
|
- **TRILINOS_PATH** (PATH): Path to Trilinos package.
|
|
|
- **LIBXC_PATH** (PATH): Path to LibXC library (currently supports static linking only).
|
|
|
|
|
|
### Optional variables
|
|
|
|
|
|
- EMABLE_CI (BOOL): This option determines whether enabling CI or not.
|
|
|
- EMABLE_MAGMA (BOOL): This option determines whether enabling MAGMA or not. Magma should be compiled as shared library
|
|
|
- ENABLE_SCALAPACK (BOOL): This option determine whether enabling SCALPACK (experimental option)
|
|
|
- ENABLE_EX_DIAG (BOOL): This option will be depreciated in near future. Compiles and enables BlockKrylovSchur and BlockDavidson solver from Trilinos Anasazi.
|
|
|
- CMAKE_CXX_FLAGS (STRING): ACE-Molecule automatically use CXX FLAGS used when compiling trilinos package. Additional options can be set by this option. (not recommended)
|
|
|
- EMABLE_MAGMA (BOOL): This option determines whether enabling MAGMA or not. Magma should be compiled as a shared library form (.so)
|
|
|
- ENABLE_SCALAPACK (BOOL): This option determines whether enabling ScaLAPACK (experimental option)
|
|
|
- ENABLE_EX_DIAG (BOOL): This option will be depreciated in the near future. Compiles and enables BlockKrylovSchur and BlockDavidson solver from Trilinos Anasazi.
|
|
|
- CMAKE_CXX_FLAGS (STRING): ACE-Molecule automatically uses CXX FLAGS used when compiling Trilinos package. Additional options can be added by this option. (not recommended)
|
|
|
- GSL_PATH (PATH): Path to GSL library (currently supports static linking only).
|
|
|
- EDISON (BOOL): This option will be depreciated in near future. Compiles for EDISON version. Some inputs are modified and adds default values.
|
|
|
- CUDA_TOOLKIT_ROOT_DIR (PATH) : This parameter turn enable GPU calculations
|
|
|
- CUDA_FLAGS (STRING) : nvcc options
|
|
|
- MAGMA_PATH (PATH) :
|
|
|
- MKL_PATH (PATH): Path to MKL library. For DDA calculations, this should be set
|
|
|
- EDISON (BOOL): This option will be depreciated in the near future. Compiles for EDISON version. Some inputs are modified and add default values.
|
|
|
- CUDA_TOOLKIT_ROOT_DIR (PATH): This parameter turn enable GPU calculations
|
|
|
- CUDA_FLAGS (STRING): nvcc options
|
|
|
- MAGMA_PATH (PATH): Path to Magma library.
|
|
|
- MKL_PATH (PATH): Path to MKL library. For DDA calculations, this should be used.
|
|
|
- ACE_STATIC_LINK(BOOL): Set static building (no longer valid)
|
|
|
|
|
|
# Page Navigation
|
|
|
### Variables
|
|
|
All input variables of ACE-Molecule are written in block-structure format. More detail explanations for input variable of ACE-Molecule can be found in [Variables page](variables).
|
|
|
# Manual
|
|
|
## Structure of the program
|
|
|
![Program_Structure](uploads/0b1ac1554a6759e133106a02866d8b4e/Program_Structure.jpg)
|
|
|
|
|
|
All input variables of ACE-Molecule should be written in block-structure format.
|
|
|
## Variables
|
|
|
All input variables of ACE-Molecule should be written in block-structure format. More detail explanations for input variable of ACE-Molecule can be found in [Variables page](variables).
|
|
|
|
|
|
## Examples
|
|
|
### Tutorials
|
|
|
- [H<sub>2</sub><sup>+</sup> dissociation curve using KLI](/tutorial/H2-plus-dissociation)
|
|
|
- [H<sub>2</sub><sup>+</sup> dissociation curve using KLI-EXX potential](/Tutorial/Dihydrogen-cation-dissociation)
|
|
|
### Technical reports
|
|
|
- [PAW initialization speed and memory](https://gitlab.com/aceteam.kaist/ACE-Molecule/wikis/reports/PAW-technical-report-for-memory-and-initialization-time)
|
|
|
- [PAW initialization speed and memory](https://gitlab.com/aceteam.kaist/ACE-Molecule/wikis/Reports/PAW-technical-report-for-memory-and-initialization-time)
|
|
|
|
|
|
# Examples
|
|
|
- If you needs example to run ACE-Molecule, please check [test folder](https://gitlab.com/aceteam.kaist/ACE-Molecule/tree/master/test/acceptance-test) and [pages for variables](https://gitlab.com/aceteam.kaist/ACE-Molecule/wikis/variables)
|
|
|
|
|
|
|
|
|
# TODO list
|
|
|
* unrestricted TDDFT feature
|
|
|
* Build error and assert functions under Util folder |
|
|
\ No newline at end of file |