basis information
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
logical, | public | :: | yes_initialized | = | .false. | ||
integer, | public | :: | n_basis |
total # of basis functions |
|||
integer, | public | :: | nr_basis |
total # of basis functions projected out |
|||
real(kind=long), | public, | allocatable | :: | func(:,:) |
(1:N_grid,1:N_basis) |
||
real(kind=long), | public, | allocatable | :: | dfdr(:,:,:) |
(1:N_grid,1:N_basis,3) |
||
real(kind=long), | public, | allocatable | :: | d2f(:,:) |
(1:N_grid,1:N_basis) |
||
logical, | public, | allocatable | :: | yes_skip(:,:) |
(1:N_nuc,1:N_basis) skip if all basis functions (and its deriv.) are zero for a given atom A it helps to speed up because we know that B%func are zero if r > A%rmax and we don't need to evaluate anything beyond A%rmax --> initialized in place_AO_on_Grid3D() |
||
integer, | public, | allocatable | :: | info(:,:) |
basis function info B%info(i,1) : atomic index for the i-th basis B%info(i,2) : nuclear charge for the i-th basis B%info(i,3) : n of AO for the i-th basis B%info(i,4) : l of AO for the i-th basis B%info(i,5) : m of AO for the i-th basis |
||
character(len=10), | public, | allocatable | :: | label(:) | |||
real(kind=long), | public, | allocatable | :: | s(:,:) |
overlap matrix |
||
real(kind=long), | public, | allocatable | :: | ssqrt(:,:) |
sqrt overlap matrix |
||
real(kind=long), | public, | allocatable | :: | sinvsqrt(:,:) |
sqrt of inverse overlap matrix |
||
real(kind=long), | public, | allocatable | :: | sinv(:,:) |
inverse overlap matrix |
||
real(kind=long), | public, | allocatable | :: | x(:,:) | |||
real(kind=long), | public, | allocatable | :: | xxts(:,:) | |||
real(kind=long), | public, | allocatable | :: | hkin(:,:) |
Kinetic operator matrix, (1:N_basis,1:N_basis) |
||
real(kind=long), | public, | allocatable | :: | vext(:,:) |
Nuclear potential (1:N_basis,1:N_basis) |
||
real(kind=long), | public, | allocatable | :: | h0(:,:) |
Kinetic + nuclear potential |
||
real(kind=long), | public, | allocatable | :: | teint(:) |
Two-Electron integrals |
||
logical, | public, | allocatable | :: | yes_overlap(:,:) |
yes_overlap(k_nuc,ij): whether a multiplication of two basis functions (i and j) contributes to the k_nuc-th atomic sphere [k_nuc=1...N_nuc] If this variable is yes, then the k_nuc-th atom will be included in multicenter integration involving the i-th and j-th basis functions. If no, then it is not included, which means "save the CPU time!" Here k_nuc=0 means consideration of all atomic spheres. It can be used for a simple and quick condition. The index ij is defined by ij = i+j(j-1)/2 from a packed storage scheme for an upper trianglular matrix, [ij=1...N_basis(N_basis+1)/2]. SEE: http://www.netlib.org/lapack/lug/node123.html When i == j, yes_overlap is determined by EPS_overlap_single. When i /= j, yes_overlap is determined by EPS_overlap. ! Most of cases, EPS_overlap_single should be smaller than EPS_overlap. Therefore, a small number (enough for EPS_overlap_single) is used for both EPS_overlap_single and EPS_overlap even though they can be chosen separately. - default in read_param.f90: EPS_overlap = EPS_overlap_single = 1e-6 |
||
real(kind=long), | public, | allocatable | :: | overlap(:,:) | |||
real(kind=long), | public | :: | eps_overlap | ||||
real(kind=long), | public | :: | eps_overlap_single | ||||
real(kind=long), | public | :: | r_max_overlap | ||||
real(kind=long), | public | :: | error_single |
numerical accuracy for single-center and multicenter integration and integration optimization by truncation |
|||
real(kind=long), | public | :: | error_multi |
numerical accuracy for single-center and multicenter integration and integration optimization by truncation |
|||
real(kind=long), | public | :: | error_trunc |
numerical accuracy for single-center and multicenter integration and integration optimization by truncation |
|||
integer, | public, | allocatable | :: | first_bf_on_atom(:) | |||
integer, | public, | allocatable | :: | num_bf_on_atom(:) | |||
logical, | public | :: | yes_symmetry(n_symop) | ||||
integer, | public, | allocatable | :: | irrep_prod(:,:) | |||
real(kind=long), | public, | allocatable | :: | sym_bf(:,:) |
conversion matrix from symmetric bf to atomic orbitals |
||
integer, | public, | allocatable | :: | irrep_sym_bf(:) |
index of irreducible representation per sym bf |
||
integer, | public, | allocatable | :: | irrep_sym_bfr(:) |
index of irreducible representation per sym bf |
||
character(len=5), | public | :: | sym_label |
Schoenflies symbol |
|||
integer, | public | :: | nirrep |
number of irrep |
|||
character(len=4), | public, | allocatable | :: | irrep_name(:) |
name of irrep |
||
real(kind=long), | public | :: | minimal_s_eigenvalue |
minimal overlap matrix eigenvalue |
|||
real(kind=long), | public | :: | minimal_s_remaining_eigenvalue |
minimal overlap matrix eigenval that is not projected out |
|||
real(kind=long), | public, | allocatable | :: | env(:) | |||
integer, | public, | allocatable | :: | atm(:,:) | |||
integer, | public, | allocatable | :: | bas(:,:) | |||
integer, | public, | allocatable | :: | first_bf_of_shell(:) |