diff --git a/plugins/local/extra_basis_int/ao_overlap.irp.f b/plugins/local/extra_basis_int/ao_overlap.irp.f index 4f8debb6..9e45e690 100644 --- a/plugins/local/extra_basis_int/ao_overlap.irp.f +++ b/plugins/local/extra_basis_int/ao_overlap.irp.f @@ -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 @@ -69,7 +69,9 @@ END_PROVIDER BEGIN_PROVIDER [double precision, ao_extra_overlap_mixed , (ao_num, ao_extra_num)] BEGIN_DOC - ! Overlap between atomic basis functions: + ! Overlap between atomic basis functions: + ! + ! first index belongs to the REGULAR AO basis, second to the EXTRA basis ! ! END_DOC diff --git a/plugins/local/extra_basis_int/pot_ao_ints.irp.f b/plugins/local/extra_basis_int/pot_ao_ints.irp.f index 5a7d7580..f52e7579 100644 --- a/plugins/local/extra_basis_int/pot_ao_ints.irp.f +++ b/plugins/local/extra_basis_int/pot_ao_ints.irp.f @@ -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 $ ! - ! ! where $\chi_i(r)$ AND $\chi_j(r)$ belongs to the EXTRA basis END_DOC integer :: mu,nu diff --git a/plugins/local/extra_basis_int/v_mixed_extra.irp.f b/plugins/local/extra_basis_int/v_mixed_extra.irp.f index 15958ab5..8b8ce92e 100644 --- a/plugins/local/extra_basis_int/v_mixed_extra.irp.f +++ b/plugins/local/extra_basis_int/v_mixed_extra.irp.f @@ -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) diff --git a/src/ao_extra_basis/README.rst b/src/ao_extra_basis/README.rst index f60d71c0..5f850255 100644 --- a/src/ao_extra_basis/README.rst +++ b/src/ao_extra_basis/README.rst @@ -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. + diff --git a/src/ao_extra_basis/tuto/He_A.xyz b/src/ao_extra_basis/tuto/He_A.xyz new file mode 100644 index 00000000..d5285ade --- /dev/null +++ b/src/ao_extra_basis/tuto/He_A.xyz @@ -0,0 +1,3 @@ +1 +He atom "A" +He 0. 0. 0. diff --git a/src/ao_extra_basis/tuto/example_copy.sh b/src/ao_extra_basis/tuto/example_copy.sh new file mode 100755 index 00000000..0677b183 --- /dev/null +++ b/src/ao_extra_basis/tuto/example_copy.sh @@ -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 diff --git a/src/ao_extra_basis/tuto/h2o.xyz b/src/ao_extra_basis/tuto/h2o.xyz new file mode 100644 index 00000000..d3928214 --- /dev/null +++ b/src/ao_extra_basis/tuto/h2o.xyz @@ -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 + +