Introduction to CHAMP
Table of Contents
1 CHAMP
The Cornell-Holland Ab-initio Materials Package (CHAMP) is a quantum Monte Carlo suite of programs for electronic structure calculations of atomic and molecular systems.
For the purpose of this workshop, we have installed CHAMP for you. You may skip directly to Section 2 for using CHAMP.
1.1 Requirements
- Cmake >= 3.20
- gfortran/gcc >= 9.3.0 or Intel Fortran 2020 onward / Intel OneAPI
- BLAS/LAPACK (OpenBLAS) or Intel MKL
- OpenMPI >= 3.0 or Intel MPI
- [Optional] TREXIO library >= 2.0.0
1.2 Installation of required libraries/packages
1.2.1 Install or load cmake
sudo apt-get install -y cmake
or
Download and extract the latest cmake for the pre-compiled binary
wget https://github.com/Kitware/CMake/releases/download/v3.24.0-rc1/cmake-3.24.0-rc1-linux-x86_64.tar.gz tar -xzvf cmake-3.24.0-rc1-linux-x86_64.tar.gz export PATH=cmake-3.24.0-rc1-linux-x86_64/bin:$PATH
1.2.2 Installation using Intel oneAPI compilers
- Installation without sudo access
Download Intel oneAPI basekit and HPCkit for free from
wget https://registrationcenter-download.intel.com/akdlm/irc_nas/18673/l_BaseKit_p_2022.2.0.262.sh chmod a+x ./l_BaseKit_p_2022.2.0.262.sh sh ./l_BaseKit_p_2022.2.0.262.sh wget https://registrationcenter-download.intel.com/akdlm/irc_nas/18679/l_HPCKit_p_2022.2.0.191.sh chmod a+x ./l_HPCKit_p_2022.2.0.191.sh sh ./l_HPCKit_p_2022.2.0.191.sh
After installation export the path to your
~/.bashrc
. - Prerequisites for Intel oneAPI with sudo access
wget https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB sudo apt-key add GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB rm GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB sudo add-apt-repository "deb https://apt.repos.intel.com/oneapi all main" sudo apt-get update
- Install the components
sudo apt-get install -y intel-oneapi-common-vars sudo apt-get install -y intel-oneapi-compiler-fortran-2021.3.0 sudo apt-get install -y intel-oneapi-mkl-2021.3.0 sudo apt-get install -y intel-oneapi-mkl-devel-2021.3.0 sudo apt-get install -y intel-oneapi-mpi-2021.3.0 sudo apt-get install -y intel-oneapi-mpi-devel-2021.3.0
- Compile script for CHAMP using Intel libraries
cmake -S. -Bbuild -DCMAKE_Fortran_COMPILER=mpiifort -DBLAS_LIBRARIES="-qmkl=parallel" cmake --build build -j 8
1.2.3 Installation using GNU Compiler
- Make sure that the installed version of Cmake is higher than 3.20
- Make sure that the installed version of gfortran/mpif90 is higher than 9.3.0
- Install or load compilers
sudo apt install -y gfortran sudo apt-get install -y gcc sudo apt install -y openmpi-bin sudo apt install -y libopenmpi-dev
- Install or load BLAS/LAPACK
sudo apt install -y libblacs-mpi-dev sudo apt install -y liblapack-dev
- Compile script for CHAMP
Get the stable version of CHAMP v.2.1.1
Make sure that the BLAS installation is proper. Otherwise, the code might give erroneous results at runtime.
cmake -H. -B build -DCMAKE_Fortran_COMPILER=/usr/bin/mpif90 -DBLA_VENDOR=OpenBLAS cmake --build build
2 Setup of input files
The tutorial folder is located at: /lustre/home/filippi/Tutorial-QMC-School
There are several example folders inside
example01_H2O_HF
example02_H2O_DFT
example03_H2O_HF_optjas2body
example04_H2O_HF_dmc2body_tau0.05
example05_H2O_HF_dmc2body_tau0.02
example06_H2O_DFT_optjas2body
example07_H2O_DFT_dmc2body_tau0.05
example08_H2O_DFT_dmc2body_tau0.02
example09_H2O_DFT_dmc2body_optall_tau0.02
example09_H2O_DFT_dmc2body_optall_tau0.05
example09_H2O_DFT_optall
example10_COH2_ground_state
example11_COH2_excited_state
Each example directory will contain a setup folder, where you can generate the necessary input files for CHAMP from a single TREXIO file (in HDF5 format)
The scripts for conversion are also included in the folder.
- Example 01: H20 with HF molecular orbitals
cd 01_champ_tools/example01_H2O_HF/setup
Check the contents of the conversion script
#!/bin/bash python3 /lustre/home/filippi/Tutorial-QMC-School/trex2champ.py \ --trex "trexio_H2O_HF.hdf5" \ --motype "RHF" \ --backend "HDF5" \ --basis_prefix "BFD-aug-cc-pVDZ" \ --lcao \ --geom \ --basis \ --ecp \ --det
Execute this script to generate the files:
./script_water.sh
Move or copy the following files into the pool folder
ls 01_champ_tools/example01_H2O_HF/pool
champ_v2_trexio_H2O_HF_geom.xyz champ_v2_trexio_H2O_HF_with_g.bfinfo ECP.gauss_ecp.dat.H ECP.gauss_ecp.dat.O BFD-aug-cc-pVDZ.basis.H BFD-aug-cc-pVDZ.basis.O
The remaining files should be kept in the 01_champ_tools/example01_H2O_HF
directory.
ls 01_champ_tools/example01_H2O_HF/
champ_v2_trexio_H2O_HF_orbitals.lcao champ_v2_trexio_H2O_HF_determinants.det jastrow.start run_champ.sh vmc_h2o_hf.inp pool/ setup/
The input file vmc_h2o_hf.inp
looks like:
%module general title 'H2O HF calculation' pool './pool/' pseudopot ECP basis BFD-aug-cc-pVDZ mode vmc %endmodule load molecule $pool/champ_v2_trexio_H2O_HF_geom.xyz load basis_num_info $pool/champ_v2_trexio_H2O_HF_with_g.bfinfo load orbitals champ_v2_trexio_H2O_HF_orbitals.lcao load determinants champ_v2_trexio_H2O_HF_determinants.det load jastrow jastrow.start %module electrons nup 4 nelec 8 %endmodule %module blocking_vmc vmc_nstep 20 vmc_nblk 100000 vmc_nblkeq 1 vmc_nconf_new 0 %endmodule
The included jastrow file is
jastrow_parameter 1 0 1 0 norda,nordb,nordc 0.60000000 0.00000000 scalek,a21 0.00000000 0.00000000 (a(iparmj),iparmj=1,nparma) 0.00000000 0.00000000 (a(iparmj),iparmj=1,nparma) 0.00000000 1.00000000 (b(iparmj),iparmj=1,nparmb) (c(iparmj),iparmj=1,nparmc) (c(iparmj),iparmj=1,nparmc) end