mirror of
https://github.com/LCPQ/quantum_package
synced 2024-12-23 04:43:50 +01:00
Save Mono integrals to disk
This commit is contained in:
parent
1bb1575da2
commit
d171e34a38
@ -107,6 +107,10 @@ h_apply_fci_pt2
|
|||||||
excitations (of the same symmetry). Auto-generated by the ``generate_h_apply`` script.
|
excitations (of the same symmetry). Auto-generated by the ``generate_h_apply`` script.
|
||||||
|
|
||||||
|
|
||||||
|
h_apply_fci_pt2_collector
|
||||||
|
Collects results from the selection in an array of generators
|
||||||
|
|
||||||
|
|
||||||
h_apply_fci_pt2_diexc
|
h_apply_fci_pt2_diexc
|
||||||
Undocumented
|
Undocumented
|
||||||
|
|
||||||
@ -127,6 +131,19 @@ h_apply_fci_pt2_monoexc
|
|||||||
Assume N_int is already provided.
|
Assume N_int is already provided.
|
||||||
|
|
||||||
|
|
||||||
|
h_apply_fci_pt2_slave
|
||||||
|
Calls H_apply on the HF determinant and selects all connected single and double
|
||||||
|
excitations (of the same symmetry). Auto-generated by the ``generate_h_apply`` script.
|
||||||
|
|
||||||
|
|
||||||
|
h_apply_fci_pt2_slave_inproc
|
||||||
|
Computes a buffer using threads
|
||||||
|
|
||||||
|
|
||||||
|
h_apply_fci_pt2_slave_tcp
|
||||||
|
Computes a buffer over the network
|
||||||
|
|
||||||
|
|
||||||
h_apply_pt2_mono_delta_rho
|
h_apply_pt2_mono_delta_rho
|
||||||
Calls H_apply on the HF determinant and selects all connected single and double
|
Calls H_apply on the HF determinant and selects all connected single and double
|
||||||
excitations (of the same symmetry). Auto-generated by the ``generate_h_apply`` script.
|
excitations (of the same symmetry). Auto-generated by the ``generate_h_apply`` script.
|
||||||
@ -227,6 +244,18 @@ h_apply_select_mono_di_delta_rho_monoexc
|
|||||||
Assume N_int is already provided.
|
Assume N_int is already provided.
|
||||||
|
|
||||||
|
|
||||||
|
`micro_pt2 <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI/micro_pt2.irp.f#L1>`_
|
||||||
|
Helper program to compute the PT2 in distributed mode.
|
||||||
|
|
||||||
|
|
||||||
|
`provide_everything <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI/micro_pt2.irp.f#L15>`_
|
||||||
|
Undocumented
|
||||||
|
|
||||||
|
|
||||||
|
`run_wf <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI/micro_pt2.irp.f#L19>`_
|
||||||
|
Undocumented
|
||||||
|
|
||||||
|
|
||||||
`var_pt2_ratio_run <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI/var_pt2_ratio.irp.f#L1>`_
|
`var_pt2_ratio_run <http://github.com/LCPQ/quantum_package/tree/master/plugins/Full_CI/var_pt2_ratio.irp.f#L1>`_
|
||||||
Undocumented
|
Undocumented
|
||||||
|
|
||||||
|
Binary file not shown.
Before Width: | Height: | Size: 98 KiB After Width: | Height: | Size: 110 KiB |
@ -31,3 +31,12 @@ BEGIN_PROVIDER [ character*(128), ezfio_filename ]
|
|||||||
|
|
||||||
END_PROVIDER
|
END_PROVIDER
|
||||||
|
|
||||||
|
BEGIN_PROVIDER [ character*(128), ezfio_work_dir ]
|
||||||
|
implicit none
|
||||||
|
BEGIN_DOC
|
||||||
|
! EZFIO/work/
|
||||||
|
END_DOC
|
||||||
|
call ezfio_set_work_empty(.False.)
|
||||||
|
ezfio_work_dir = trim(ezfio_filename)//'/work/'
|
||||||
|
END_PROVIDER
|
||||||
|
|
||||||
|
@ -9,6 +9,12 @@ Here, all bi-electronic integrals (:math:`1/r_{12}`) are computed. As they have
|
|||||||
MO integral, use ``get_mo_bielec_integral(i,j,k,l,mo_integrals_map)`` or
|
MO integral, use ``get_mo_bielec_integral(i,j,k,l,mo_integrals_map)`` or
|
||||||
``mo_bielec_integral(i,j,k,l)``.
|
``mo_bielec_integral(i,j,k,l)``.
|
||||||
|
|
||||||
|
The conventions are:
|
||||||
|
|
||||||
|
* For AO integrals : (ik|jl) = (11|22)
|
||||||
|
* For MO integrals : <ij|kl> = <12|12>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Needed Modules
|
Needed Modules
|
||||||
==============
|
==============
|
||||||
@ -48,37 +54,41 @@ Documentation
|
|||||||
i(r1) j(r1) 1/r12 k(r2) l(r2)
|
i(r1) j(r1) 1/r12 k(r2) l(r2)
|
||||||
|
|
||||||
|
|
||||||
`ao_bielec_integral_schwartz <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/ao_bi_integrals.irp.f#L442>`_
|
`ao_bielec_integral_schwartz <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/ao_bi_integrals.irp.f#L412>`_
|
||||||
Needed to compute Schwartz inequalities
|
Needed to compute Schwartz inequalities
|
||||||
|
|
||||||
|
|
||||||
`ao_bielec_integral_schwartz_accel <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/ao_bi_integrals.irp.f#L107>`_
|
`ao_bielec_integral_schwartz_accel <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/ao_bi_integrals.irp.f#L106>`_
|
||||||
integral of the AO basis <ik|jl> or (ij|kl)
|
integral of the AO basis <ik|jl> or (ij|kl)
|
||||||
i(r1) j(r1) 1/r12 k(r2) l(r2)
|
i(r1) j(r1) 1/r12 k(r2) l(r2)
|
||||||
|
|
||||||
|
|
||||||
`ao_bielec_integrals_in_map <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/ao_bi_integrals.irp.f#L330>`_
|
`ao_bielec_integrals_in_map <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/ao_bi_integrals.irp.f#L328>`_
|
||||||
Map of Atomic integrals
|
Map of Atomic integrals
|
||||||
i(r1) j(r2) 1/r12 k(r1) l(r2)
|
i(r1) j(r2) 1/r12 k(r1) l(r2)
|
||||||
|
|
||||||
|
|
||||||
`ao_bielec_integrals_in_map_collector <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/ao_bielec_integrals_in_map_slave.irp.f#L57>`_
|
`ao_bielec_integrals_in_map_collector <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/ao_bielec_integrals_in_map_slave.irp.f#L181>`_
|
||||||
Collects results from the AO integral calculation
|
Collects results from the AO integral calculation
|
||||||
|
|
||||||
|
|
||||||
`ao_bielec_integrals_in_map_slave <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/ao_bielec_integrals_in_map_slave.irp.f#L1>`_
|
`ao_bielec_integrals_in_map_slave <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/ao_bielec_integrals_in_map_slave.irp.f#L72>`_
|
||||||
Computes a buffer of integrals
|
Computes a buffer of integrals
|
||||||
|
|
||||||
|
|
||||||
|
`ao_bielec_integrals_in_map_slave_inproc <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/ao_bielec_integrals_in_map_slave.irp.f#L11>`_
|
||||||
|
Computes a buffer of integrals. i is the ID of the current thread.
|
||||||
|
|
||||||
|
|
||||||
|
`ao_bielec_integrals_in_map_slave_tcp <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/ao_bielec_integrals_in_map_slave.irp.f#L1>`_
|
||||||
|
Computes a buffer of integrals. i is the ID of the current thread.
|
||||||
|
|
||||||
|
|
||||||
`ao_integrals_map <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/map_integrals.irp.f#L6>`_
|
`ao_integrals_map <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/map_integrals.irp.f#L6>`_
|
||||||
AO integrals
|
AO integrals
|
||||||
|
|
||||||
|
|
||||||
`ao_integrals_threshold <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/ezfio_interface.irp.f#L46>`_
|
`ao_l4 <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/ao_bi_integrals.irp.f#L278>`_
|
||||||
If |<pq|rs>| < ao_integrals_threshold then <pq|rs> is zero
|
|
||||||
|
|
||||||
|
|
||||||
`ao_l4 <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/ao_bi_integrals.irp.f#L279>`_
|
|
||||||
Computes the product of l values of i,j,k,and l
|
Computes the product of l values of i,j,k,and l
|
||||||
|
|
||||||
|
|
||||||
@ -98,39 +108,27 @@ Documentation
|
|||||||
Frees the memory of the AO map
|
Frees the memory of the AO map
|
||||||
|
|
||||||
|
|
||||||
`clear_mo_map <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/mo_bi_integrals.irp.f#L508>`_
|
`clear_mo_map <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/mo_bi_integrals.irp.f#L490>`_
|
||||||
Frees the memory of the MO map
|
Frees the memory of the MO map
|
||||||
|
|
||||||
|
|
||||||
`compute_ao_bielec_integrals <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/ao_bi_integrals.irp.f#L290>`_
|
`compute_ao_bielec_integrals <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/ao_bi_integrals.irp.f#L289>`_
|
||||||
Compute AO 1/r12 integrals for all i and fixed j,k,l
|
Compute AO 1/r12 integrals for all i and fixed j,k,l
|
||||||
|
|
||||||
|
|
||||||
`compute_ao_integrals_jl <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/ao_bi_integrals.irp.f#L1202>`_
|
`compute_ao_integrals_jl <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/ao_bi_integrals.irp.f#L1172>`_
|
||||||
Parallel client for AO integrals
|
Parallel client for AO integrals
|
||||||
|
|
||||||
|
|
||||||
`disk_access_ao_integrals <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/ezfio_interface.irp.f#L28>`_
|
`dump_ao_integrals <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/map_integrals.irp.f_template_561#L3>`_
|
||||||
Read/Write AO integrals from/to disk [ Write | Read | None ]
|
|
||||||
|
|
||||||
|
|
||||||
`disk_access_mo_integrals <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/ezfio_interface.irp.f#L68>`_
|
|
||||||
Read/Write MO integrals from/to disk [ Write | Read | None ]
|
|
||||||
|
|
||||||
|
|
||||||
`do_direct_integrals <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/ezfio_interface.irp.f#L6>`_
|
|
||||||
Compute integrals on the fly
|
|
||||||
|
|
||||||
|
|
||||||
`dump_ao_integrals <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/map_integrals.irp.f_template_562#L3>`_
|
|
||||||
Save to disk the $ao integrals
|
Save to disk the $ao integrals
|
||||||
|
|
||||||
|
|
||||||
`dump_mo_integrals <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/map_integrals.irp.f_template_562#L137>`_
|
`dump_mo_integrals <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/map_integrals.irp.f_template_561#L137>`_
|
||||||
Save to disk the $ao integrals
|
Save to disk the $ao integrals
|
||||||
|
|
||||||
|
|
||||||
`eri <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/ao_bi_integrals.irp.f#L605>`_
|
`eri <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/ao_bi_integrals.irp.f#L575>`_
|
||||||
ATOMIC PRIMTIVE bielectronic integral between the 4 primitives ::
|
ATOMIC PRIMTIVE bielectronic integral between the 4 primitives ::
|
||||||
primitive_1 = x1**(a_x) y1**(a_y) z1**(a_z) exp(-alpha * r1**2)
|
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_2 = x1**(b_x) y1**(b_y) z1**(b_z) exp(- beta * r1**2)
|
||||||
@ -152,7 +150,7 @@ Documentation
|
|||||||
t_w(i,2,k) = t(i)
|
t_w(i,2,k) = t(i)
|
||||||
|
|
||||||
|
|
||||||
`general_primitive_integral <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/ao_bi_integrals.irp.f#L467>`_
|
`general_primitive_integral <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/ao_bi_integrals.irp.f#L437>`_
|
||||||
Computes the integral <pq|rs> where p,q,r,s are Gaussian primitives
|
Computes the integral <pq|rs> where p,q,r,s are Gaussian primitives
|
||||||
|
|
||||||
|
|
||||||
@ -174,126 +172,126 @@ Documentation
|
|||||||
Returns the number of elements in the AO map
|
Returns the number of elements in the AO map
|
||||||
|
|
||||||
|
|
||||||
`get_mo_bielec_integral <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/map_integrals.irp.f#L280>`_
|
`get_mo_bielec_integral <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/map_integrals.irp.f#L279>`_
|
||||||
Returns one integral <ij|kl> in the MO basis
|
Returns one integral <ij|kl> in the MO basis
|
||||||
|
|
||||||
|
|
||||||
`get_mo_bielec_integral_schwartz <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/map_integrals.irp.f#L298>`_
|
`get_mo_bielec_integral_schwartz <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/map_integrals.irp.f#L297>`_
|
||||||
Returns one integral <ij|kl> in the MO basis
|
Returns one integral <ij|kl> in the MO basis
|
||||||
|
|
||||||
|
|
||||||
`get_mo_bielec_integrals <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/map_integrals.irp.f#L333>`_
|
`get_mo_bielec_integrals <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/map_integrals.irp.f#L332>`_
|
||||||
Returns multiple integrals <ij|kl> in the MO basis, all
|
Returns multiple integrals <ij|kl> in the MO basis, all
|
||||||
i for j,k,l fixed.
|
i for j,k,l fixed.
|
||||||
|
|
||||||
|
|
||||||
`get_mo_bielec_integrals_ij <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/map_integrals.irp.f#L364>`_
|
`get_mo_bielec_integrals_ij <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/map_integrals.irp.f#L363>`_
|
||||||
Returns multiple integrals <ij|kl> in the MO basis, all
|
Returns multiple integrals <ij|kl> in the MO basis, all
|
||||||
i(1)j(2) 1/r12 k(1)l(2)
|
i(1)j(2) 1/r12 k(1)l(2)
|
||||||
i, j for k,l fixed.
|
i, j for k,l fixed.
|
||||||
|
|
||||||
|
|
||||||
`get_mo_map_size <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/map_integrals.irp.f#L418>`_
|
`get_mo_map_size <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/map_integrals.irp.f#L417>`_
|
||||||
Return the number of elements in the MO map
|
Return the number of elements in the MO map
|
||||||
|
|
||||||
|
|
||||||
`give_polynom_mult_center_x <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/ao_bi_integrals.irp.f#L819>`_
|
`give_polynom_mult_center_x <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/ao_bi_integrals.irp.f#L789>`_
|
||||||
subroutine that returns the explicit polynom in term of the "t"
|
subroutine that returns the explicit polynom in term of the "t"
|
||||||
variable of the following polynomw :
|
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(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 <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/ao_bi_integrals.irp.f#L738>`_
|
`i_x1_new <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/ao_bi_integrals.irp.f#L708>`_
|
||||||
recursive function involved in the bielectronic integral
|
recursive function involved in the bielectronic integral
|
||||||
|
|
||||||
|
|
||||||
`i_x1_pol_mult <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/ao_bi_integrals.irp.f#L882>`_
|
`i_x1_pol_mult <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/ao_bi_integrals.irp.f#L852>`_
|
||||||
recursive function involved in the bielectronic integral
|
recursive function involved in the bielectronic integral
|
||||||
|
|
||||||
|
|
||||||
`i_x1_pol_mult_a1 <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/ao_bi_integrals.irp.f#L1002>`_
|
`i_x1_pol_mult_a1 <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/ao_bi_integrals.irp.f#L972>`_
|
||||||
recursive function involved in the bielectronic integral
|
recursive function involved in the bielectronic integral
|
||||||
|
|
||||||
|
|
||||||
`i_x1_pol_mult_a2 <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/ao_bi_integrals.irp.f#L1056>`_
|
`i_x1_pol_mult_a2 <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/ao_bi_integrals.irp.f#L1026>`_
|
||||||
recursive function involved in the bielectronic integral
|
recursive function involved in the bielectronic integral
|
||||||
|
|
||||||
|
|
||||||
`i_x1_pol_mult_recurs <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/ao_bi_integrals.irp.f#L916>`_
|
`i_x1_pol_mult_recurs <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/ao_bi_integrals.irp.f#L886>`_
|
||||||
recursive function involved in the bielectronic integral
|
recursive function involved in the bielectronic integral
|
||||||
|
|
||||||
|
|
||||||
`i_x2_new <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/ao_bi_integrals.irp.f#L774>`_
|
`i_x2_new <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/ao_bi_integrals.irp.f#L744>`_
|
||||||
recursive function involved in the bielectronic integral
|
recursive function involved in the bielectronic integral
|
||||||
|
|
||||||
|
|
||||||
`i_x2_pol_mult <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/ao_bi_integrals.irp.f#L1118>`_
|
`i_x2_pol_mult <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/ao_bi_integrals.irp.f#L1088>`_
|
||||||
recursive function involved in the bielectronic integral
|
recursive function involved in the bielectronic integral
|
||||||
|
|
||||||
|
|
||||||
`insert_into_ao_integrals_map <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/map_integrals.irp.f#L250>`_
|
`insert_into_ao_integrals_map <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/map_integrals.irp.f#L249>`_
|
||||||
Create new entry into AO map
|
Create new entry into AO map
|
||||||
|
|
||||||
|
|
||||||
`insert_into_mo_integrals_map <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/map_integrals.irp.f#L264>`_
|
`insert_into_mo_integrals_map <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/map_integrals.irp.f#L263>`_
|
||||||
Create new entry into MO map, or accumulate in an existing entry
|
Create new entry into MO map, or accumulate in an existing entry
|
||||||
|
|
||||||
|
|
||||||
`integrale_new <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/ao_bi_integrals.irp.f#L662>`_
|
`integrale_new <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/ao_bi_integrals.irp.f#L632>`_
|
||||||
calculate the integral of the polynom ::
|
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)
|
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)
|
between ( 0 ; 1)
|
||||||
|
|
||||||
|
|
||||||
`load_ao_integrals <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/map_integrals.irp.f_template_562#L89>`_
|
`load_ao_integrals <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/map_integrals.irp.f_template_561#L89>`_
|
||||||
Read from disk the $ao integrals
|
Read from disk the $ao integrals
|
||||||
|
|
||||||
|
|
||||||
`load_mo_integrals <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/map_integrals.irp.f_template_562#L223>`_
|
`load_mo_integrals <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/map_integrals.irp.f_template_561#L223>`_
|
||||||
Read from disk the $ao integrals
|
Read from disk the $ao integrals
|
||||||
|
|
||||||
|
|
||||||
`mo_bielec_integral <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/map_integrals.irp.f#L321>`_
|
`mo_bielec_integral <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/map_integrals.irp.f#L320>`_
|
||||||
Returns one integral <ij|kl> in the MO basis
|
Returns one integral <ij|kl> in the MO basis
|
||||||
|
|
||||||
|
|
||||||
`mo_bielec_integral_jj <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/mo_bi_integrals.irp.f#L464>`_
|
`mo_bielec_integral_jj <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/mo_bi_integrals.irp.f#L446>`_
|
||||||
mo_bielec_integral_jj(i,j) = J_ij
|
mo_bielec_integral_jj(i,j) = J_ij
|
||||||
mo_bielec_integral_jj_exchange(i,j) = K_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(i,j) = J_ij - K_ij
|
||||||
|
|
||||||
|
|
||||||
`mo_bielec_integral_jj_anti <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/mo_bi_integrals.irp.f#L466>`_
|
`mo_bielec_integral_jj_anti <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/mo_bi_integrals.irp.f#L448>`_
|
||||||
mo_bielec_integral_jj(i,j) = J_ij
|
mo_bielec_integral_jj(i,j) = J_ij
|
||||||
mo_bielec_integral_jj_exchange(i,j) = K_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(i,j) = J_ij - K_ij
|
||||||
|
|
||||||
|
|
||||||
`mo_bielec_integral_jj_anti_from_ao <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/mo_bi_integrals.irp.f#L326>`_
|
`mo_bielec_integral_jj_anti_from_ao <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/mo_bi_integrals.irp.f#L314>`_
|
||||||
mo_bielec_integral_jj_from_ao(i,j) = J_ij
|
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_exchange_from_ao(i,j) = J_ij
|
||||||
mo_bielec_integral_jj_anti_from_ao(i,j) = J_ij - K_ij
|
mo_bielec_integral_jj_anti_from_ao(i,j) = J_ij - K_ij
|
||||||
|
|
||||||
|
|
||||||
`mo_bielec_integral_jj_exchange <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/mo_bi_integrals.irp.f#L465>`_
|
`mo_bielec_integral_jj_exchange <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/mo_bi_integrals.irp.f#L447>`_
|
||||||
mo_bielec_integral_jj(i,j) = J_ij
|
mo_bielec_integral_jj(i,j) = J_ij
|
||||||
mo_bielec_integral_jj_exchange(i,j) = K_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(i,j) = J_ij - K_ij
|
||||||
|
|
||||||
|
|
||||||
`mo_bielec_integral_jj_exchange_from_ao <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/mo_bi_integrals.irp.f#L325>`_
|
`mo_bielec_integral_jj_exchange_from_ao <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/mo_bi_integrals.irp.f#L313>`_
|
||||||
mo_bielec_integral_jj_from_ao(i,j) = J_ij
|
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_exchange_from_ao(i,j) = J_ij
|
||||||
mo_bielec_integral_jj_anti_from_ao(i,j) = J_ij - K_ij
|
mo_bielec_integral_jj_anti_from_ao(i,j) = J_ij - K_ij
|
||||||
|
|
||||||
|
|
||||||
`mo_bielec_integral_jj_from_ao <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/mo_bi_integrals.irp.f#L324>`_
|
`mo_bielec_integral_jj_from_ao <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/mo_bi_integrals.irp.f#L312>`_
|
||||||
mo_bielec_integral_jj_from_ao(i,j) = J_ij
|
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_exchange_from_ao(i,j) = J_ij
|
||||||
mo_bielec_integral_jj_anti_from_ao(i,j) = J_ij - K_ij
|
mo_bielec_integral_jj_anti_from_ao(i,j) = J_ij - K_ij
|
||||||
|
|
||||||
|
|
||||||
`mo_bielec_integral_schwartz <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/mo_bi_integrals.irp.f#L491>`_
|
`mo_bielec_integral_schwartz <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/mo_bi_integrals.irp.f#L473>`_
|
||||||
Needed to compute Schwartz inequalities
|
Needed to compute Schwartz inequalities
|
||||||
|
|
||||||
|
|
||||||
@ -305,24 +303,36 @@ Documentation
|
|||||||
Computes an unique index for i,j,k,l integrals
|
Computes an unique index for i,j,k,l integrals
|
||||||
|
|
||||||
|
|
||||||
`mo_integrals_map <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/map_integrals.irp.f#L237>`_
|
`mo_integrals_map <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/map_integrals.irp.f#L236>`_
|
||||||
MO integrals
|
MO integrals
|
||||||
|
|
||||||
|
|
||||||
`mo_integrals_threshold <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/ezfio_interface.irp.f#L86>`_
|
|
||||||
If |<ij|kl>| < ao_integrals_threshold then <pq|rs> is zero
|
|
||||||
|
|
||||||
|
|
||||||
`n_pt_max_integrals_16 <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/gauss_legendre.irp.f#L1>`_
|
`n_pt_max_integrals_16 <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/gauss_legendre.irp.f#L1>`_
|
||||||
Aligned n_pt_max_integrals
|
Aligned n_pt_max_integrals
|
||||||
|
|
||||||
|
|
||||||
`n_pt_sup <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/ao_bi_integrals.irp.f#L805>`_
|
`n_pt_sup <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/ao_bi_integrals.irp.f#L775>`_
|
||||||
Returns the upper boundary of the degree of the polynomial involved in the
|
Returns the upper boundary of the degree of the polynomial involved in the
|
||||||
bielctronic integral :
|
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)
|
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)
|
||||||
|
|
||||||
|
|
||||||
|
`provide_all_mo_integrals <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/mo_bi_integrals.irp.f#L502>`_
|
||||||
|
Undocumented
|
||||||
|
|
||||||
|
|
||||||
|
`pull_integrals <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/ao_bielec_integrals_in_map_slave.irp.f#L125>`_
|
||||||
|
How the collector pulls the computed integrals
|
||||||
|
|
||||||
|
|
||||||
|
`push_integrals <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/ao_bielec_integrals_in_map_slave.irp.f#L21>`_
|
||||||
|
Push integrals in the push socket
|
||||||
|
|
||||||
|
|
||||||
|
`qp_ao_ints <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/qp_ao_ints.irp.f#L1>`_
|
||||||
|
Increments a running calculation to compute AO integrals
|
||||||
|
|
||||||
|
|
||||||
`read_ao_integrals <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/read_write.irp.f#L1>`_
|
`read_ao_integrals <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Bielec/read_write.irp.f#L1>`_
|
||||||
One level of abstraction for disk_access_ao_integrals and disk_access_mo_integrals
|
One level of abstraction for disk_access_ao_integrals and disk_access_mo_integrals
|
||||||
|
|
||||||
|
Binary file not shown.
Before Width: | Height: | Size: 40 KiB After Width: | Height: | Size: 46 KiB |
12
src/Integrals_Monoelec/EZFIO.cfg
Normal file
12
src/Integrals_Monoelec/EZFIO.cfg
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
[disk_access_mo_one_integrals]
|
||||||
|
type: Disk_access
|
||||||
|
doc: Read/Write MO one-electron integrals from/to disk [ Write | Read | None ]
|
||||||
|
interface: ezfio,provider,ocaml
|
||||||
|
default: None
|
||||||
|
|
||||||
|
[disk_access_ao_one_integrals]
|
||||||
|
type: Disk_access
|
||||||
|
doc: Read/Write AO one-electron integrals from/to disk [ Write | Read | None ]
|
||||||
|
interface: ezfio,provider,ocaml
|
||||||
|
default: None
|
||||||
|
|
@ -111,11 +111,11 @@ Documentation
|
|||||||
Pseudo-potential
|
Pseudo-potential
|
||||||
|
|
||||||
|
|
||||||
`ao_pseudo_integral_local <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Monoelec/pot_ao_pseudo_ints.irp.f#L13>`_
|
`ao_pseudo_integral_local <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Monoelec/pot_ao_pseudo_ints.irp.f#L17>`_
|
||||||
Local pseudo-potential
|
Local pseudo-potential
|
||||||
|
|
||||||
|
|
||||||
`ao_pseudo_integral_non_local <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Monoelec/pot_ao_pseudo_ints.irp.f#L120>`_
|
`ao_pseudo_integral_non_local <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Monoelec/pot_ao_pseudo_ints.irp.f#L115>`_
|
||||||
Local pseudo-potential
|
Local pseudo-potential
|
||||||
|
|
||||||
|
|
||||||
@ -141,23 +141,31 @@ Documentation
|
|||||||
Undocumented
|
Undocumented
|
||||||
|
|
||||||
|
|
||||||
|
`disk_access_ao_one_integrals <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Monoelec/ezfio_interface.irp.f#L25>`_
|
||||||
|
Read/Write AO one-electron integrals from/to disk [ Write | Read | None ]
|
||||||
|
|
||||||
|
|
||||||
|
`disk_access_mo_one_integrals <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Monoelec/ezfio_interface.irp.f#L6>`_
|
||||||
|
Read/Write MO one-electron integrals from/to disk [ Write | Read | None ]
|
||||||
|
|
||||||
|
|
||||||
`do_print <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Monoelec/check_orthonormality.irp.f#L11>`_
|
`do_print <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Monoelec/check_orthonormality.irp.f#L11>`_
|
||||||
Undocumented
|
Undocumented
|
||||||
|
|
||||||
|
|
||||||
`give_polynom_mult_center_mono_elec <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Monoelec/pot_ao_ints.irp.f#L218>`_
|
`give_polynom_mult_center_mono_elec <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Monoelec/pot_ao_ints.irp.f#L217>`_
|
||||||
Undocumented
|
Undocumented
|
||||||
|
|
||||||
|
|
||||||
`i_x1_pol_mult_mono_elec <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Monoelec/pot_ao_ints.irp.f#L346>`_
|
`i_x1_pol_mult_mono_elec <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Monoelec/pot_ao_ints.irp.f#L345>`_
|
||||||
Undocumented
|
Undocumented
|
||||||
|
|
||||||
|
|
||||||
`i_x2_pol_mult_mono_elec <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Monoelec/pot_ao_ints.irp.f#L417>`_
|
`i_x2_pol_mult_mono_elec <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Monoelec/pot_ao_ints.irp.f#L416>`_
|
||||||
Undocumented
|
Undocumented
|
||||||
|
|
||||||
|
|
||||||
`int_gaus_pol <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Monoelec/pot_ao_ints.irp.f#L488>`_
|
`int_gaus_pol <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Monoelec/pot_ao_ints.irp.f#L487>`_
|
||||||
Undocumented
|
Undocumented
|
||||||
|
|
||||||
|
|
||||||
@ -237,7 +245,7 @@ Documentation
|
|||||||
array of the integrals of MO_i * z^2 MO_j
|
array of the integrals of MO_i * z^2 MO_j
|
||||||
|
|
||||||
|
|
||||||
`nai_pol_mult <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Monoelec/pot_ao_ints.irp.f#L139>`_
|
`nai_pol_mult <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Monoelec/pot_ao_ints.irp.f#L137>`_
|
||||||
Undocumented
|
Undocumented
|
||||||
|
|
||||||
|
|
||||||
@ -269,26 +277,74 @@ Documentation
|
|||||||
Undocumented
|
Undocumented
|
||||||
|
|
||||||
|
|
||||||
|
`pseudo_dz_k_transp <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Monoelec/pot_ao_pseudo_ints.irp.f#L216>`_
|
||||||
|
Transposed arrays for pseudopotentials
|
||||||
|
|
||||||
|
|
||||||
|
`pseudo_dz_kl_transp <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Monoelec/pot_ao_pseudo_ints.irp.f#L234>`_
|
||||||
|
Transposed arrays for pseudopotentials
|
||||||
|
|
||||||
|
|
||||||
|
`pseudo_n_k_transp <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Monoelec/pot_ao_pseudo_ints.irp.f#L215>`_
|
||||||
|
Transposed arrays for pseudopotentials
|
||||||
|
|
||||||
|
|
||||||
|
`pseudo_n_kl_transp <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Monoelec/pot_ao_pseudo_ints.irp.f#L233>`_
|
||||||
|
Transposed arrays for pseudopotentials
|
||||||
|
|
||||||
|
|
||||||
|
`pseudo_v_k_transp <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Monoelec/pot_ao_pseudo_ints.irp.f#L214>`_
|
||||||
|
Transposed arrays for pseudopotentials
|
||||||
|
|
||||||
|
|
||||||
|
`pseudo_v_kl_transp <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Monoelec/pot_ao_pseudo_ints.irp.f#L232>`_
|
||||||
|
Transposed arrays for pseudopotentials
|
||||||
|
|
||||||
|
|
||||||
|
`read_ao_one_integrals <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Monoelec/read_write.irp.f#L1>`_
|
||||||
|
One level of abstraction for disk_access_ao_integrals and disk_access_mo_integrals
|
||||||
|
|
||||||
|
|
||||||
|
`read_mo_one_integrals <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Monoelec/read_write.irp.f#L2>`_
|
||||||
|
One level of abstraction for disk_access_ao_integrals and disk_access_mo_integrals
|
||||||
|
|
||||||
|
|
||||||
|
`read_one_e_integrals <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Monoelec/read_write.irp.f#L67>`_
|
||||||
|
Read the 1-electron integrals into in A(m,n) from file 'filename'
|
||||||
|
|
||||||
|
|
||||||
`save_ortho_mos <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Monoelec/save_ortho_mos.irp.f#L1>`_
|
`save_ortho_mos <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Monoelec/save_ortho_mos.irp.f#L1>`_
|
||||||
Undocumented
|
Undocumented
|
||||||
|
|
||||||
|
|
||||||
`v_e_n <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Monoelec/pot_ao_ints.irp.f#L469>`_
|
`v_e_n <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Monoelec/pot_ao_ints.irp.f#L468>`_
|
||||||
Undocumented
|
Undocumented
|
||||||
|
|
||||||
|
|
||||||
`v_phi <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Monoelec/pot_ao_ints.irp.f#L533>`_
|
`v_phi <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Monoelec/pot_ao_ints.irp.f#L532>`_
|
||||||
Undocumented
|
Undocumented
|
||||||
|
|
||||||
|
|
||||||
`v_r <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Monoelec/pot_ao_ints.irp.f#L517>`_
|
`v_r <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Monoelec/pot_ao_ints.irp.f#L516>`_
|
||||||
Undocumented
|
Undocumented
|
||||||
|
|
||||||
|
|
||||||
`v_theta <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Monoelec/pot_ao_ints.irp.f#L546>`_
|
`v_theta <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Monoelec/pot_ao_ints.irp.f#L545>`_
|
||||||
Undocumented
|
Undocumented
|
||||||
|
|
||||||
|
|
||||||
`wallis <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Monoelec/pot_ao_ints.irp.f#L562>`_
|
`wallis <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Monoelec/pot_ao_ints.irp.f#L561>`_
|
||||||
Undocumented
|
Undocumented
|
||||||
|
|
||||||
|
|
||||||
|
`write_ao_one_integrals <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Monoelec/read_write.irp.f#L3>`_
|
||||||
|
One level of abstraction for disk_access_ao_integrals and disk_access_mo_integrals
|
||||||
|
|
||||||
|
|
||||||
|
`write_mo_one_integrals <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Monoelec/read_write.irp.f#L4>`_
|
||||||
|
One level of abstraction for disk_access_ao_integrals and disk_access_mo_integrals
|
||||||
|
|
||||||
|
|
||||||
|
`write_one_e_integrals <http://github.com/LCPQ/quantum_package/tree/master/src/Integrals_Monoelec/read_write.irp.f#L49>`_
|
||||||
|
Write the 1-electron integrals stored in A(m,n) into file 'filename'
|
||||||
|
|
||||||
|
@ -123,26 +123,37 @@
|
|||||||
END_PROVIDER
|
END_PROVIDER
|
||||||
|
|
||||||
BEGIN_PROVIDER [double precision, ao_kinetic_integral, (ao_num_align,ao_num)]
|
BEGIN_PROVIDER [double precision, ao_kinetic_integral, (ao_num_align,ao_num)]
|
||||||
implicit none
|
implicit none
|
||||||
BEGIN_DOC
|
BEGIN_DOC
|
||||||
! array of the priminitve basis kinetic integrals
|
! array of the priminitve basis kinetic integrals
|
||||||
! \langle \chi_i |\hat{T}| \chi_j \rangle
|
! \langle \chi_i |\hat{T}| \chi_j \rangle
|
||||||
END_DOC
|
END_DOC
|
||||||
integer :: i,j,k,l
|
integer :: i,j,k,l
|
||||||
|
|
||||||
!$OMP PARALLEL DO DEFAULT(NONE) &
|
if (read_ao_one_integrals) then
|
||||||
!$OMP PRIVATE(i,j) &
|
call read_one_e_integrals('ao_kinetic_integral', ao_kinetic_integral,&
|
||||||
!$OMP SHARED(ao_num, ao_num_align, ao_kinetic_integral,ao_deriv2_x,ao_deriv2_y,ao_deriv2_z)
|
size(ao_kinetic_integral,1), size(ao_kinetic_integral,2))
|
||||||
do j = 1, ao_num
|
print *, 'AO kinetic integrals read from disk'
|
||||||
!DEC$ VECTOR ALWAYS
|
else
|
||||||
!DEC$ VECTOR ALIGNED
|
!$OMP PARALLEL DO DEFAULT(NONE) &
|
||||||
do i = 1, ao_num
|
!$OMP PRIVATE(i,j) &
|
||||||
ao_kinetic_integral(i,j) = -0.5d0 * (ao_deriv2_x(i,j) + ao_deriv2_y(i,j) + ao_deriv2_z(i,j) )
|
!$OMP SHARED(ao_num, ao_num_align, ao_kinetic_integral,ao_deriv2_x,ao_deriv2_y,ao_deriv2_z)
|
||||||
enddo
|
do j = 1, ao_num
|
||||||
do i = ao_num +1,ao_num_align
|
!DEC$ VECTOR ALWAYS
|
||||||
ao_kinetic_integral(i,j) = 0.d0
|
!DEC$ VECTOR ALIGNED
|
||||||
enddo
|
do i = 1, ao_num
|
||||||
enddo
|
ao_kinetic_integral(i,j) = -0.5d0 * (ao_deriv2_x(i,j) + ao_deriv2_y(i,j) + ao_deriv2_z(i,j) )
|
||||||
!$OMP END PARALLEL DO
|
enddo
|
||||||
|
do i = ao_num +1,ao_num_align
|
||||||
|
ao_kinetic_integral(i,j) = 0.d0
|
||||||
|
enddo
|
||||||
|
enddo
|
||||||
|
!$OMP END PARALLEL DO
|
||||||
|
endif
|
||||||
|
if (write_ao_one_integrals) then
|
||||||
|
call write_one_e_integrals('ao_kinetic_integral', ao_kinetic_integral,&
|
||||||
|
size(ao_kinetic_integral,1), size(ao_kinetic_integral,2))
|
||||||
|
print *, 'AO kinetic integrals written to disk'
|
||||||
|
endif
|
||||||
END_PROVIDER
|
END_PROVIDER
|
||||||
|
|
||||||
|
@ -1,25 +1,26 @@
|
|||||||
BEGIN_PROVIDER [double precision, mo_kinetic_integral, (mo_tot_num_align,mo_tot_num)]
|
BEGIN_PROVIDER [double precision, mo_kinetic_integral, (mo_tot_num_align,mo_tot_num)]
|
||||||
implicit none
|
implicit none
|
||||||
integer :: i1,j1,i,j
|
BEGIN_DOC
|
||||||
double precision :: c_i1
|
! Kinetic energy integrals in the MO basis
|
||||||
|
END_DOC
|
||||||
|
|
||||||
|
if (read_mo_one_integrals) then
|
||||||
|
call read_one_e_integrals('mo_kinetic_integral', mo_kinetic_integral,&
|
||||||
|
size(mo_kinetic_integral,1), size(mo_kinetic_integral,2))
|
||||||
|
print *, 'MO kinetic integrals read from disk'
|
||||||
|
else
|
||||||
|
call ao_to_mo( &
|
||||||
|
ao_kinetic_integral, &
|
||||||
|
size(ao_kinetic_integral,1), &
|
||||||
|
mo_kinetic_integral, &
|
||||||
|
size(mo_kinetic_integral,1), &
|
||||||
|
)
|
||||||
|
endif
|
||||||
|
if (write_mo_one_integrals) then
|
||||||
|
call write_one_e_integrals('mo_kinetic_integral', mo_kinetic_integral,&
|
||||||
|
size(mo_kinetic_integral,1), size(mo_kinetic_integral,2))
|
||||||
|
print *, 'MO kinetic integrals written to disk'
|
||||||
|
endif
|
||||||
|
|
||||||
mo_kinetic_integral = 0.d0
|
|
||||||
!$OMP PARALLEL DO DEFAULT(none) &
|
|
||||||
!$OMP PRIVATE(i,j,i1,j1,c_i1) &
|
|
||||||
!$OMP SHARED(mo_tot_num,ao_num,mo_coef,ao_Kinetic_integral, &
|
|
||||||
!$OMP mo_kinetic_integral)
|
|
||||||
do i = 1,mo_tot_num
|
|
||||||
do j = 1,mo_tot_num
|
|
||||||
do i1 = 1,ao_num
|
|
||||||
c_i1 = mo_coef(i1,i)
|
|
||||||
!DIR$ VECTOR ALIGNED
|
|
||||||
do j1 = 1,ao_num
|
|
||||||
mo_kinetic_integral(j,i) = mo_kinetic_integral(j,i) + c_i1*mo_coef(j1,j) *&
|
|
||||||
ao_Kinetic_integral(j1,i1)
|
|
||||||
enddo
|
|
||||||
enddo
|
|
||||||
enddo
|
|
||||||
enddo
|
|
||||||
!$OMP END PARALLEL DO
|
|
||||||
END_PROVIDER
|
END_PROVIDER
|
||||||
|
|
||||||
|
@ -1,14 +1,15 @@
|
|||||||
BEGIN_PROVIDER [ double precision, mo_mono_elec_integral,(mo_tot_num_align,mo_tot_num)]
|
BEGIN_PROVIDER [ double precision, mo_mono_elec_integral,(mo_tot_num_align,mo_tot_num)]
|
||||||
implicit none
|
implicit none
|
||||||
integer :: i,j,n,l
|
integer :: i,j,n,l
|
||||||
BEGIN_DOC
|
BEGIN_DOC
|
||||||
! array of the mono electronic hamiltonian on the MOs basis
|
! array of the mono electronic hamiltonian on the MOs basis :
|
||||||
! : sum of the kinetic and nuclear electronic potential
|
! sum of the kinetic and nuclear electronic potential
|
||||||
END_DOC
|
END_DOC
|
||||||
print*,'Providing the mono electronic integrals'
|
print*,'Providing the mono electronic integrals'
|
||||||
do j = 1, mo_tot_num
|
do j = 1, mo_tot_num
|
||||||
do i = 1, mo_tot_num
|
do i = 1, mo_tot_num
|
||||||
mo_mono_elec_integral(i,j) = mo_nucl_elec_integral(i,j) + mo_kinetic_integral(i,j) + mo_pseudo_integral(i,j)
|
mo_mono_elec_integral(i,j) = mo_nucl_elec_integral(i,j) + &
|
||||||
enddo
|
mo_kinetic_integral(i,j) + mo_pseudo_integral(i,j)
|
||||||
|
enddo
|
||||||
enddo
|
enddo
|
||||||
END_PROVIDER
|
END_PROVIDER
|
||||||
|
@ -1,73 +1,86 @@
|
|||||||
BEGIN_PROVIDER [ double precision, ao_nucl_elec_integral, (ao_num_align,ao_num)]
|
BEGIN_PROVIDER [ double precision, ao_nucl_elec_integral, (ao_num_align,ao_num)]
|
||||||
BEGIN_DOC
|
BEGIN_DOC
|
||||||
! interaction nuclear electron
|
! interaction nuclear electron
|
||||||
END_DOC
|
END_DOC
|
||||||
implicit none
|
implicit none
|
||||||
double precision :: alpha, beta, gama, delta
|
double precision :: alpha, beta, gama, delta
|
||||||
integer :: num_A,num_B
|
integer :: num_A,num_B
|
||||||
double precision :: A_center(3),B_center(3),C_center(3)
|
double precision :: A_center(3),B_center(3),C_center(3)
|
||||||
integer :: power_A(3),power_B(3)
|
integer :: power_A(3),power_B(3)
|
||||||
integer :: i,j,k,l,n_pt_in,m
|
integer :: i,j,k,l,n_pt_in,m
|
||||||
double precision ::overlap_x,overlap_y,overlap_z,overlap,dx,NAI_pol_mult
|
double precision :: overlap_x,overlap_y,overlap_z,overlap,dx,NAI_pol_mult
|
||||||
|
|
||||||
ao_nucl_elec_integral = 0.d0
|
if (read_ao_one_integrals) then
|
||||||
|
call read_one_e_integrals('ao_ne_integral', ao_nucl_elec_integral, &
|
||||||
! _
|
size(ao_nucl_elec_integral,1), size(ao_nucl_elec_integral,2))
|
||||||
! /| / |_)
|
print *, 'AO N-e integrals read from disk'
|
||||||
! | / | \
|
else
|
||||||
!
|
|
||||||
|
ao_nucl_elec_integral = 0.d0
|
||||||
!$OMP PARALLEL &
|
|
||||||
!$OMP DEFAULT (NONE) &
|
! _
|
||||||
!$OMP PRIVATE (i,j,k,l,m,alpha,beta,A_center,B_center,C_center,power_A,power_B, &
|
! /| / |_)
|
||||||
!$OMP num_A,num_B,Z,c,n_pt_in) &
|
! | / | \
|
||||||
!$OMP SHARED (ao_num,ao_prim_num,ao_expo_ordered_transp,ao_power,ao_nucl,nucl_coord,ao_coef_normalized_ordered_transp, &
|
!
|
||||||
!$OMP n_pt_max_integrals,ao_nucl_elec_integral,nucl_num,nucl_charge)
|
|
||||||
|
!$OMP PARALLEL &
|
||||||
n_pt_in = n_pt_max_integrals
|
!$OMP DEFAULT (NONE) &
|
||||||
|
!$OMP PRIVATE (i,j,k,l,m,alpha,beta,A_center,B_center,C_center,power_A,power_B,&
|
||||||
!$OMP DO SCHEDULE (dynamic)
|
!$OMP num_A,num_B,Z,c,n_pt_in) &
|
||||||
|
!$OMP SHARED (ao_num,ao_prim_num,ao_expo_ordered_transp,ao_power,ao_nucl,nucl_coord,ao_coef_normalized_ordered_transp,&
|
||||||
do j = 1, ao_num
|
!$OMP n_pt_max_integrals,ao_nucl_elec_integral,nucl_num,nucl_charge)
|
||||||
num_A = ao_nucl(j)
|
|
||||||
power_A(1:3)= ao_power(j,1:3)
|
n_pt_in = n_pt_max_integrals
|
||||||
A_center(1:3) = nucl_coord(num_A,1:3)
|
|
||||||
|
!$OMP DO SCHEDULE (dynamic)
|
||||||
do i = 1, ao_num
|
|
||||||
|
do j = 1, ao_num
|
||||||
num_B = ao_nucl(i)
|
num_A = ao_nucl(j)
|
||||||
power_B(1:3)= ao_power(i,1:3)
|
power_A(1:3)= ao_power(j,1:3)
|
||||||
B_center(1:3) = nucl_coord(num_B,1:3)
|
A_center(1:3) = nucl_coord(num_A,1:3)
|
||||||
|
|
||||||
do l=1,ao_prim_num(j)
|
do i = 1, ao_num
|
||||||
alpha = ao_expo_ordered_transp(l,j)
|
|
||||||
|
num_B = ao_nucl(i)
|
||||||
do m=1,ao_prim_num(i)
|
power_B(1:3)= ao_power(i,1:3)
|
||||||
beta = ao_expo_ordered_transp(m,i)
|
B_center(1:3) = nucl_coord(num_B,1:3)
|
||||||
|
|
||||||
double precision :: c
|
do l=1,ao_prim_num(j)
|
||||||
c = 0.d0
|
alpha = ao_expo_ordered_transp(l,j)
|
||||||
|
|
||||||
do k = 1, nucl_num
|
do m=1,ao_prim_num(i)
|
||||||
double precision :: Z
|
beta = ao_expo_ordered_transp(m,i)
|
||||||
Z = nucl_charge(k)
|
|
||||||
|
double precision :: c
|
||||||
C_center(1:3) = nucl_coord(k,1:3)
|
c = 0.d0
|
||||||
|
|
||||||
c = c - Z*NAI_pol_mult(A_center,B_center,power_A,power_B,alpha,beta,C_center,n_pt_in)
|
do k = 1, nucl_num
|
||||||
|
double precision :: Z
|
||||||
enddo
|
Z = nucl_charge(k)
|
||||||
ao_nucl_elec_integral(i,j) = ao_nucl_elec_integral(i,j) + &
|
|
||||||
ao_coef_normalized_ordered_transp(l,j)*ao_coef_normalized_ordered_transp(m,i)*c
|
C_center(1:3) = nucl_coord(k,1:3)
|
||||||
enddo
|
|
||||||
enddo
|
c = c - Z*NAI_pol_mult(A_center,B_center,power_A,power_B,alpha,beta,C_center,n_pt_in)
|
||||||
enddo
|
|
||||||
enddo
|
enddo
|
||||||
|
ao_nucl_elec_integral(i,j) = ao_nucl_elec_integral(i,j) +&
|
||||||
!$OMP END DO
|
ao_coef_normalized_ordered_transp(l,j)*ao_coef_normalized_ordered_transp(m,i)*c
|
||||||
!$OMP END PARALLEL
|
enddo
|
||||||
|
enddo
|
||||||
END_PROVIDER
|
enddo
|
||||||
|
enddo
|
||||||
|
|
||||||
|
!$OMP END DO
|
||||||
|
!$OMP END PARALLEL
|
||||||
|
endif
|
||||||
|
if (write_ao_one_integrals) then
|
||||||
|
call write_one_e_integrals('ao_ne_integral', ao_nucl_elec_integral, &
|
||||||
|
size(ao_nucl_elec_integral,1), size(ao_nucl_elec_integral,2))
|
||||||
|
print *, 'AO N-e integrals written to disk'
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
||||||
|
END_PROVIDER
|
||||||
|
|
||||||
BEGIN_PROVIDER [ double precision, ao_nucl_elec_integral_per_atom, (ao_num_align,ao_num,nucl_num)]
|
BEGIN_PROVIDER [ double precision, ao_nucl_elec_integral_per_atom, (ao_num_align,ao_num,nucl_num)]
|
||||||
BEGIN_DOC
|
BEGIN_DOC
|
||||||
|
@ -1,17 +1,32 @@
|
|||||||
BEGIN_PROVIDER [ double precision, ao_pseudo_integral, (ao_num_align,ao_num)]
|
BEGIN_PROVIDER [ double precision, ao_pseudo_integral, (ao_num_align,ao_num)]
|
||||||
implicit none
|
implicit none
|
||||||
BEGIN_DOC
|
BEGIN_DOC
|
||||||
! Pseudo-potential
|
! Pseudo-potential integrals
|
||||||
END_DOC
|
END_DOC
|
||||||
ao_pseudo_integral = 0.d0
|
|
||||||
if (do_pseudo) then
|
if (read_ao_one_integrals) then
|
||||||
if (pseudo_klocmax > 0) then
|
call read_one_e_integrals('ao_pseudo_integral', ao_pseudo_integral,&
|
||||||
ao_pseudo_integral += ao_pseudo_integral_local
|
size(ao_pseudo_integral,1), size(ao_pseudo_integral,2))
|
||||||
endif
|
print *, 'AO pseudopotential integrals read from disk'
|
||||||
if (pseudo_kmax > 0) then
|
else
|
||||||
ao_pseudo_integral += ao_pseudo_integral_non_local
|
|
||||||
|
ao_pseudo_integral = 0.d0
|
||||||
|
if (do_pseudo) then
|
||||||
|
if (pseudo_klocmax > 0) then
|
||||||
|
ao_pseudo_integral += ao_pseudo_integral_local
|
||||||
|
endif
|
||||||
|
if (pseudo_kmax > 0) then
|
||||||
|
ao_pseudo_integral += ao_pseudo_integral_non_local
|
||||||
|
endif
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
if (write_ao_one_integrals) then
|
||||||
|
call write_one_e_integrals('ao_pseudo_integral', ao_pseudo_integral,&
|
||||||
|
size(ao_pseudo_integral,1), size(ao_pseudo_integral,2))
|
||||||
|
print *, 'AO pseudopotential integrals written to disk'
|
||||||
|
endif
|
||||||
|
|
||||||
END_PROVIDER
|
END_PROVIDER
|
||||||
|
|
||||||
BEGIN_PROVIDER [ double precision, ao_pseudo_integral_local, (ao_num_align,ao_num)]
|
BEGIN_PROVIDER [ double precision, ao_pseudo_integral_local, (ao_num_align,ao_num)]
|
||||||
|
@ -6,24 +6,24 @@ BEGIN_PROVIDER [double precision, mo_nucl_elec_integral, (mo_tot_num_align,mo_to
|
|||||||
! interaction nuclear electron on the MO basis
|
! interaction nuclear electron on the MO basis
|
||||||
END_DOC
|
END_DOC
|
||||||
|
|
||||||
mo_nucl_elec_integral = 0.d0
|
if (read_mo_one_integrals) then
|
||||||
!$OMP PARALLEL DO DEFAULT(none) &
|
call read_one_e_integrals('mo_ne_integral', mo_nucl_elec_integral, &
|
||||||
!$OMP PRIVATE(i,j,i1,j1,c_j1,c_i1) &
|
size(mo_nucl_elec_integral,1), size(mo_nucl_elec_integral,2))
|
||||||
!$OMP SHARED(mo_tot_num,ao_num,mo_coef, &
|
print *, 'MO N-e integrals read from disk'
|
||||||
!$OMP mo_nucl_elec_integral, ao_nucl_elec_integral)
|
else
|
||||||
do i = 1, mo_tot_num
|
call ao_to_mo( &
|
||||||
do j = 1, mo_tot_num
|
ao_nucl_elec_integral, &
|
||||||
do i1 = 1,ao_num
|
size(ao_nucl_elec_integral,1), &
|
||||||
c_i1 = mo_coef(i1,i)
|
mo_nucl_elec_integral, &
|
||||||
do j1 = 1,ao_num
|
size(mo_nucl_elec_integral,1), &
|
||||||
c_j1 = c_i1*mo_coef(j1,j)
|
)
|
||||||
mo_nucl_elec_integral(j,i) = mo_nucl_elec_integral(j,i) + &
|
endif
|
||||||
c_j1 * ao_nucl_elec_integral(j1,i1)
|
if (write_mo_one_integrals) then
|
||||||
enddo
|
call write_one_e_integrals('mo_ne_integral', mo_nucl_elec_integral, &
|
||||||
enddo
|
size(mo_nucl_elec_integral,1), size(mo_nucl_elec_integral,2))
|
||||||
enddo
|
print *, 'MO N-e integrals written to disk'
|
||||||
enddo
|
endif
|
||||||
!$OMP END PARALLEL DO
|
|
||||||
END_PROVIDER
|
END_PROVIDER
|
||||||
|
|
||||||
|
|
||||||
@ -38,23 +38,12 @@ BEGIN_PROVIDER [double precision, mo_nucl_elec_integral_per_atom, (mo_tot_num_al
|
|||||||
|
|
||||||
mo_nucl_elec_integral_per_atom = 0.d0
|
mo_nucl_elec_integral_per_atom = 0.d0
|
||||||
do k = 1, nucl_num
|
do k = 1, nucl_num
|
||||||
!$OMP PARALLEL DO DEFAULT(none) &
|
call ao_to_mo( &
|
||||||
!$OMP PRIVATE(i,j,i1,j1,c_j1,c_i1) &
|
ao_nucl_elec_integral_per_atom(1,1,k), &
|
||||||
!$OMP SHARED(mo_tot_num,ao_num,mo_coef, &
|
size(ao_nucl_elec_integral_per_atom,1), &
|
||||||
!$OMP mo_nucl_elec_integral_per_atom, ao_nucl_elec_integral_per_atom,k)
|
mo_nucl_elec_integral_per_atom(1,1,k), &
|
||||||
do i = 1, mo_tot_num
|
size(mo_nucl_elec_integral_per_atom,1), &
|
||||||
do j = 1, mo_tot_num
|
)
|
||||||
do i1 = 1,ao_num
|
|
||||||
c_i1 = mo_coef(i1,i)
|
|
||||||
do j1 = 1,ao_num
|
|
||||||
c_j1 = c_i1*mo_coef(j1,j)
|
|
||||||
mo_nucl_elec_integral_per_atom(j,i,k) = mo_nucl_elec_integral_per_atom(j,i,k) + &
|
|
||||||
c_j1 * ao_nucl_elec_integral_per_atom(j1,i1,k)
|
|
||||||
enddo
|
|
||||||
enddo
|
|
||||||
enddo
|
|
||||||
enddo
|
|
||||||
!$OMP END PARALLEL DO
|
|
||||||
enddo
|
enddo
|
||||||
END_PROVIDER
|
END_PROVIDER
|
||||||
|
|
||||||
|
@ -1,33 +1,27 @@
|
|||||||
BEGIN_PROVIDER [double precision, mo_pseudo_integral, (mo_tot_num_align,mo_tot_num)]
|
BEGIN_PROVIDER [double precision, mo_pseudo_integral, (mo_tot_num_align,mo_tot_num)]
|
||||||
implicit none
|
implicit none
|
||||||
integer :: i1,j1,i,j
|
|
||||||
double precision :: c_i1,c_j1
|
|
||||||
BEGIN_DOC
|
BEGIN_DOC
|
||||||
! interaction nuclear electron on the MO basis
|
! interaction nuclear electron on the MO basis
|
||||||
END_DOC
|
END_DOC
|
||||||
|
|
||||||
mo_pseudo_integral = 0.d0
|
if (read_mo_one_integrals) then
|
||||||
|
call read_one_e_integrals('mo_pseudo_integral', mo_pseudo_integral,&
|
||||||
if (.not.do_pseudo) then
|
size(mo_pseudo_integral,1), size(mo_pseudo_integral,2))
|
||||||
return
|
print *, 'MO pseudopotential integrals read from disk'
|
||||||
|
else
|
||||||
|
call ao_to_mo( &
|
||||||
|
ao_pseudo_integral, &
|
||||||
|
size(ao_pseudo_integral,1), &
|
||||||
|
mo_pseudo_integral, &
|
||||||
|
size(mo_pseudo_integral,1), &
|
||||||
|
)
|
||||||
endif
|
endif
|
||||||
!$OMP PARALLEL DO DEFAULT(none) &
|
if (write_mo_one_integrals) then
|
||||||
!$OMP PRIVATE(i,j,i1,j1,c_j1,c_i1) &
|
call write_one_e_integrals('mo_pseudo_integral', mo_pseudo_integral,&
|
||||||
!$OMP SHARED(mo_tot_num,ao_num,mo_coef, &
|
size(mo_pseudo_integral,1), size(mo_pseudo_integral,2))
|
||||||
!$OMP mo_pseudo_integral, ao_pseudo_integral)
|
print *, 'MO pseudopotential integrals written to disk'
|
||||||
do i = 1, mo_tot_num
|
endif
|
||||||
do j = 1, mo_tot_num
|
|
||||||
do i1 = 1,ao_num
|
|
||||||
c_i1 = mo_coef(i1,i)
|
|
||||||
do j1 = 1,ao_num
|
|
||||||
c_j1 = c_i1*mo_coef(j1,j)
|
|
||||||
mo_pseudo_integral(j,i) = mo_pseudo_integral(j,i) + &
|
|
||||||
c_j1 * ao_pseudo_integral(j1,i1)
|
|
||||||
enddo
|
|
||||||
enddo
|
|
||||||
enddo
|
|
||||||
enddo
|
|
||||||
!$OMP END PARALLEL DO
|
|
||||||
END_PROVIDER
|
END_PROVIDER
|
||||||
|
|
||||||
|
|
||||||
|
84
src/Integrals_Monoelec/read_write.irp.f
Normal file
84
src/Integrals_Monoelec/read_write.irp.f
Normal file
@ -0,0 +1,84 @@
|
|||||||
|
BEGIN_PROVIDER [ logical, read_ao_one_integrals ]
|
||||||
|
&BEGIN_PROVIDER [ logical, read_mo_one_integrals ]
|
||||||
|
&BEGIN_PROVIDER [ logical, write_ao_one_integrals ]
|
||||||
|
&BEGIN_PROVIDER [ logical, write_mo_one_integrals ]
|
||||||
|
|
||||||
|
BEGIN_DOC
|
||||||
|
! One level of abstraction for disk_access_ao_integrals and disk_access_mo_integrals
|
||||||
|
END_DOC
|
||||||
|
implicit none
|
||||||
|
|
||||||
|
if (disk_access_ao_one_integrals.EQ.'Read') then
|
||||||
|
read_ao_one_integrals = .True.
|
||||||
|
write_ao_one_integrals = .False.
|
||||||
|
|
||||||
|
else if (disk_access_ao_one_integrals.EQ.'Write') then
|
||||||
|
read_ao_one_integrals = .False.
|
||||||
|
write_ao_one_integrals = .True.
|
||||||
|
|
||||||
|
else if (disk_access_ao_one_integrals.EQ.'None') then
|
||||||
|
read_ao_one_integrals = .False.
|
||||||
|
write_ao_one_integrals = .False.
|
||||||
|
|
||||||
|
else
|
||||||
|
print *, 'bielec_integrals/disk_access_ao_integrals has a wrong type'
|
||||||
|
stop 1
|
||||||
|
|
||||||
|
endif
|
||||||
|
|
||||||
|
if (disk_access_mo_one_integrals.EQ.'Read') then
|
||||||
|
read_mo_one_integrals = .True.
|
||||||
|
write_mo_one_integrals = .False.
|
||||||
|
|
||||||
|
else if (disk_access_mo_one_integrals.EQ.'Write') then
|
||||||
|
read_mo_one_integrals = .False.
|
||||||
|
write_mo_one_integrals = .True.
|
||||||
|
|
||||||
|
else if (disk_access_mo_one_integrals.EQ.'None') then
|
||||||
|
read_mo_one_integrals = .False.
|
||||||
|
write_mo_one_integrals = .False.
|
||||||
|
|
||||||
|
else
|
||||||
|
print *, 'bielec_integrals/disk_access_mo_integrals has a wrong type'
|
||||||
|
stop 1
|
||||||
|
|
||||||
|
endif
|
||||||
|
|
||||||
|
END_PROVIDER
|
||||||
|
|
||||||
|
subroutine write_one_e_integrals(filename, A, m, n)
|
||||||
|
implicit none
|
||||||
|
BEGIN_DOC
|
||||||
|
! Write the 1-electron integrals stored in A(m,n) into file 'filename'
|
||||||
|
END_DOC
|
||||||
|
character(len=*), intent(in) :: filename
|
||||||
|
integer, intent(in) :: m,n
|
||||||
|
double precision, intent(in) :: A(m,n)
|
||||||
|
|
||||||
|
integer :: iunit
|
||||||
|
integer, external :: getUnitAndOpen
|
||||||
|
character*(256) :: f
|
||||||
|
|
||||||
|
iunit = getUnitAndOpen( trim(ezfio_work_dir)//trim(filename), 'W' )
|
||||||
|
write(iunit) A
|
||||||
|
close(iunit)
|
||||||
|
end
|
||||||
|
|
||||||
|
subroutine read_one_e_integrals(filename, A, m, n)
|
||||||
|
implicit none
|
||||||
|
BEGIN_DOC
|
||||||
|
! Read the 1-electron integrals into in A(m,n) from file 'filename'
|
||||||
|
END_DOC
|
||||||
|
character(len=*), intent(in) :: filename
|
||||||
|
integer, intent(in) :: m,n
|
||||||
|
double precision, intent(out) :: A(m,n)
|
||||||
|
|
||||||
|
integer :: iunit
|
||||||
|
integer, external :: getUnitAndOpen
|
||||||
|
character*(256) :: f
|
||||||
|
|
||||||
|
iunit = getUnitAndOpen( trim(ezfio_work_dir)//trim(filename), 'R' )
|
||||||
|
read(iunit) A
|
||||||
|
close(iunit)
|
||||||
|
end
|
||||||
|
|
@ -7,30 +7,26 @@
|
|||||||
! array of the integrals of MO_i * z MO_j
|
! array of the integrals of MO_i * z MO_j
|
||||||
END_DOC
|
END_DOC
|
||||||
implicit none
|
implicit none
|
||||||
integer :: i1,j1,i,j
|
|
||||||
double precision :: c_i1,c_j1
|
|
||||||
|
|
||||||
mo_dipole_x = 0.d0
|
call ao_to_mo( &
|
||||||
mo_dipole_y = 0.d0
|
ao_dipole_x, &
|
||||||
mo_dipole_z = 0.d0
|
size(ao_dipole_x,1), &
|
||||||
!$OMP PARALLEL DO DEFAULT(none) &
|
mo_dipole_x, &
|
||||||
!$OMP PRIVATE(i,j,i1,j1,c_j1,c_i1) &
|
size(mo_dipole_x,1), &
|
||||||
!$OMP SHARED(mo_tot_num,ao_num,mo_coef, &
|
)
|
||||||
!$OMP mo_dipole_x,mo_dipole_y,mo_dipole_z,ao_dipole_x,ao_dipole_y,ao_dipole_z)
|
call ao_to_mo( &
|
||||||
do i = 1, mo_tot_num
|
ao_dipole_y, &
|
||||||
do j = 1, mo_tot_num
|
size(ao_dipole_y,1), &
|
||||||
do i1 = 1,ao_num
|
mo_dipole_y, &
|
||||||
c_i1 = mo_coef(i1,i)
|
size(mo_dipole_y,1), &
|
||||||
do j1 = 1,ao_num
|
)
|
||||||
c_j1 = c_i1*mo_coef(j1,j)
|
call ao_to_mo( &
|
||||||
mo_dipole_x(j,i) = mo_dipole_x(j,i) + c_j1 * ao_dipole_x(j1,i1)
|
ao_dipole_z, &
|
||||||
mo_dipole_y(j,i) = mo_dipole_y(j,i) + c_j1 * ao_dipole_y(j1,i1)
|
size(ao_dipole_z,1), &
|
||||||
mo_dipole_z(j,i) = mo_dipole_z(j,i) + c_j1 * ao_dipole_z(j1,i1)
|
mo_dipole_z, &
|
||||||
enddo
|
size(mo_dipole_z,1), &
|
||||||
enddo
|
)
|
||||||
enddo
|
|
||||||
enddo
|
|
||||||
!$OMP END PARALLEL DO
|
|
||||||
END_PROVIDER
|
END_PROVIDER
|
||||||
|
|
||||||
BEGIN_PROVIDER [double precision, mo_spread_x , (mo_tot_num_align,mo_tot_num)]
|
BEGIN_PROVIDER [double precision, mo_spread_x , (mo_tot_num_align,mo_tot_num)]
|
||||||
@ -42,60 +38,23 @@ END_PROVIDER
|
|||||||
! array of the integrals of MO_i * z^2 MO_j
|
! array of the integrals of MO_i * z^2 MO_j
|
||||||
END_DOC
|
END_DOC
|
||||||
implicit none
|
implicit none
|
||||||
integer :: i1,j1,i,j
|
call ao_to_mo( &
|
||||||
double precision :: c_i1,c_j1
|
ao_spread_x, &
|
||||||
|
size(ao_spread_x,1), &
|
||||||
mo_nucl_elec_integral = 0.d0
|
mo_spread_x, &
|
||||||
!$OMP PARALLEL DO DEFAULT(none) &
|
size(mo_spread_x,1), &
|
||||||
!$OMP PRIVATE(i,j,i1,j1,c_j1,c_i1) &
|
)
|
||||||
!$OMP SHARED(mo_tot_num,ao_num,mo_coef, &
|
call ao_to_mo( &
|
||||||
!$OMP mo_spread_x,mo_spread_y,mo_spread_z,ao_spread_x,ao_spread_y,ao_spread_z)
|
ao_spread_y, &
|
||||||
do i = 1, mo_tot_num
|
size(ao_spread_y,1), &
|
||||||
do j = 1, mo_tot_num
|
mo_spread_y, &
|
||||||
do i1 = 1,ao_num
|
size(mo_spread_y,1), &
|
||||||
c_i1 = mo_coef(i1,i)
|
)
|
||||||
do j1 = 1,ao_num
|
call ao_to_mo( &
|
||||||
c_j1 = c_i1*mo_coef(j1,j)
|
ao_spread_z, &
|
||||||
mo_spread_x(j,i) = mo_spread_x(j,i) + c_j1 * ao_spread_x(j1,i1)
|
size(ao_spread_z,1), &
|
||||||
mo_spread_y(j,i) = mo_spread_y(j,i) + c_j1 * ao_spread_y(j1,i1)
|
mo_spread_z, &
|
||||||
mo_spread_z(j,i) = mo_spread_z(j,i) + c_j1 * ao_spread_z(j1,i1)
|
size(mo_spread_z,1), &
|
||||||
enddo
|
)
|
||||||
enddo
|
|
||||||
enddo
|
|
||||||
enddo
|
|
||||||
!$OMP END PARALLEL DO
|
|
||||||
END_PROVIDER
|
|
||||||
|
|
||||||
BEGIN_PROVIDER [double precision, mo_deriv_1_x , (mo_tot_num_align,mo_tot_num)]
|
|
||||||
&BEGIN_PROVIDER [double precision, mo_deriv_1_y , (mo_tot_num_align,mo_tot_num)]
|
|
||||||
&BEGIN_PROVIDER [double precision, mo_deriv_1_z , (mo_tot_num_align,mo_tot_num)]
|
|
||||||
BEGIN_DOC
|
|
||||||
! array of the integrals of MO_i * d/dx MO_j
|
|
||||||
! array of the integrals of MO_i * d/dy MO_j
|
|
||||||
! array of the integrals of MO_i * d/dz MO_j
|
|
||||||
END_DOC
|
|
||||||
implicit none
|
|
||||||
integer :: i1,j1,i,j
|
|
||||||
double precision :: c_i1,c_j1
|
|
||||||
|
|
||||||
mo_nucl_elec_integral = 0.d0
|
|
||||||
!$OMP PARALLEL DO DEFAULT(none) &
|
|
||||||
!$OMP PRIVATE(i,j,i1,j1,c_j1,c_i1) &
|
|
||||||
!$OMP SHARED(mo_tot_num,ao_num,mo_coef, &
|
|
||||||
!$OMP mo_deriv_1_x,mo_deriv_1_y,mo_deriv_1_z,ao_spread_x,ao_spread_y,ao_spread_z)
|
|
||||||
do i = 1, mo_tot_num
|
|
||||||
do j = 1, mo_tot_num
|
|
||||||
do i1 = 1,ao_num
|
|
||||||
c_i1 = mo_coef(i1,i)
|
|
||||||
do j1 = 1,ao_num
|
|
||||||
c_j1 = c_i1*mo_coef(j1,j)
|
|
||||||
mo_deriv_1_x(j,i) = mo_deriv_1_x(j,i) + c_j1 * ao_spread_x(j1,i1)
|
|
||||||
mo_deriv_1_y(j,i) = mo_deriv_1_y(j,i) + c_j1 * ao_spread_y(j1,i1)
|
|
||||||
mo_deriv_1_z(j,i) = mo_deriv_1_z(j,i) + c_j1 * ao_spread_z(j1,i1)
|
|
||||||
enddo
|
|
||||||
enddo
|
|
||||||
enddo
|
|
||||||
enddo
|
|
||||||
!$OMP END PARALLEL DO
|
|
||||||
END_PROVIDER
|
END_PROVIDER
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user