![]() |
(git:e68414f)
|
#include <stdlib.h>#include <string.h>#include "grpp_overlap_gradient.h"#include "libgrpp.h"#include "grpp_diff_gaussian.h"#include "grpp_utils.h"Go to the source code of this file.
Functions | |
| static void | overlap_gradient_diff_bra_contribution (libgrpp_shell_t *shell_A, libgrpp_shell_t *shell_B, double **grad, double factor) |
| static void | overlap_gradient_diff_bra_overlap_integrals (libgrpp_shell_t *shell_A, libgrpp_shell_t *shell_B, double **overlap_down, double **overlap_up, int *cart_size_down, int *cart_size_up) |
| int | nlm_to_linear (int *nlm) |
| void | libgrpp_overlap_integrals_gradient (libgrpp_shell_t *shell_A, libgrpp_shell_t *shell_B, double *point_3d, double **grad) |
| int | libgrpp_nlm_to_linear (int *nlm) |
|
static |
Calculates contribution to gradients arising from the < df/dA | g > term:
grad += factor * < df/dA | g >
(bra basis function is differentiated).
Definition at line 85 of file grpp_overlap_gradient.c.
|
static |
To assemble the contribution < df/dA | g > to gradients, one have to differentiate Gaussian function. Such a differentiation yields two Gaussians with angular momenta L-1 ("down") and L+1 ("up"): dG/dA -> G(L-1) and G(L+1)
This function constructs overlap matrices with these "downgraded" and "upgraded" Gaussian functions: < G(L-1) | G' > and < G(L+1) | G' >
Definition at line 156 of file grpp_overlap_gradient.c.
| int nlm_to_linear | ( | int * | nlm | ) |
| void libgrpp_overlap_integrals_gradient | ( | libgrpp_shell_t * | shell_A, |
| libgrpp_shell_t * | shell_B, | ||
| double * | point_3d, | ||
| double ** | grad | ||
| ) |
Analytic calculation of gradients of overlap integrals for a given shell pair with respect to the point 'point_3d'.
Definition at line 39 of file grpp_overlap_gradient.c.
| int libgrpp_nlm_to_linear | ( | int * | nlm | ) |
calculates sequential ("linear") index of the (n,l,m) primitive in the cartesian shell
Definition at line 205 of file grpp_overlap_gradient.c.