mirror of
https://github.com/QuantumPackage/qp2.git
synced 2025-04-25 17:54:44 +02:00
added direct, exchange between extra_basis and usual basis, together with a tuto in ao_extra_basis
This commit is contained in:
parent
52fdf18e74
commit
ffe7a8485f
@ -4,7 +4,7 @@
|
||||
BEGIN_PROVIDER [double precision, ao_extra_overlap , (ao_extra_num, ao_extra_num)]
|
||||
|
||||
BEGIN_DOC
|
||||
! Overlap between atomic basis functions:
|
||||
! Overlap between atomic basis functions belonging to the EXTRA BASIS
|
||||
!
|
||||
! :math:`\int \chi_i(r) \chi_j(r) dr`
|
||||
END_DOC
|
||||
@ -71,6 +71,8 @@ END_PROVIDER
|
||||
BEGIN_DOC
|
||||
! Overlap between atomic basis functions:
|
||||
!
|
||||
! first index belongs to the REGULAR AO basis, second to the EXTRA basis
|
||||
!
|
||||
! <AO_i|AO_j extra basis>
|
||||
END_DOC
|
||||
|
||||
|
@ -5,7 +5,6 @@ BEGIN_PROVIDER [ double precision, pot_vne_A_extra_basis, (ao_extra_num,ao_extra
|
||||
! Computes the following integral :
|
||||
! $\sum_{R in the USUAL nuclei} -Z <chi_i|1/|r-R||chi_j>$
|
||||
!
|
||||
!
|
||||
! where $\chi_i(r)$ AND $\chi_j(r)$ belongs to the EXTRA basis
|
||||
END_DOC
|
||||
integer :: mu,nu
|
||||
|
@ -9,9 +9,9 @@ double precision function v_extra_nucl_extra_ao(i_ao,j_ao)
|
||||
! $\int_{-\infty}^{infty} dr \chi_i(r) \chi_j(r) v_ne^{extra}(r)$.
|
||||
!
|
||||
!
|
||||
! where BOTH $\chi_i(r)$ AND $\chi_j(r)$ belongs to the EXTRA basis
|
||||
! where BOTH $\chi_i(r)$ AND $\chi_j(r)$ belongs to the EXTRA basis (system B)
|
||||
!
|
||||
! and v_ne^{extra}(r) is the Coulomb potential coming from the EXTRA nuclei
|
||||
! and v_ne^{extra}(r) is the Coulomb potential coming from the EXTRA nuclei (system B)
|
||||
END_DOC
|
||||
integer, intent(in) ::i_ao,j_ao
|
||||
double precision :: mu_in,charge,coord(3)
|
||||
@ -34,9 +34,9 @@ double precision function v_extra_nucl_ao(i_ao,j_ao)
|
||||
! $\int_{-\infty}^{infty} dr \chi_i(r) \chi_j(r) v_ne(r)$.
|
||||
!
|
||||
!
|
||||
! where BOTH $\chi_i(r)$ AND $\chi_j(r)$ belongs to the REGULAR basis
|
||||
! where BOTH $\chi_i(r)$ AND $\chi_j(r)$ belongs to the REGULAR basis (system A)
|
||||
!
|
||||
! and v_ne(r) is the Coulomb potential coming from the EXTRA nuclei
|
||||
! and v_ne(r) is the Coulomb potential coming from the EXTRA nuclei (system B)
|
||||
END_DOC
|
||||
integer, intent(in) ::i_ao,j_ao
|
||||
integer :: i
|
||||
@ -59,9 +59,9 @@ double precision function v_nucl_extra_ao(i_ao,j_ao)
|
||||
! $\int_{-\infty}^{infty} dr \chi_i(r) \chi_j(r) v_ne(r)$.
|
||||
!
|
||||
!
|
||||
! where BOTH $\chi_i(r)$ AND $\chi_j(r)$ belongs to the EXTRA basis
|
||||
! where BOTH $\chi_i(r)$ AND $\chi_j(r)$ belongs to the EXTRA basis (system B)
|
||||
!
|
||||
! and v_ne(r) is the Coulomb potential coming from the REGULAR nuclei
|
||||
! and v_ne(r) is the Coulomb potential coming from the REGULAR nuclei (system A)
|
||||
END_DOC
|
||||
integer, intent(in) ::i_ao,j_ao
|
||||
double precision :: mu_in,charge,coord(3)
|
||||
|
@ -5,7 +5,9 @@ extra_basis
|
||||
Plugin to handle an extra basis, which is attached to the extra_nuclei.
|
||||
It is essentially a duplication of all important quantities (coefficients, exponents and so on) of the usual |AO| basis.
|
||||
|
||||
An interesting feature is the possibility to fit any basis made at most with "p" functions onto a purely "s" basis.
|
||||
Check in the directory "tuto" for a simple example of how to create a fictious system "B" attached independently to a system "A"
|
||||
|
||||
Another interesting feature is the possibility to fit any basis made at most with "p" functions onto a purely "s" basis.
|
||||
This is done with the various scripts here:
|
||||
|
||||
- qp_fit_1s_basis : script that creates an |EZFIO| folder corresponding to an .xyz file and a basis fitted with only "s" functions
|
||||
@ -13,3 +15,4 @@ This is done with the various scripts here:
|
||||
|
||||
Ex:
|
||||
qp_add_extra_fit_system LiH.ezfio/ h2o.xyz # takes the EZFIO folder "LiH.ezfio" and creates all necessary additional basis and nuclei based on h2o.xyz, but only with 1s functions.
|
||||
|
||||
|
3
src/ao_extra_basis/tuto/He_A.xyz
Normal file
3
src/ao_extra_basis/tuto/He_A.xyz
Normal file
@ -0,0 +1,3 @@
|
||||
1
|
||||
He atom "A"
|
||||
He 0. 0. 0.
|
26
src/ao_extra_basis/tuto/example_copy.sh
Executable file
26
src/ao_extra_basis/tuto/example_copy.sh
Executable file
@ -0,0 +1,26 @@
|
||||
source ~/qp2/quantum_package.rc
|
||||
## Example of how to generate an additional h2o molecule, stored as a extra basis/nuclei etc .. to an He
|
||||
|
||||
sys_B=h2o.xyz
|
||||
basis_B=sto-3g
|
||||
output_B=${sys_B%.xyz}_${basis_B}
|
||||
|
||||
sys_A=He_A.xyz
|
||||
basis_A=cc-pvtz
|
||||
output_A=${sys_A%.xyz}_${basis_A}_extra_${output_B}
|
||||
|
||||
# we create the system "B" that will be attached as an "extra system" to the syste "A"
|
||||
qp create_ezfio -b $basis_B $sys_B -o ${output_B}
|
||||
# we perform an HF calculation to obtain the AO density matrix
|
||||
qp run scf
|
||||
# we save the density matrix in the EZFIO
|
||||
qp run save_one_e_dm
|
||||
# we create the system "A"
|
||||
qp create_ezfio -b $basis_A $sys_A -o ${output_A}
|
||||
# We perform an SCF calculation
|
||||
qp run scf
|
||||
# we copy the system "B" information as extra nuclei/basis etc in the EZFIO of system "A"
|
||||
qp_copy_extra_basis ${output_B} ${output_A}
|
||||
|
||||
# we execute an example of progra that prints a lot of useful integrals/information on the A-B interaction
|
||||
qp run test_extra_basis | tee ${output_A}.test_extra_basis
|
7
src/ao_extra_basis/tuto/h2o.xyz
Normal file
7
src/ao_extra_basis/tuto/h2o.xyz
Normal file
@ -0,0 +1,7 @@
|
||||
3
|
||||
|
||||
O 0.000000 -0.399441 3.000000
|
||||
H 0.761232 0.199721 3.000000
|
||||
H -0.761232 0.199721 3.000000
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user