#include <stdlib.h>
#include <math.h>
#include <stdio.h>
#include <errno.h>
#include <memory.h>
#include <time.h>
#include <stdarg.h>
#include <vector>
#include "pi.h"
#include "output.h"
#include "utilities.h"
#include "boysfunction.h"
#include "integral_info.h"
#include "integrals_general.h"
#include "box_system.h"
#include "operator_matrix.h"
Functions | |
| int | compute_operator_matrix_full (const BasisInfoStruct &basisInfoA, const BasisInfoStruct &basisInfoB, int pow_x, int pow_y, int pow_z, ergo_real *result) |
| int | compute_operator_matrix_sparse (const BasisInfoStruct &basisInfoA, const BasisInfoStruct &basisInfoB, int pow_x, int pow_y, int pow_z, int n_A, int n_B, std::vector< int > &nvaluesList, std::vector< std::vector< int > > &colindList, std::vector< std::vector< ergo_real > > &valuesList) |
| computes the matrix of a dipole/quadrupole/etc operator. | |
| int | compute_overlap_matrix (const BasisInfoStruct &basisInfoA, const BasisInfoStruct &basisInfoB, ergo_real *result) |
Variables | |
| static const ergo_real | MATRIX_ELEMENT_THRESHOLD_VALUE = 1e-12 |
Full and sparse versions.
| int compute_operator_matrix_full | ( | const BasisInfoStruct & | basisInfoA, | |
| const BasisInfoStruct & | basisInfoB, | |||
| int | pow_x, | |||
| int | pow_y, | |||
| int | pow_z, | |||
| ergo_real * | result | |||
| ) |
| int compute_operator_matrix_sparse | ( | const BasisInfoStruct & | basisInfoA, | |
| const BasisInfoStruct & | basisInfoB, | |||
| int | pow_x, | |||
| int | pow_y, | |||
| int | pow_z, | |||
| int | n_A, | |||
| int | n_B, | |||
| std::vector< int > & | nvaluesList, | |||
| std::vector< std::vector< int > > & | colindList, | |||
| std::vector< std::vector< ergo_real > > & | valuesList | |||
| ) |
computes the matrix of a dipole/quadrupole/etc operator.
The columns and rows enumerate
| basisInfoA | and | |
| basisInfoB | respectively. The operator is in the form: X = (x^pow_x*y^pow_y*z^pow_z). The resulting matrix (possibly rectangular) is returned in nvaluesList, colindList, valuesList. Overlap matrix is associated with triple (0,0,0), X component of the dipole moment with (1,0,0), etc. The parameters | |
| pow_x@param | pow_y | |
| pow_z | determine the operator. The parameters | |
| n_A@param | n_B give the number of basis functions in each of the two basis sets. The result is stored using the lists | |
| nvaluesList@param | colindList | |
| valuesList | each having length n_A. |
| int compute_overlap_matrix | ( | const BasisInfoStruct & | basisInfoA, | |
| const BasisInfoStruct & | basisInfoB, | |||
| ergo_real * | result | |||
| ) |
const ergo_real MATRIX_ELEMENT_THRESHOLD_VALUE = 1e-12 [static] |
1.4.7