============= BiInts Module ============= Here, all bi-electronic integrals (:math:`1/r_{12}`) are computed. As they have 4 indices and many are zero, they are stored in a map, as defined in ``Utils/map_module.f90``. To fetch an AO integral, use the ``get_ao_bielec_integral(i,j,k,l,ao_integrals_map)`` function, and to fetch and MO integral, use ``get_mo_bielec_integral(i,j,k,l,mo_integrals_map)`` or ``mo_bielec_integral(i,j,k,l)``. The conventions are: * For AO integrals : (ik|jl) = (11|22) * For MO integrals : = <12|12> Needed Modules ============== .. Do not edit this section It was auto-generated .. by the `update_README.py` script. .. image:: tree_dependency.png * `Pseudo `_ * `Bitmask `_ Needed Modules ============== .. Do not edit this section It was auto-generated .. by the `update_README.py` script. .. image:: tree_dependency.png * `Pseudo `_ * `Bitmask `_ * `ZMQ `_ * `FourIdx `_ Documentation ============= .. Do not edit this section It was auto-generated .. by the `update_README.py` script. `add_integrals_to_map `_ Adds integrals to tha MO map according to some bitmask `add_integrals_to_map_no_exit_34 `_ Adds integrals to tha MO map according to some bitmask `add_integrals_to_map_three_indices `_ Adds integrals to tha MO map according to some bitmask `ao_bielec_integral `_ integral of the AO basis or (ij|kl) i(r1) j(r1) 1/r12 k(r2) l(r2) `ao_bielec_integral_schwartz `_ Needed to compute Schwartz inequalities `ao_bielec_integral_schwartz_accel `_ integral of the AO basis or (ij|kl) i(r1) j(r1) 1/r12 k(r2) l(r2) `ao_bielec_integrals_in_map `_ Map of Atomic integrals i(r1) j(r2) 1/r12 k(r1) l(r2) `ao_bielec_integrals_in_map_collector `_ Collects results from the AO integral calculation `ao_bielec_integrals_in_map_slave `_ Computes a buffer of integrals `ao_bielec_integrals_in_map_slave_inproc `_ Computes a buffer of integrals. i is the ID of the current thread. `ao_bielec_integrals_in_map_slave_tcp `_ Computes a buffer of integrals. i is the ID of the current thread. `ao_integrals_cache `_ Cache of AO integrals for fast access `ao_integrals_cache_max `_ Min and max values of the AOs for which the integrals are in the cache `ao_integrals_cache_min `_ Min and max values of the AOs for which the integrals are in the cache `ao_integrals_map `_ AO integrals `ao_integrals_threshold `_ If || < ao_integrals_threshold then is zero `ao_l4 `_ Computes the product of l values of i,j,k,and l `bench_maps `_ Performs timing benchmarks on integral access `bielec_integrals_index `_ Undocumented `bielec_integrals_index_reverse `_ Undocumented `big_array_coulomb_integrals `_ Undocumented `big_array_exchange_integrals `_ Undocumented `clear_ao_map `_ Frees the memory of the AO map `clear_mo_map `_ Frees the memory of the MO map `compute_ao_bielec_integrals `_ Compute AO 1/r12 integrals for all i and fixed j,k,l `compute_ao_integrals_jl `_ Parallel client for AO integrals `disk_access_ao_integrals `_ Read/Write AO integrals from/to disk [ Write | Read | None ] `disk_access_mo_integrals `_ Read/Write MO integrals from/to disk [ Write | Read | None ] `do_direct_integrals `_ Compute integrals on the fly `dump_ao_integrals `_ Save to disk the $ao integrals `dump_mo_integrals `_ Save to disk the $ao integrals `eri `_ ATOMIC PRIMTIVE bielectronic integral between the 4 primitives :: primitive_1 = x1**(a_x) y1**(a_y) z1**(a_z) exp(-alpha * r1**2) primitive_2 = x1**(b_x) y1**(b_y) z1**(b_z) exp(- beta * r1**2) primitive_3 = x2**(c_x) y2**(c_y) z2**(c_z) exp(-delta * r2**2) primitive_4 = x2**(d_x) y2**(d_y) z2**(d_z) exp(- gama * r2**2) `four_idx `_ 4-index transformation from AO to MO integrals `gauleg `_ Gauss-Legendre `gauleg_t2 `_ t_w(i,1,k) = w(i) t_w(i,2,k) = t(i) `gauleg_w `_ t_w(i,1,k) = w(i) t_w(i,2,k) = t(i) `general_primitive_integral `_ Computes the integral where p,q,r,s are Gaussian primitives `get_ao_bielec_integral `_ Gets one AO bi-electronic integral from the AO map `get_ao_bielec_integrals `_ Gets multiple AO bi-electronic integral from the AO map . All i are retrieved for j,k,l fixed. `get_ao_bielec_integrals_non_zero `_ Gets multiple AO bi-electronic integral from the AO map . All non-zero i are retrieved for j,k,l fixed. `get_ao_map_size `_ Returns the number of elements in the AO map `get_mo_bielec_integral `_ Returns one integral in the MO basis `get_mo_bielec_integrals `_ Returns multiple integrals in the MO basis, all i for j,k,l fixed. `get_mo_bielec_integrals_coulomb_ii `_ Returns multiple integrals k(1)i(2) 1/r12 l(1)i(2) :: out_val(i1) for k,l fixed. `get_mo_bielec_integrals_exch_ii `_ Returns multiple integrals k(1)i(2) 1/r12 i(1)l(2) :: out_val(i1) for k,l fixed. `get_mo_bielec_integrals_ij `_ Returns multiple integrals in the MO basis, all i(1)j(2) 1/r12 k(1)l(2) i, j for k,l fixed. `get_mo_map_size `_ Return the number of elements in the MO map `give_polynom_mult_center_x `_ subroutine that returns the explicit polynom in term of the "t" variable of the following polynomw : I_x1(a_x, d_x,p,q) * I_x1(a_y, d_y,p,q) * I_x1(a_z, d_z,p,q) `i_x1_new `_ recursive function involved in the bielectronic integral `i_x1_pol_mult `_ recursive function involved in the bielectronic integral `i_x1_pol_mult_a1 `_ recursive function involved in the bielectronic integral `i_x1_pol_mult_a2 `_ recursive function involved in the bielectronic integral `i_x1_pol_mult_recurs `_ recursive function involved in the bielectronic integral `i_x2_new `_ recursive function involved in the bielectronic integral `i_x2_pol_mult `_ recursive function involved in the bielectronic integral `insert_into_ao_integrals_map `_ Create new entry into AO map `insert_into_mo_integrals_map `_ Create new entry into MO map, or accumulate in an existing entry `integrale_new `_ calculate the integral of the polynom :: I_x1(a_x+b_x, c_x+d_x,p,q) * I_x1(a_y+b_y, c_y+d_y,p,q) * I_x1(a_z+b_z, c_z+d_z,p,q) between ( 0 ; 1) `load_ao_integrals `_ Read from disk the $ao integrals `load_mo_integrals `_ Read from disk the $ao integrals `mo_bielec_integral `_ Returns one integral in the MO basis `mo_bielec_integral_jj `_ mo_bielec_integral_jj(i,j) = J_ij mo_bielec_integral_jj_exchange(i,j) = K_ij mo_bielec_integral_jj_anti(i,j) = J_ij - K_ij `mo_bielec_integral_jj_anti `_ mo_bielec_integral_jj(i,j) = J_ij mo_bielec_integral_jj_exchange(i,j) = K_ij mo_bielec_integral_jj_anti(i,j) = J_ij - K_ij `mo_bielec_integral_jj_anti_from_ao `_ mo_bielec_integral_jj_from_ao(i,j) = J_ij mo_bielec_integral_jj_exchange_from_ao(i,j) = J_ij mo_bielec_integral_jj_anti_from_ao(i,j) = J_ij - K_ij `mo_bielec_integral_jj_exchange `_ mo_bielec_integral_jj(i,j) = J_ij mo_bielec_integral_jj_exchange(i,j) = K_ij mo_bielec_integral_jj_anti(i,j) = J_ij - K_ij `mo_bielec_integral_jj_exchange_from_ao `_ mo_bielec_integral_jj_from_ao(i,j) = J_ij mo_bielec_integral_jj_exchange_from_ao(i,j) = J_ij mo_bielec_integral_jj_anti_from_ao(i,j) = J_ij - K_ij `mo_bielec_integral_jj_from_ao `_ mo_bielec_integral_jj_from_ao(i,j) = J_ij mo_bielec_integral_jj_exchange_from_ao(i,j) = J_ij mo_bielec_integral_jj_anti_from_ao(i,j) = J_ij - K_ij `mo_bielec_integral_vv_anti_from_ao `_ mo_bielec_integral_vv_from_ao(i,j) = J_ij mo_bielec_integral_vv_exchange_from_ao(i,j) = J_ij mo_bielec_integral_vv_anti_from_ao(i,j) = J_ij - K_ij but only for the virtual orbitals `mo_bielec_integral_vv_exchange_from_ao `_ mo_bielec_integral_vv_from_ao(i,j) = J_ij mo_bielec_integral_vv_exchange_from_ao(i,j) = J_ij mo_bielec_integral_vv_anti_from_ao(i,j) = J_ij - K_ij but only for the virtual orbitals `mo_bielec_integral_vv_from_ao `_ mo_bielec_integral_vv_from_ao(i,j) = J_ij mo_bielec_integral_vv_exchange_from_ao(i,j) = J_ij mo_bielec_integral_vv_anti_from_ao(i,j) = J_ij - K_ij but only for the virtual orbitals `mo_bielec_integrals_in_map `_ If True, the map of MO bielectronic integrals is provided `mo_bielec_integrals_index `_ Computes an unique index for i,j,k,l integrals `mo_integrals_cache `_ Cache of MO integrals for fast access `mo_integrals_cache_max `_ Min and max values of the MOs for which the integrals are in the cache `mo_integrals_cache_max_8 `_ Min and max values of the MOs for which the integrals are in the cache `mo_integrals_cache_min `_ Min and max values of the MOs for which the integrals are in the cache `mo_integrals_cache_min_8 `_ Min and max values of the MOs for which the integrals are in the cache `mo_integrals_map `_ MO integrals `mo_integrals_threshold `_ If || < ao_integrals_threshold then is zero `n_pt_sup `_ Returns the upper boundary of the degree of the polynomial involved in the bielctronic integral : Ix(a_x,b_x,c_x,d_x) * Iy(a_y,b_y,c_y,d_y) * Iz(a_z,b_z,c_z,d_z) `no_ivvv_integrals `_ Can be switched on only if no_vvvv_integrals is True, then do not computes the integrals having 3 virtual index and 1 belonging to the core inactive active orbitals `no_vvv_integrals `_ Can be switched on only if no_vvvv_integrals is True, then do not computes the integrals having 3 virtual orbitals `no_vvvv_integrals `_ If True, computes all integrals except for the integrals having 4 virtual index `provide_all_mo_integrals `_ Undocumented `push_integrals `_ Push integrals in the push socket `qp_ao_ints `_ Increments a running calculation to compute AO integrals `read_ao_integrals `_ One level of abstraction for disk_access_ao_integrals and disk_access_mo_integrals `read_mo_integrals `_ One level of abstraction for disk_access_ao_integrals and disk_access_mo_integrals `set_integrals_exchange_jj_into_map `_ Undocumented `set_integrals_jj_into_map `_ Undocumented `write_ao_integrals `_ One level of abstraction for disk_access_ao_integrals and disk_access_mo_integrals `write_mo_integrals `_ One level of abstraction for disk_access_ao_integrals and disk_access_mo_integrals