10
1
mirror of https://github.com/pfloos/quack synced 2024-12-23 04:43:42 +01:00
QuAcK is a small quantum chemistry package written in Fortran. It is mostly used for easy prototyping.
Go to file
2023-07-10 20:10:16 +02:00
bin bin dir 2019-07-15 13:52:45 +02:00
include remove qcaml for pyscf 2023-07-03 14:33:48 +02:00
input add dynamic BSE2@GW 2023-07-10 14:50:16 +02:00
int trying to fix diverging version 2023-06-30 16:47:26 +02:00
lib add lib directory 2019-05-08 09:13:11 +02:00
mol trying to fix diverging version 2023-06-30 16:47:26 +02:00
scripts fix print in CCSD 2021-11-06 14:36:54 +01:00
src add dynamic BSE2@GW 2023-07-10 14:50:16 +02:00
utils remove examples dir 2020-10-14 15:07:35 +02:00
.gitignore Setup QCaml 2020-10-08 10:12:14 +02:00
GoHu debugging BSE@GT 2021-10-15 22:32:22 +02:00
INSTALL.txt FC for MP3 2020-10-19 13:57:56 +02:00
LICENSE Create LICENSE 2020-06-04 18:35:51 +02:00
Makefile fix ninja 2020-10-14 08:22:48 +02:00
PyDuck.py remove qcaml for pyscf 2023-07-03 14:33:48 +02:00
README.md Update README.md 2023-07-10 20:10:16 +02:00

QuAcK: a software for emerging quantum electronic structure methods

Contributors: - Pierre-Francois Loos - Enzo Monino - Antoine Marie - Anthony Scemama

What is it?

Installation guide

The QuAcK software can be downloaded on GitHub as a Git repository

git clone https://github.com/pfloos/QuAcK.git

Then, one must define the variable QUACK_ROOT. For example,

export QUACK_ROOT=$HOME/Work/QuAcK

You must also install PySCF (for example using pip)

pip install pyscf

PySCF is used for the computation of one- and two-electron integrals (mainly).

Quick start

QuAcK 💩 % cd $QUACK_ROOT
QuAcK 💩 % python PyDuck.py -h
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

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

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