![]() |
(git:1f9fd2c)
|
Interface to the LibGint-Library. More...
Data Types | |
| interface | libgint_get_fock_matrix |
| interface | libgint_set_density |
Functions/Subroutines | |
| subroutine, public | cp_libgint_init (actual_x_data) |
| Sets libGint internal enviroment, must be called at least once before libGint can be used. | |
| subroutine, public | libgint_update_env (fac, memory_parameter, do_periodic, cell, actual_x_data, nneighbors, max_pgf, natom, kind_of, particle_set, basis_parameter) |
| Initialize and update the libGint computational environment. Must be called at least once after geo_change and before libGint can be used. | |
| subroutine, public | libgint_coulomb4 (iatom, jatom, katom, latom, iset, jset, kset, lset, ra, rb, rc, rd, npgfa, npgfb, npgfc, npgfd, potential_parameter, screen1, screen2, log10_pmax, log10_eps_schwarz, pgf1, pgf2, neighbor_cells, cell, do_periodic, screened) |
| Assign two-electron integrals of a quartet/shell to libGint. | |
| subroutine, public | libgint_update_fock_matrix (symm_fac, iatom, jatom, katom, latom, iset, jset, kset, lset, atomic_offset_ac, atomic_offset_ad, atomic_offset_bc, atomic_offset_bd, offset_ac_set, offset_ad_set, offset_bc_set, offset_bd_set, nsgfa, nsgfb, nsgfc, nsgfd, la_min, la_max, lb_min, lb_max, lc_min, lc_max, ld_min, ld_max, nsgfl_a, nsgfl_b, nsgfl_c, nsgfl_d) |
| The previous coulomb_4 function assigned an integral between primitive gaussian. Now we assign the nsgfa(iset)*b*c*d gcc integrals form this set, along with the Pac Pad Pbc Pbd density to the Kbd Kbc Kad Kac Fock matrix. | |
Interface to the LibGint-Library.
| subroutine, public libgint_wrapper::cp_libgint_init | ( | type(hfx_type), intent(in), pointer | actual_x_data | ) |
Sets libGint internal enviroment, must be called at least once before libGint can be used.
| [in] | actual_x_data | pointer to hfx_data |
Definition at line 68 of file libgint_wrapper.F.
| subroutine, public libgint_wrapper::libgint_update_env | ( | real(dp) | fac, |
| type(hfx_memory_type), pointer | memory_parameter, | ||
| logical | do_periodic, | ||
| type(cell_type), pointer | cell, | ||
| type(hfx_type), pointer | actual_x_data, | ||
| integer | nneighbors, | ||
| integer | max_pgf, | ||
| integer | natom, | ||
| integer, dimension(:), allocatable | kind_of, | ||
| type(particle_type), dimension(:), pointer | particle_set, | ||
| type(hfx_basis_type), dimension(:), pointer | basis_parameter | ||
| ) |
Initialize and update the libGint computational environment. Must be called at least once after geo_change and before libGint can be used.
This routine sets up data required by the libGint integral engine, including Hartree–Fock scaling factors, memory limits, periodic cell information, and per-atom/basis-set data. It also allocates CPU-side buffers (bra and ket) used for storing screened Gaussian primitive pairs.
| [in] | fac | Fraction of exact exchange |
| [in] | memory_parameter | Pointer to memory configuration |
| [in] | do_periodic | Logical flag: whether to consider pbc |
| [in] | cell | primitive simulation cell |
| [in] | actual_x_data | HF exchange data |
| [in] | nneighbors | Lattice points |
| [in] | max_pgf | Maximum number of primitive Gaussians per shel |
| [in] | natom | Number of atoms in the system |
| [in] | kind_of | Array mapping atom indices to atomic kinds |
| [in] | particle_set | particle set, we extract the positions |
| [in] | basis_parameter | gaussian basis set parameters |
Definition at line 112 of file libgint_wrapper.F.
| subroutine, public libgint_wrapper::libgint_coulomb4 | ( | integer, intent(in) | iatom, |
| integer, intent(in) | jatom, | ||
| integer, intent(in) | katom, | ||
| integer, intent(in) | latom, | ||
| integer, intent(in) | iset, | ||
| integer, intent(in) | jset, | ||
| integer, intent(in) | kset, | ||
| integer, intent(in) | lset, | ||
| real(dp), dimension(3), intent(in) | ra, | ||
| real(dp), dimension(3), intent(in) | rb, | ||
| real(dp), dimension(3), intent(in) | rc, | ||
| real(dp), dimension(3), intent(in) | rd, | ||
| integer, intent(in) | npgfa, | ||
| integer, intent(in) | npgfb, | ||
| integer, intent(in) | npgfc, | ||
| integer, intent(in) | npgfd, | ||
| type(hfx_potential_type) | potential_parameter, | ||
| real(dp), dimension(2), intent(in) | screen1, | ||
| real(dp), dimension(2), intent(in) | screen2, | ||
| real(dp), intent(in) | log10_pmax, | ||
| real(dp), intent(in) | log10_eps_schwarz, | ||
| type(hfx_screen_coeff_type), dimension(:, :), pointer | pgf1, | ||
| type(hfx_screen_coeff_type), dimension(:, :), pointer | pgf2, | ||
| type(hfx_cell_type), dimension(:), pointer | neighbor_cells, | ||
| type(cell_type), pointer | cell, | ||
| logical, intent(in) | do_periodic, | ||
| logical, intent(out) | screened | ||
| ) |
Assign two-electron integrals of a quartet/shell to libGint.
First we build a list of ab primitives and cd primitives using build_pair_list_pbc_pgf These lists will contain (before screening) n_cell * npgf * npgf. We loop over both and send ab(g) | cd(h) to libgint, which will loop internally over n
| [in] | iatom | index of atom I / A |
| [in] | jatom | index of atom J / B |
| [in] | katom | index of atom K / C |
| [in] | latom | index of atom L / D |
| [in] | iset | index of the set for atom iatom we are adding |
| [in] | jset | index of the set for atom jatom we are adding |
| [in] | kset | index of the set for atom katom we are adding |
| [in] | lset | index of the set for atom latom we are adding |
| [in] | ra | position of atom iatom |
| [in] | rb | position of atom jatom |
| [in] | rc | position of atom katom |
| [in] | rd | position of atom latom |
| [in] | npgfa | number of gaussians in set iset of atom iatom |
| [in] | npgfb | number of gaussians in set jset of atom jatom |
| [in] | npgfc | number of gaussians in set kset of atom katom |
| [in] | npgfd | number of gaussians in set lset of atom latom |
| [in] | potential_parameter | information about the potential |
| [in] | screen1 | screening information for AB pair |
| [in] | screen2 | screening information for CD pair |
| [in] | log10_pmax | density screening factor |
| [in] | log10_eps_schwarz | screening tolerance |
| [in] | pgf1 | screening information for each AB pair primitive |
| [in] | pgf2 | screening information for each CD pair primitive |
| [in] | neighbor_cells | array with lattice vectors |
| [in] | cell | information about the simulation box |
| [in] | do_periodic | flag for pbc |
| [out] | screened | whether the whole quartet was screened out |
Definition at line 310 of file libgint_wrapper.F.
| subroutine, public libgint_wrapper::libgint_update_fock_matrix | ( | real(dp) | symm_fac, |
| integer | iatom, | ||
| integer | jatom, | ||
| integer | katom, | ||
| integer | latom, | ||
| integer | iset, | ||
| integer | jset, | ||
| integer | kset, | ||
| integer | lset, | ||
| integer | atomic_offset_ac, | ||
| integer | atomic_offset_ad, | ||
| integer | atomic_offset_bc, | ||
| integer | atomic_offset_bd, | ||
| integer, dimension(:, :), pointer | offset_ac_set, | ||
| integer, dimension(:, :), pointer | offset_ad_set, | ||
| integer, dimension(:, :), pointer | offset_bc_set, | ||
| integer, dimension(:, :), pointer | offset_bd_set, | ||
| integer | nsgfa, | ||
| integer | nsgfb, | ||
| integer | nsgfc, | ||
| integer | nsgfd, | ||
| integer | la_min, | ||
| integer | la_max, | ||
| integer | lb_min, | ||
| integer | lb_max, | ||
| integer | lc_min, | ||
| integer | lc_max, | ||
| integer | ld_min, | ||
| integer | ld_max, | ||
| integer, dimension(:, :), pointer | nsgfl_a, | ||
| integer, dimension(:, :), pointer | nsgfl_b, | ||
| integer, dimension(:, :), pointer | nsgfl_c, | ||
| integer, dimension(:, :), pointer | nsgfl_d | ||
| ) |
The previous coulomb_4 function assigned an integral between primitive gaussian. Now we assign the nsgfa(iset)*b*c*d gcc integrals form this set, along with the Pac Pad Pbc Pbd density to the Kbd Kbc Kad Kac Fock matrix.
| [in] | symm_fac | simmetry factor from iatom=jatom and the like |
| [in] | iatom | index of atom A |
| [in] | jatom | index of atom B |
| [in] | katom | index of atom C |
| [in] | latom | index of atom D |
| [in] | iset | index of set for atom A |
| [in] | jset | index of set for atom B |
| [in] | kset | index of set for atom C |
| [in] | lset | index of set for atom D |
| [in] | atomic_offset_ac | global offset for the pair of A and C atom in the density ( and Fock) matrix |
| [in] | atomic_offset_ad | global offset for the pair of A and D atom in the density ( and Fock) matrix |
| [in] | atomic_offset_bc | global offset for the pair of B and C atom in the density ( and Fock) matrix |
| [in] | atomic_offset_bd | global offset for the pair of B and D atom in the density ( and Fock) matrix |
| [in] | offset_ac_set | matrix of sub_offset for sets in atomic_offset_ac |
| [in] | offset_ad_set | matrix of sub_offset for sets in atomic_offset_ad |
| [in] | offset_bc_set | matrix of sub_offset for sets in atomic_offset_bc |
| [in] | offset_bd_set | matrix of sub_offset for sets in atomic_offset_bd |
| [in] | nsgfa | total number of (spherical, contracted) integrals for iset. Used as leading dimension of the AC, AD sublock, depending on transposition |
| [in] | nsgfb | total number of (spherical, contracted) integrals for jset. Used as leading dimension of the BC, BD sublock, depending on transposition |
| [in] | nsgfc | total number of (spherical, contracted) integrals for kset. Used as leading dimension of the AC, BC sublock, depending on transposition |
| [in] | nsgfd | total number of (spherical, contracted) integrals for lset. Used as leading dimension of the AD, BD sublock, depending on transposition |
| [in] | la_min | minumum angular moment in set iset of atom A |
| [in] | la_max | maximum angular moment in set iset of atom A |
| [in] | lb_min | minumum angular moment in set iset of atom B |
| [in] | lb_max | maximum angular moment in set iset of atom B |
| [in] | lc_min | minumum angular moment in set iset of atom C |
| [in] | lc_max | maximum angular moment in set iset of atom C |
| [in] | ld_min | minumum angular moment in set iset of atom D |
| [in] | ld_max | maximum angular moment in set iset of atom D |
| [in] | nsgfl_a | matrix with the number of linear combinations of primitive gaussians for each angular moment for each set in atom A. We only read iset |
| [in] | nsgfl_b | matrix with the number of linear combinations of primitive gaussians for each angular moment for each set in atom B. We only read jset |
| [in] | nsgfl_c | matrix with the number of linear combinations of primitive gaussians for each angular moment for each set in atom C. We only read kset |
| [in] | nsgfl_d | matrix with the number of linear combinations of primitive gaussians for each angular moment for each set in atom D. We only read lset |
Definition at line 496 of file libgint_wrapper.F.