This CUDA library is designed for the efficient computation of Transcorrelated integrals and dressing elements for the application of normal-ordering using orthogonal or bi-orthogonal molecular orbitals.
The library computes and provides:
- 2-Electron Transcorrelated Integrals: Excluding the Coulomb term.
- Key Tersors for 3-Electron Integrals: Specifically, the tensors of the form:
where
-
Grid Sets: Two sets of grids
$(\mathbf{r_1}, w_1)$ and$(\mathbf{r_2}, w_2)$ , where$\mathbf{r_1}$ and$\mathbf{r_2}$ are spatial coordinates, and$w_1$ and$w_2$ are corresponding weights. -
Atomic Orbitals: A set of atomic orbitals
${\chi_\mu}$ evaluated on the provided grids. - Nuclear Positions: The positions of nuclei in the system.
- Jastrow Parameters: Parameters associated with the Jastrow factor.
0-electron, 1-electron, and 2-electron dressing integrals are computed to reduce the 3-electron Transcorrelated Hamiltonian to an effective 2-electron Hamiltonian.
-
Number of Electrons: The number of
$\uparrow$ -electrons and$\downarrow$ -electrons. - Left and Right Orbitals on a Grid: Two sets of orbitals computed on a grid with the corresponding weights.
-
3-Electron Tensor: The tensor
$X_{\mu \nu}(\mathbf{r_1})$ transformed into molecular orbitals
git clone https://github.com/AbdAmmar/CuTC.git
cd CuTC
source config/env.rc
make
The primary routine of the Transcorrelated Integrals CUDA Library is implemented in C and can be easily integrated into projects using other programming languages.
To use the library, include the compiled shared library libcutcint.so
in your project.
-
Linking the Library:
- Ensure that the shared library
CuTC/build/libcutcint.so
is accessible to your project. You may need to specify the path to this library when linking your application.
- Ensure that the shared library
-
Calling from C/C++:
- You can directly call the functions defined in the library from your C or C++ code. Include the relevant headers and link against the shared library during the build process.
A demonstration of how to use the library with Fortran is provided. To see an example of calling the CUDA library from Fortran, refer to the following files:
- Fortran Source:
CuTC/src/cutc_int_f.f90
- Fortran Module:
CuTC/src/cutc_module.f90
These files contain example code and a module that interfaces with the C routine, showing how to invoke the library functions from Fortran.
CuTC is supported by the PTEROSOR project that has received funding from the European Research Council (ERC) under the European Union's Horizon 2020 research and innovation programme (Grant agreement No. 863481).