2023-07-10 20:00:15 +02:00
|
|
|
# QuAcK: a software for emerging quantum electronic structure methods
|
2021-10-13 14:14:15 +02:00
|
|
|
|
2023-07-10 19:56:57 +02:00
|
|
|
**Contributors:**
|
|
|
|
- [Pierre-Francois Loos](https://pfloos.github.io/WEB_LOOS)
|
|
|
|
- [Enzo Monino](https://enzomonino.github.io)
|
|
|
|
- [Antoine Marie](https://antoine-marie.github.io)
|
2023-07-10 19:58:37 +02:00
|
|
|
- [Anthony Scemama](https://scemama.github.io)
|
2023-07-10 19:56:57 +02:00
|
|
|
|
|
|
|
# What is it?
|
2021-10-13 14:14:15 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
2023-07-10 19:56:57 +02:00
|
|
|
# Installation guide
|
|
|
|
The QuAcK software can be downloaded on GitHub as a Git repository
|
|
|
|
```
|
2023-07-10 19:57:20 +02:00
|
|
|
git clone https://github.com/pfloos/QuAcK.git
|
2023-07-10 19:56:57 +02:00
|
|
|
```
|
2021-10-13 14:14:15 +02:00
|
|
|
|
2023-07-10 20:04:25 +02:00
|
|
|
Then, one must define the variable `QUACK_ROOT`. For example,
|
|
|
|
```
|
|
|
|
export QUACK_ROOT=$HOME/Work/QuAcK
|
|
|
|
```
|
|
|
|
You must also install [PySCF](https://pyscf.org) (for example using `pip`)
|
2023-07-10 19:56:57 +02:00
|
|
|
```
|
|
|
|
pip install pyscf
|
|
|
|
```
|
|
|
|
|
2023-07-10 20:04:25 +02:00
|
|
|
PySCF is used for the computation of one- and two-electron integrals (mainly).
|
2023-07-10 19:56:57 +02:00
|
|
|
|
|
|
|
# Quick start
|
2023-07-10 20:01:49 +02:00
|
|
|
|
|
|
|
```
|
2023-07-10 20:04:25 +02:00
|
|
|
QuAcK 💩 % cd $QUACK_ROOT
|
2023-07-10 20:04:45 +02:00
|
|
|
QuAcK 💩 % python PyDuck.py -h
|
2023-07-10 20:01:49 +02:00
|
|
|
usage: PyDuck.py [-h] -b BASIS [--bohr] [-c CHARGE] [--cartesian] [-fc FROZEN_CORE] [-m MULTIPLICITY] [--working_dir WORKING_DIR] -x XYZ
|
|
|
|
|
|
|
|
This script is the main script of QuAcK, it is used to run the calculation. If $QUACK_ROOT is not set, $QUACK_ROOT is replaces by the current
|
|
|
|
directory.
|
|
|
|
|
|
|
|
options:
|
|
|
|
-h, --help show this help message and exit
|
|
|
|
-b BASIS, --basis BASIS
|
|
|
|
Name of the file containing the basis set in the $QUACK_ROOT/basis/ directory
|
|
|
|
--bohr By default QuAcK assumes that the xyz files are in Angstrom. Add this argument if your xyz file is in Bohr.
|
|
|
|
-c CHARGE, --charge CHARGE
|
|
|
|
Total charge of the molecule. Specify negative charges with "m" instead of the minus sign, for example m1 instead of -1.
|
|
|
|
Default is 0
|
|
|
|
--cartesian Add this option if you want to use cartesian basis functions.
|
|
|
|
-fc FROZEN_CORE, --frozen_core FROZEN_CORE
|
|
|
|
Freeze core MOs. Default is false
|
|
|
|
-m MULTIPLICITY, --multiplicity MULTIPLICITY
|
|
|
|
Number of unpaired electrons 2S. Default is 0 therefore singlet
|
|
|
|
--working_dir WORKING_DIR
|
|
|
|
Set a working directory to run the calculation.
|
|
|
|
-x XYZ, --xyz XYZ Name of the file containing the nuclear coordinates in xyz format in the $QUACK_ROOT/mol/ directory without the .xyz
|
|
|
|
extension
|
2023-07-10 20:10:16 +02:00
|
|
|
```
|
|
|
|
|
|
|
|
The two most important files are:
|
|
|
|
- the file `$QUACK_ROOT/input/methods` that gathers the methods you want to use.
|
|
|
|
- the file `$QUACK_ROOT/input/options` that gathers the different options associated these methods.
|
|
|
|
|
|
|
|
These files look like this
|
|
|
|
```
|
|
|
|
QuAcK 💩 % cat input/methods
|
|
|
|
# RHF UHF KS MOM
|
|
|
|
T F F F
|
|
|
|
# MP2* MP3
|
|
|
|
F F
|
|
|
|
# CCD pCCD DCD CCSD CCSD(T)
|
|
|
|
F F F F F
|
|
|
|
# drCCD rCCD crCCD lCCD
|
|
|
|
F F F F
|
|
|
|
# CIS* CIS(D) CID CISD FCI
|
|
|
|
F F F F F
|
|
|
|
# RPA* RPAx* crRPA ppRPA
|
|
|
|
F F F F
|
|
|
|
# G0F2* evGF2* qsGF2* G0F3 evGF3
|
|
|
|
F F F F F
|
|
|
|
# G0W0* evGW* qsGW* SRG-qsGW ufG0W0 ufGW
|
|
|
|
T F F F F F
|
|
|
|
# G0T0pp evGTpp qsGTpp G0T0eh evGTeh qsGTeh
|
|
|
|
F F F F F F
|
|
|
|
# * unrestricted version available
|
|
|
|
```
|
|
|
|
and
|
|
|
|
```
|
|
|
|
QuAcK 💩 % cat input/options
|
|
|
|
# HF: maxSCF thresh DIIS n_diis guess_type ortho_type mix_guess level_shift stability
|
|
|
|
512 0.0000001 T 5 1 1 F 0.0 F
|
|
|
|
# MP: reg
|
|
|
|
F
|
|
|
|
# CC: maxSCF thresh DIIS n_diis
|
|
|
|
64 0.0000001 T 5
|
|
|
|
# spin: TDA singlet triplet spin_conserved spin_flip
|
|
|
|
F T F T T
|
|
|
|
# GF: maxSCF thresh DIIS n_diis lin eta renorm reg
|
|
|
|
256 0.00001 T 5 T 0.0 0 F
|
|
|
|
# GW: maxSCF thresh DIIS n_diis lin eta COHSEX TDA_W reg
|
|
|
|
256 0.00001 T 5 T 0.0 F F F
|
|
|
|
# GT: maxSCF thresh DIIS n_diis lin eta TDA_T reg
|
|
|
|
256 0.00001 T 5 T 0.1 F F
|
|
|
|
# ACFDT: AC Kx XBS
|
|
|
|
F T T
|
|
|
|
# BSE: BSE dBSE dTDA evDyn ppBSE BSE2
|
|
|
|
T T T F F F
|
|
|
|
```
|
2023-07-10 20:07:04 +02:00
|
|
|
|
|
|
|
For example, if you want to run a calculation on water using the cc-pvdz basis set:
|
|
|
|
```
|
|
|
|
QuAcK 💩 % python PyDuck.py -x water -b cc-pvdz
|
2023-07-10 20:10:16 +02:00
|
|
|
```
|
|
|
|
|