(git:e7e05ae)
grid_ref_integrate.h
Go to the documentation of this file.
1 /*----------------------------------------------------------------------------*/
2 /* CP2K: A general program to perform molecular dynamics simulations */
3 /* Copyright 2000-2024 CP2K developers group <https://cp2k.org> */
4 /* */
5 /* SPDX-License-Identifier: BSD-3-Clause */
6 /*----------------------------------------------------------------------------*/
7 
8 #ifndef GRID_REF_INTEGRATE_H
9 #define GRID_REF_INTEGRATE_H
10 
11 #include <stdbool.h>
12 
13 /*******************************************************************************
14  * \brief Integrates a single task. A task consists of a pair of atoms each
15  * with a position, Gaussian exponent, and a range of angular momentum.
16  * This function then integrates all combinations of spherical harmonics.
17  * Arguments are identical with grid_collocate_pgf_product except for:
18  *
19  * \param grid Input grid array.
20  * \param hab Output Hamiltonian matrix block.
21  *
22  * \param pab Optional input density matrix block.
23  * \param forces Optional output forces, requires pab.
24  * \param virials Optional output virials, requires pab.
25  * \param hdab Optional output derivative d(hab)/da, requires pab.
26  * \param a_hdab Optional output virial of hab, requires pab.
27  *
28  * \author Ole Schuett
29  ******************************************************************************/
31  const bool orthorhombic, const bool compute_tau, const int border_mask,
32  const int la_max, const int la_min, const int lb_max, const int lb_min,
33  const double zeta, const double zetb, const double dh[3][3],
34  const double dh_inv[3][3], const double ra[3], const double rab[3],
35  const int npts_global[3], const int npts_local[3], const int shift_local[3],
36  const int border_width[3], const double radius, const int o1, const int o2,
37  const int n1, const int n2, const double *grid, double hab[n2][n1],
38  const double pab[n2][n1], double forces[2][3], double virials[2][3][3],
39  double hdab[n2][n1][3], double hadb[n2][n1][3],
40  double a_hdab[n2][n1][3][3]);
41 
42 #endif
43 // EOF
static void const int const int const int const int const int const double const int const int const int int GRID_CONST_WHEN_COLLOCATE double GRID_CONST_WHEN_INTEGRATE double * grid
static void const int const int const int const int const int const double const int const int const int npts_local[3]
void grid_ref_integrate_pgf_product(const bool orthorhombic, const bool compute_tau, const int border_mask, const int la_max, const int la_min, const int lb_max, const int lb_min, const double zeta, const double zetb, const double dh[3][3], const double dh_inv[3][3], const double ra[3], const double rab[3], const int npts_global[3], const int npts_local[3], const int shift_local[3], const int border_width[3], const double radius, const int o1, const int o2, const int n1, const int n2, const double *grid, double hab[n2][n1], const double pab[n2][n1], double forces[2][3], double virials[2][3][3], double hdab[n2][n1][3], double hadb[n2][n1][3], double a_hdab[n2][n1][3][3])
Integrates a single task. A task consists of a pair of atoms each with a position,...