10
0
mirror of https://github.com/LCPQ/quantum_package synced 2024-12-23 12:56:14 +01:00

Merge branch 'develop'

This commit is contained in:
Thomas Applencourt 2015-07-16 15:50:37 +02:00
commit f49fea0620
67 changed files with 692 additions and 661 deletions

View File

@ -31,14 +31,14 @@ OPENMP : 1 ; Append OpenMP flags
# -ftz : Flushes denormal results to zero # -ftz : Flushes denormal results to zero
# #
[OPT] [OPT]
FCFLAGS : -xHost -O2 -ip -opt-prefetch -ftz -g FCFLAGS : -xSSE4.2 -O2 -ip -opt-prefetch -ftz -g
# Profiling flags # Profiling flags
################# #################
# #
[PROFILE] [PROFILE]
FC : -p -g FC : -p -g
FCFLAGS : -xHost -O2 -ip -opt-prefetch -ftz FCFLAGS : -xSSE4.2 -O2 -ip -opt-prefetch -ftz
# Debugging flags # Debugging flags
################# #################

4
configure vendored
View File

@ -17,9 +17,11 @@ Options:
who contains a binary, than you can compile then who contains a binary, than you can compile then
individualy if you want individualy if you want
Example: Examples:
./configure config/gfortran.cfg --production ./configure config/gfortran.cfg --production
./configure config/ifort.cfg --development
""" """

8
ocaml/.gitignore vendored
View File

@ -38,12 +38,12 @@ qp_print
qp_run qp_run
qp_set_ddci qp_set_ddci
qp_set_mo_class qp_set_mo_class
Input_pseudo.ml
Input_integrals_bielec.ml
Input_hartree_fock.ml
Input_perturbation.ml
Input_determinants.ml Input_determinants.ml
Input_hartree_fock.ml
Input_integrals_bielec.ml
Input_perturbation.ml
Input_properties.ml Input_properties.ml
Input_pseudo.ml
qp_edit.ml qp_edit.ml
qp_edit qp_edit
qp_edit.native qp_edit.native

View File

@ -1,23 +1,23 @@
# Automatically created by /home/razoa/quantum_package/scripts/module/module_handler.py # Automatically created by $QP_ROOT/scripts/module/module_handler.py
IRPF90_temp
IRPF90_man
irpf90_entities
tags
irpf90.make
Makefile
Makefile.depend
.ninja_log
.ninja_deps .ninja_deps
ezfio_interface.irp.f .ninja_log
Ezfio_files AO_Basis
Bitmask
Determinants Determinants
Electrons
Ezfio_files
IRPF90_man
IRPF90_temp
Integrals_Bielec
Integrals_Monoelec Integrals_Monoelec
MO_Basis MO_Basis
Utils Makefile
Pseudo Makefile.depend
Bitmask
AO_Basis
Electrons
Nuclei Nuclei
Integrals_Bielec Pseudo
Utils
alavi_graph alavi_graph
ezfio_interface.irp.f
irpf90.make
irpf90_entities
tags

View File

@ -1,30 +1,30 @@
# Automatically created by /home/razoa/quantum_package/scripts/module/module_handler.py # Automatically created by $QP_ROOT/scripts/module/module_handler.py
IRPF90_temp .ninja_deps
.ninja_log
AO_Basis
Bitmask
Determinants
Electrons
Ezfio_files
Generators_CAS
Hartree_Fock
IRPF90_man IRPF90_man
irpf90_entities IRPF90_temp
tags Integrals_Bielec
irpf90.make Integrals_Monoelec
MOGuess
MO_Basis
Makefile Makefile
Makefile.depend Makefile.depend
.ninja_log
.ninja_deps
ezfio_interface.irp.f
Ezfio_files
Perturbation
Determinants
Utils
Integrals_Monoelec
MO_Basis
Selectors_full
Integrals_Bielec
Pseudo
Bitmask
Generators_CAS
AO_Basis
Electrons
MOGuess
Nuclei Nuclei
Hartree_Fock Perturbation
Properties Properties
cas_sd_selected Pseudo
Selectors_full
Utils
cas_sd cas_sd
cas_sd_selected
ezfio_interface.irp.f
irpf90.make
irpf90_entities
tags

View File

@ -5,6 +5,12 @@ from generate_h_apply import *
s = H_apply("CAS_SD") s = H_apply("CAS_SD")
print s print s
s = H_apply("CAS_SD_selected_no_skip")
s.set_selection_pt2("epstein_nesbet_2x2")
s.unset_skip()
print s
s = H_apply("CAS_SD_selected") s = H_apply("CAS_SD_selected")
s.set_selection_pt2("epstein_nesbet_2x2") s.set_selection_pt2("epstein_nesbet_2x2")
print s print s

View File

@ -17,52 +17,69 @@ Documentation
Undocumented Undocumented
`h_apply_cas_sd <http://github.com/LCPQ/quantum_package/tree/master/src/CAS_SD/H_apply.irp.f_shell_16#L408>`_ `h_apply_cas_sd <http://github.com/LCPQ/quantum_package/tree/master/src/CAS_SD/H_apply.irp.f_shell_22#L408>`_
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.
`h_apply_cas_sd_diexc <http://github.com/LCPQ/quantum_package/tree/master/src/CAS_SD/H_apply.irp.f_shell_16#L1>`_ `h_apply_cas_sd_diexc <http://github.com/LCPQ/quantum_package/tree/master/src/CAS_SD/H_apply.irp.f_shell_22#L1>`_
Generate all double excitations of key_in using the bit masks of holes and Generate all double excitations of key_in using the bit masks of holes and
particles. particles.
Assume N_int is already provided. Assume N_int is already provided.
`h_apply_cas_sd_monoexc <http://github.com/LCPQ/quantum_package/tree/master/src/CAS_SD/H_apply.irp.f_shell_16#L264>`_ `h_apply_cas_sd_monoexc <http://github.com/LCPQ/quantum_package/tree/master/src/CAS_SD/H_apply.irp.f_shell_22#L264>`_
Generate all single excitations of key_in using the bit masks of holes and Generate all single excitations of key_in using the bit masks of holes and
particles. particles.
Assume N_int is already provided. Assume N_int is already provided.
`h_apply_cas_sd_pt2 <http://github.com/LCPQ/quantum_package/tree/master/src/CAS_SD/H_apply.irp.f_shell_16#L1848>`_ `h_apply_cas_sd_pt2 <http://github.com/LCPQ/quantum_package/tree/master/src/CAS_SD/H_apply.irp.f_shell_22#L2586>`_
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.
`h_apply_cas_sd_pt2_diexc <http://github.com/LCPQ/quantum_package/tree/master/src/CAS_SD/H_apply.irp.f_shell_16#L1362>`_ `h_apply_cas_sd_pt2_diexc <http://github.com/LCPQ/quantum_package/tree/master/src/CAS_SD/H_apply.irp.f_shell_22#L2100>`_
Generate all double excitations of key_in using the bit masks of holes and Generate all double excitations of key_in using the bit masks of holes and
particles. particles.
Assume N_int is already provided. Assume N_int is already provided.
`h_apply_cas_sd_pt2_monoexc <http://github.com/LCPQ/quantum_package/tree/master/src/CAS_SD/H_apply.irp.f_shell_16#L1666>`_ `h_apply_cas_sd_pt2_monoexc <http://github.com/LCPQ/quantum_package/tree/master/src/CAS_SD/H_apply.irp.f_shell_22#L2404>`_
Generate all single excitations of key_in using the bit masks of holes and Generate all single excitations of key_in using the bit masks of holes and
particles. particles.
Assume N_int is already provided. Assume N_int is already provided.
`h_apply_cas_sd_selected <http://github.com/LCPQ/quantum_package/tree/master/src/CAS_SD/H_apply.irp.f_shell_16#L1116>`_ `h_apply_cas_sd_selected <http://github.com/LCPQ/quantum_package/tree/master/src/CAS_SD/H_apply.irp.f_shell_22#L1854>`_
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.
`h_apply_cas_sd_selected_diexc <http://github.com/LCPQ/quantum_package/tree/master/src/CAS_SD/H_apply.irp.f_shell_16#L596>`_ `h_apply_cas_sd_selected_diexc <http://github.com/LCPQ/quantum_package/tree/master/src/CAS_SD/H_apply.irp.f_shell_22#L1334>`_
Generate all double excitations of key_in using the bit masks of holes and Generate all double excitations of key_in using the bit masks of holes and
particles. particles.
Assume N_int is already provided. Assume N_int is already provided.
`h_apply_cas_sd_selected_monoexc <http://github.com/LCPQ/quantum_package/tree/master/src/CAS_SD/H_apply.irp.f_shell_16#L920>`_ `h_apply_cas_sd_selected_monoexc <http://github.com/LCPQ/quantum_package/tree/master/src/CAS_SD/H_apply.irp.f_shell_22#L1658>`_
Generate all single excitations of key_in using the bit masks of holes and
particles.
Assume N_int is already provided.
`h_apply_cas_sd_selected_no_skip <http://github.com/LCPQ/quantum_package/tree/master/src/CAS_SD/H_apply.irp.f_shell_22#L1116>`_
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_cas_sd_selected_no_skip_diexc <http://github.com/LCPQ/quantum_package/tree/master/src/CAS_SD/H_apply.irp.f_shell_22#L596>`_
Generate all double excitations of key_in using the bit masks of holes and
particles.
Assume N_int is already provided.
`h_apply_cas_sd_selected_no_skip_monoexc <http://github.com/LCPQ/quantum_package/tree/master/src/CAS_SD/H_apply.irp.f_shell_22#L920>`_
Generate all single excitations of key_in using the bit masks of holes and Generate all single excitations of key_in using the bit masks of holes and
particles. particles.
Assume N_int is already provided. Assume N_int is already provided.

View File

@ -9,6 +9,7 @@ program full_ci
N_st = N_states N_st = N_states
allocate (pt2(N_st), norm_pert(N_st),H_pert_diag(N_st)) allocate (pt2(N_st), norm_pert(N_st),H_pert_diag(N_st))
character*(64) :: perturbation character*(64) :: perturbation
PROVIDE N_det_cas
N_det_old = 0 N_det_old = 0
pt2 = 1.d0 pt2 = 1.d0
@ -52,7 +53,7 @@ program full_ci
print *, 'E = ', CI_energy print *, 'E = ', CI_energy
print *, 'E+PT2 = ', CI_energy+pt2 print *, 'E+PT2 = ', CI_energy+pt2
print *, '-----' print *, '-----'
call ezfio_set_cas_sd_energy(CI_energy) call ezfio_set_cas_sd_energy(CI_energy(1))
if (abort_all) then if (abort_all) then
exit exit
endif endif
@ -60,16 +61,34 @@ program full_ci
exit exit
endif endif
enddo enddo
call diagonalize_CI
if(do_pt2_end)then
print*,'Last iteration only to compute the PT2'
threshold_selectors = 1.d0
threshold_generators = 0.999d0
call H_apply_CAS_SD_PT2(pt2, norm_pert, H_pert_diag, N_st)
print *, 'Final step'
print *, 'N_det = ', N_det
print *, 'N_states = ', N_states
print *, 'PT2 = ', pt2
print *, 'E = ', CI_energy
print *, 'E+PT2 = ', CI_energy+pt2
print *, '-----'
call ezfio_set_cas_sd_energy_pt2(CI_energy(1)+pt2(1))
endif
integer :: exc_max, degree_min integer :: exc_max, degree_min
exc_max = 0 exc_max = 0
print *, 'CAS determinants : ', N_det_generators print *, 'CAS determinants : ', N_det_cas
do i=1,min(N_det_generators,10) do i=1,min(N_det_cas,10)
do k=i,N_det_generators do k=i,N_det_cas
call get_excitation_degree(psi_det_generators(1,1,k),psi_det_generators(1,1,i),degree,N_int) call get_excitation_degree(psi_cas(1,1,k),psi_cas(1,1,i),degree,N_int)
exc_max = max(exc_max,degree) exc_max = max(exc_max,degree)
enddo enddo
call debug_det(psi_det_generators(1,1,i),N_int) call debug_det(psi_cas(1,1,i),N_int)
print *, '' print *, ''
enddo enddo
print *, 'Max excitation degree in the CAS :', exc_max print *, 'Max excitation degree in the CAS :', exc_max

Binary file not shown.

Before

Width:  |  Height:  |  Size: 104 KiB

After

Width:  |  Height:  |  Size: 111 KiB

View File

@ -1,28 +1,28 @@
# Automatically created by /home/razoa/quantum_package/scripts/module/module_handler.py # Automatically created by $QP_ROOT/scripts/module/module_handler.py
IRPF90_temp
IRPF90_man
irpf90_entities
tags
irpf90.make
Makefile
Makefile.depend
.ninja_log
.ninja_deps .ninja_deps
ezfio_interface.irp.f .ninja_log
Ezfio_files
Determinants
Integrals_Monoelec
MO_Basis
Selectors_full
Utils
Pseudo
AO_Basis AO_Basis
Bitmask Bitmask
SingleRefMethod Determinants
Electrons Electrons
MOGuess Ezfio_files
Nuclei
Hartree_Fock Hartree_Fock
IRPF90_man
IRPF90_temp
Integrals_Bielec Integrals_Bielec
Integrals_Monoelec
MOGuess
MO_Basis
Makefile
Makefile.depend
Nuclei
Pseudo
Selectors_full
SingleRefMethod
Utils
cid cid
cid_lapack cid_lapack
ezfio_interface.irp.f
irpf90.make
irpf90_entities
tags

View File

@ -1,31 +1,31 @@
# Automatically created by /home/razoa/quantum_package/scripts/module/module_handler.py # Automatically created by $QP_ROOT/scripts/module/module_handler.py
IRPF90_temp .ninja_deps
.ninja_log
AO_Basis
Bitmask
CID
CID_selected
Determinants
Electrons
Ezfio_files
Hartree_Fock
IRPF90_man IRPF90_man
irpf90_entities IRPF90_temp
tags Integrals_Bielec
irpf90.make Integrals_Monoelec
MOGuess
MO_Basis
Makefile Makefile
Makefile.depend Makefile.depend
.ninja_log Nuclei
.ninja_deps
ezfio_interface.irp.f
Ezfio_files
Perturbation Perturbation
Determinants Properties
Integrals_Monoelec Pseudo
MO_Basis
Selectors_full Selectors_full
SingleRefMethod SingleRefMethod
Utils Utils
CID
Pseudo
Properties
Bitmask
AO_Basis
Electrons
MOGuess
CID_selected
Nuclei
Hartree_Fock
Integrals_Bielec
cid_sc2_selection cid_sc2_selection
ezfio_interface.irp.f
irpf90.make
irpf90_entities
tags

View File

@ -1,30 +1,30 @@
# Automatically created by /home/razoa/quantum_package/scripts/module/module_handler.py # Automatically created by $QP_ROOT/scripts/module/module_handler.py
IRPF90_temp
IRPF90_man
irpf90_entities
tags
irpf90.make
Makefile
Makefile.depend
.ninja_log
.ninja_deps .ninja_deps
ezfio_interface.irp.f .ninja_log
Ezfio_files
Perturbation
Determinants
Utils
Integrals_Monoelec
MO_Basis
Selectors_full
Integrals_Bielec
CID
Pseudo
AO_Basis AO_Basis
Bitmask Bitmask
SingleRefMethod CID
Determinants
Electrons Electrons
MOGuess Ezfio_files
Nuclei
Hartree_Fock Hartree_Fock
IRPF90_man
IRPF90_temp
Integrals_Bielec
Integrals_Monoelec
MOGuess
MO_Basis
Makefile
Makefile.depend
Nuclei
Perturbation
Properties Properties
Pseudo
Selectors_full
SingleRefMethod
Utils
cid_selection cid_selection
ezfio_interface.irp.f
irpf90.make
irpf90_entities
tags

View File

@ -1,28 +1,28 @@
# Automatically created by /home/razoa/quantum_package/scripts/module/module_handler.py # Automatically created by $QP_ROOT/scripts/module/module_handler.py
IRPF90_temp
IRPF90_man
irpf90_entities
tags
irpf90.make
Makefile
Makefile.depend
.ninja_log
.ninja_deps .ninja_deps
ezfio_interface.irp.f .ninja_log
Ezfio_files
Determinants
Integrals_Monoelec
MO_Basis
Selectors_full
Utils
Pseudo
AO_Basis AO_Basis
Bitmask Bitmask
SingleRefMethod Determinants
Electrons Electrons
MOGuess Ezfio_files
Nuclei
Hartree_Fock Hartree_Fock
IRPF90_man
IRPF90_temp
Integrals_Bielec Integrals_Bielec
super_ci Integrals_Monoelec
MOGuess
MO_Basis
Makefile
Makefile.depend
Nuclei
Pseudo
Selectors_full
SingleRefMethod
Utils
cis cis
ezfio_interface.irp.f
irpf90.make
irpf90_entities
super_ci
tags

View File

@ -1,28 +1,28 @@
# Automatically created by /home/razoa/quantum_package/scripts/module/module_handler.py # Automatically created by $QP_ROOT/scripts/module/module_handler.py
IRPF90_temp
IRPF90_man
irpf90_entities
tags
irpf90.make
Makefile
Makefile.depend
.ninja_log
.ninja_deps .ninja_deps
ezfio_interface.irp.f .ninja_log
Ezfio_files
Determinants
Integrals_Monoelec
MO_Basis
Selectors_full
Utils
Pseudo
AO_Basis AO_Basis
Bitmask Bitmask
SingleRefMethod Determinants
Electrons Electrons
MOGuess Ezfio_files
Nuclei
Hartree_Fock Hartree_Fock
IRPF90_man
IRPF90_temp
Integrals_Bielec Integrals_Bielec
cisd_lapack Integrals_Monoelec
MOGuess
MO_Basis
Makefile
Makefile.depend
Nuclei
Pseudo
Selectors_full
SingleRefMethod
Utils
cisd cisd
cisd_lapack
ezfio_interface.irp.f
irpf90.make
irpf90_entities
tags

Binary file not shown.

Before

Width:  |  Height:  |  Size: 92 KiB

After

Width:  |  Height:  |  Size: 96 KiB

View File

@ -1,31 +1,31 @@
# Automatically created by /home/razoa/quantum_package/scripts/module/module_handler.py # Automatically created by $QP_ROOT/scripts/module/module_handler.py
IRPF90_temp .ninja_deps
.ninja_log
AO_Basis
Bitmask
CISD
CISD_selected
Determinants
Electrons
Ezfio_files
Hartree_Fock
IRPF90_man IRPF90_man
irpf90_entities IRPF90_temp
tags Integrals_Bielec
irpf90.make Integrals_Monoelec
MOGuess
MO_Basis
Makefile Makefile
Makefile.depend Makefile.depend
.ninja_log Nuclei
.ninja_deps
ezfio_interface.irp.f
Ezfio_files
Perturbation Perturbation
Determinants Properties
Integrals_Monoelec Pseudo
MO_Basis
Selectors_full Selectors_full
SingleRefMethod SingleRefMethod
Utils Utils
Pseudo
Properties
Bitmask
AO_Basis
Electrons
CISD_selected
MOGuess
CISD
Nuclei
Hartree_Fock
Integrals_Bielec
cisd_sc2_selection cisd_sc2_selection
ezfio_interface.irp.f
irpf90.make
irpf90_entities
tags

Binary file not shown.

Before

Width:  |  Height:  |  Size: 116 KiB

After

Width:  |  Height:  |  Size: 123 KiB

View File

@ -1,30 +1,30 @@
# Automatically created by /home/razoa/quantum_package/scripts/module/module_handler.py # Automatically created by $QP_ROOT/scripts/module/module_handler.py
IRPF90_temp
IRPF90_man
irpf90_entities
tags
irpf90.make
Makefile
Makefile.depend
.ninja_log
.ninja_deps .ninja_deps
ezfio_interface.irp.f .ninja_log
Ezfio_files
Perturbation
Determinants
Utils
Integrals_Monoelec
MO_Basis
Selectors_full
Integrals_Bielec
Pseudo
AO_Basis AO_Basis
Bitmask Bitmask
SingleRefMethod
Electrons
MOGuess
CISD CISD
Nuclei Determinants
Electrons
Ezfio_files
Hartree_Fock Hartree_Fock
IRPF90_man
IRPF90_temp
Integrals_Bielec
Integrals_Monoelec
MOGuess
MO_Basis
Makefile
Makefile.depend
Nuclei
Perturbation
Properties Properties
Pseudo
Selectors_full
SingleRefMethod
Utils
cisd_selection cisd_selection
ezfio_interface.irp.f
irpf90.make
irpf90_entities
tags

Binary file not shown.

Before

Width:  |  Height:  |  Size: 110 KiB

After

Width:  |  Height:  |  Size: 116 KiB

View File

@ -1,23 +1,23 @@
# Automatically created by /home/razoa/quantum_package/scripts/module/module_handler.py # Automatically created by $QP_ROOT/scripts/module/module_handler.py
IRPF90_temp
IRPF90_man
irpf90_entities
tags
irpf90.make
Makefile
Makefile.depend
.ninja_log
.ninja_deps .ninja_deps
ezfio_interface.irp.f .ninja_log
Ezfio_files AO_Basis
Bitmask
Determinants Determinants
Electrons
Ezfio_files
IRPF90_man
IRPF90_temp
Integrals_Bielec
Integrals_Monoelec Integrals_Monoelec
MO_Basis MO_Basis
Utils Makefile
Pseudo Makefile.depend
Bitmask
AO_Basis
Electrons
Nuclei Nuclei
Integrals_Bielec Pseudo
Utils
ezfio_interface.irp.f
irpf90.make
irpf90_entities
save_for_casino save_for_casino
tags

View File

@ -1,29 +1,29 @@
# Automatically created by /home/razoa/quantum_package/scripts/module/module_handler.py # Automatically created by $QP_ROOT/scripts/module/module_handler.py
IRPF90_temp .ninja_deps
.ninja_log
AO_Basis
Bitmask
Determinants
Electrons
Ezfio_files
Generators_CAS
Hartree_Fock
IRPF90_man IRPF90_man
irpf90_entities IRPF90_temp
tags Integrals_Bielec
irpf90.make Integrals_Monoelec
MOGuess
MO_Basis
Makefile Makefile
Makefile.depend Makefile.depend
.ninja_log
.ninja_deps
ezfio_interface.irp.f
Ezfio_files
Perturbation
Determinants
Utils
Integrals_Monoelec
MO_Basis
Selectors_full
Integrals_Bielec
Pseudo
Bitmask
Generators_CAS
AO_Basis
Electrons
MOGuess
Nuclei Nuclei
Hartree_Fock Perturbation
Properties Properties
Pseudo
Selectors_full
Utils
ddci ddci
ezfio_interface.irp.f
irpf90.make
irpf90_entities
tags

Binary file not shown.

Before

Width:  |  Height:  |  Size: 105 KiB

After

Width:  |  Height:  |  Size: 112 KiB

View File

@ -1,32 +1,32 @@
# Automatically created by /home/razoa/quantum_package/scripts/module/module_handler.py # Automatically created by $QP_ROOT/scripts/module/module_handler.py
IRPF90_temp .ninja_deps
.ninja_log
AO_Basis
Bitmask
Determinants
Electrons
Ezfio_files
Generators_full
Hartree_Fock
IRPF90_man IRPF90_man
irpf90_entities IRPF90_temp
tags Integrals_Bielec
irpf90.make Integrals_Monoelec
MOGuess
MO_Basis
Makefile Makefile
Makefile.depend Makefile.depend
.ninja_log
.ninja_deps
ezfio_interface.irp.f
Ezfio_files
Perturbation
Determinants
Utils
Integrals_Monoelec
MO_Basis
Selectors_full
Integrals_Bielec
Pseudo
Generators_full
Bitmask
AO_Basis
Electrons
MOGuess
Nuclei Nuclei
Hartree_Fock Perturbation
Properties Properties
target_pt2 Pseudo
Selectors_full
Utils
ezfio_interface.irp.f
full_ci full_ci
var_pt2_ratio
full_ci_no_skip full_ci_no_skip
irpf90.make
irpf90_entities
tags
target_pt2
var_pt2_ratio

Binary file not shown.

Before

Width:  |  Height:  |  Size: 104 KiB

After

Width:  |  Height:  |  Size: 111 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 KiB

View File

@ -43,7 +43,7 @@ Needed Modules
.. Do not edit this section. It was auto-generated from the .. Do not edit this section. It was auto-generated from the
.. by the `update_README.py` script. .. by the `update_README.py` script.
.. image:: tree_dependency.pdf .. image:: tree_dependency.png
* `Determinants <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants>`_ * `Determinants <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants>`_
* `Hartree_Fock <http://github.com/LCPQ/quantum_package/tree/master/src/Hartree_Fock>`_ * `Hartree_Fock <http://github.com/LCPQ/quantum_package/tree/master/src/Hartree_Fock>`_

Binary file not shown.

After

Width:  |  Height:  |  Size: 82 KiB

View File

@ -1,24 +1,24 @@
# Automatically created by /home/razoa/quantum_package/scripts/module/module_handler.py # Automatically created by $QP_ROOT/scripts/module/module_handler.py
IRPF90_temp .ninja_deps
.ninja_log
AO_Basis
Bitmask
Electrons
Ezfio_files
Huckel_guess
IRPF90_man IRPF90_man
irpf90_entities IRPF90_temp
tags Integrals_Bielec
irpf90.make Integrals_Monoelec
MOGuess
MO_Basis
Makefile Makefile
Makefile.depend Makefile.depend
.ninja_log
.ninja_deps
ezfio_interface.irp.f
Ezfio_files
Integrals_Monoelec
MO_Basis
Integrals_Bielec
Pseudo
Bitmask
AO_Basis
Electrons
MOGuess
Nuclei Nuclei
Utils Pseudo
Huckel_guess
SCF SCF
Utils
ezfio_interface.irp.f
irpf90.make
irpf90_entities
tags

Binary file not shown.

Before

Width:  |  Height:  |  Size: 63 KiB

After

Width:  |  Height:  |  Size: 66 KiB

View File

@ -1,29 +1,29 @@
# Automatically created by /home/razoa/quantum_package/scripts/module/module_handler.py # Automatically created by $QP_ROOT/scripts/module/module_handler.py
IRPF90_temp
IRPF90_man
irpf90_entities
tags
irpf90.make
Makefile
Makefile.depend
.ninja_log
.ninja_deps .ninja_deps
ezfio_interface.irp.f .ninja_log
Ezfio_files
Perturbation
Determinants
Utils
Integrals_Monoelec
MO_Basis
Selectors_full
Integrals_Bielec
Pseudo
AO_Basis AO_Basis
Bitmask Bitmask
SingleRefMethod Determinants
Electrons Electrons
MOGuess Ezfio_files
Nuclei
Hartree_Fock Hartree_Fock
IRPF90_man
IRPF90_temp
Integrals_Bielec
Integrals_Monoelec
MOGuess
MO_Basis
Makefile
Makefile.depend
Nuclei
Perturbation
Properties Properties
Pseudo
Selectors_full
SingleRefMethod
Utils
ezfio_interface.irp.f
irpf90.make
irpf90_entities
mp2 mp2
tags

View File

@ -1,29 +1,29 @@
# Automatically created by /home/razoa/quantum_package/scripts/module/module_handler.py # Automatically created by $QP_ROOT/scripts/module/module_handler.py
IRPF90_temp .ninja_deps
.ninja_log
AO_Basis
Bitmask
Determinants
Electrons
Ezfio_files
Generators_full
Hartree_Fock
IRPF90_man IRPF90_man
irpf90_entities IRPF90_temp
tags Integrals_Bielec
irpf90.make Integrals_Monoelec
MOGuess
MO_Basis
Makefile Makefile
Makefile.depend Makefile.depend
.ninja_log
.ninja_deps
ezfio_interface.irp.f
Ezfio_files
Perturbation
Determinants
Utils
Integrals_Monoelec
MO_Basis
Selectors_full
Integrals_Bielec
Pseudo
Generators_full
Bitmask
AO_Basis
Electrons
MOGuess
Nuclei Nuclei
Hartree_Fock Perturbation
Properties Properties
Pseudo
Selectors_full
Utils
ezfio_interface.irp.f
irpf90.make
irpf90_entities
mrcc mrcc
tags

View File

@ -2,18 +2,20 @@ use bitmasks
BEGIN_SHELL [ /usr/bin/env python ] BEGIN_SHELL [ /usr/bin/env python ]
from generate_h_apply import * from generate_h_apply import *
s = H_apply("mrcc_simple") s = H_apply("mrcc")
s.data["parameters"] = ", delta_ij_sd_, Ndet_sd" s.data["parameters"] = ", delta_ij_, delta_ii_,Ndet_cas, Ndet_non_cas"
s.data["declarations"] += """ s.data["declarations"] += """
integer, intent(in) :: Ndet_sd integer, intent(in) :: Ndet_cas,Ndet_non_cas
double precision, intent(in) :: delta_ij_sd_(Ndet_sd,Ndet_sd,*) double precision, intent(in) :: delta_ij_(Ndet_cas,Ndet_non_cas,*)
double precision, intent(in) :: delta_ii_(Ndet_cas,*)
""" """
s.data["keys_work"] = "call mrcc_dress_simple(delta_ij_sd_,Ndet_sd,i_generator,key_idx,keys_out,N_int,iproc)" s.data["keys_work"] = "call mrcc_dress(delta_ij_,delta_ii_,Ndet_cas,Ndet_non_cas,i_generator,key_idx,keys_out,N_int,iproc)"
s.data["params_post"] += ", delta_ij_sd_, Ndet_sd" s.data["params_post"] += ", delta_ij_, delta_ii_, Ndet_cas, Ndet_non_cas"
s.data["params_main"] += "delta_ij_sd_, Ndet_sd" s.data["params_main"] += "delta_ij_, delta_ii_, Ndet_cas, Ndet_non_cas"
s.data["decls_main"] += """ s.data["decls_main"] += """
integer, intent(in) :: Ndet_sd integer, intent(in) :: Ndet_cas,Ndet_non_cas
double precision, intent(in) :: delta_ij_sd_(Ndet_sd,Ndet_sd,*) double precision, intent(in) :: delta_ij_(Ndet_cas,Ndet_non_cas,*)
double precision, intent(in) :: delta_ii_(Ndet_cas,*)
""" """
s.data["finalization"] = "" s.data["finalization"] = ""
s.data["copy_buffer"] = "" s.data["copy_buffer"] = ""
@ -22,11 +24,5 @@ s.data["size_max"] = "3072"
print s print s
s.data["subroutine"] = "H_apply_mrcc"
s.data["keys_work"] = "call mrcc_dress(delta_ij_sd_,Ndet_sd,i_generator,key_idx,keys_out,N_int,iproc)"
print s
END_SHELL END_SHELL

View File

@ -20,23 +20,23 @@ Documentation
.. Do not edit this section. It was auto-generated from the .. Do not edit this section. It was auto-generated from the
.. by the `update_README.py` script. .. by the `update_README.py` script.
`ci_eigenvectors_dressed <http://github.com/LCPQ/quantum_package/tree/master/src/MRCC/mrcc_utils.irp.f#L94>`_ `ci_eigenvectors_dressed <http://github.com/LCPQ/quantum_package/tree/master/src/MRCC/mrcc_utils.irp.f#L76>`_
Eigenvectors/values of the CI matrix Eigenvectors/values of the CI matrix
`ci_eigenvectors_s2_dressed <http://github.com/LCPQ/quantum_package/tree/master/src/MRCC/mrcc_utils.irp.f#L95>`_ `ci_eigenvectors_s2_dressed <http://github.com/LCPQ/quantum_package/tree/master/src/MRCC/mrcc_utils.irp.f#L77>`_
Eigenvectors/values of the CI matrix Eigenvectors/values of the CI matrix
`ci_electronic_energy_dressed <http://github.com/LCPQ/quantum_package/tree/master/src/MRCC/mrcc_utils.irp.f#L93>`_ `ci_electronic_energy_dressed <http://github.com/LCPQ/quantum_package/tree/master/src/MRCC/mrcc_utils.irp.f#L75>`_
Eigenvectors/values of the CI matrix Eigenvectors/values of the CI matrix
`ci_energy_dressed <http://github.com/LCPQ/quantum_package/tree/master/src/MRCC/mrcc_utils.irp.f#L160>`_ `ci_energy_dressed <http://github.com/LCPQ/quantum_package/tree/master/src/MRCC/mrcc_utils.irp.f#L142>`_
N_states lowest eigenvalues of the dressed CI matrix N_states lowest eigenvalues of the dressed CI matrix
`davidson_diag_hjj_mrcc <http://github.com/LCPQ/quantum_package/tree/master/src/MRCC/davidson.irp.f#L51>`_ `davidson_diag_hjj_mrcc <http://github.com/LCPQ/quantum_package/tree/master/src/MRCC/davidson.irp.f#L56>`_
Davidson diagonalization with specific diagonal elements of the H matrix Davidson diagonalization with specific diagonal elements of the H matrix
.br .br
H_jj : specific diagonal H matrix elements to diagonalize de Davidson H_jj : specific diagonal H matrix elements to diagonalize de Davidson
@ -76,66 +76,45 @@ Documentation
Initial guess vectors are not necessarily orthonormal Initial guess vectors are not necessarily orthonormal
`delta_ij <http://github.com/LCPQ/quantum_package/tree/master/src/MRCC/mrcc_utils.irp.f#L48>`_ `delta_ii <http://github.com/LCPQ/quantum_package/tree/master/src/MRCC/mrcc_utils.irp.f#L39>`_
Dressing matrix in N_det basis Dressing matrix in N_det basis
`delta_ij_non_cas <http://github.com/LCPQ/quantum_package/tree/master/src/MRCC/mrcc_utils.irp.f#L39>`_ `delta_ij <http://github.com/LCPQ/quantum_package/tree/master/src/MRCC/mrcc_utils.irp.f#L38>`_
Dressing matrix in SD basis Dressing matrix in N_det basis
`diagonalize_ci_dressed <http://github.com/LCPQ/quantum_package/tree/master/src/MRCC/mrcc_utils.irp.f#L175>`_ `diagonalize_ci_dressed <http://github.com/LCPQ/quantum_package/tree/master/src/MRCC/mrcc_utils.irp.f#L157>`_
Replace the coefficients of the CI states by the coefficients of the Replace the coefficients of the CI states by the coefficients of the
eigenstates of the CI matrix eigenstates of the CI matrix
`dressing_type <http://github.com/LCPQ/quantum_package/tree/master/src/MRCC/mrcc_utils.irp.f#L31>`_
[ Simple | MRCC ]
`find_triples_and_quadruples <http://github.com/LCPQ/quantum_package/tree/master/src/MRCC/mrcc_dress.irp.f#L206>`_ `find_triples_and_quadruples <http://github.com/LCPQ/quantum_package/tree/master/src/MRCC/mrcc_dress.irp.f#L206>`_
Undocumented Undocumented
`h_apply_mrcc <http://github.com/LCPQ/quantum_package/tree/master/src/MRCC/H_apply.irp.f_shell_31#L990>`_ `h_apply_mrcc <http://github.com/LCPQ/quantum_package/tree/master/src/MRCC/H_apply.irp.f_shell_27#L416>`_
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.
`h_apply_mrcc_diexc <http://github.com/LCPQ/quantum_package/tree/master/src/MRCC/H_apply.irp.f_shell_31#L577>`_ `h_apply_mrcc_diexc <http://github.com/LCPQ/quantum_package/tree/master/src/MRCC/H_apply.irp.f_shell_27#L1>`_
Generate all double excitations of key_in using the bit masks of holes and Generate all double excitations of key_in using the bit masks of holes and
particles. particles.
Assume N_int is already provided. Assume N_int is already provided.
`h_apply_mrcc_monoexc <http://github.com/LCPQ/quantum_package/tree/master/src/MRCC/H_apply.irp.f_shell_31#L843>`_ `h_apply_mrcc_monoexc <http://github.com/LCPQ/quantum_package/tree/master/src/MRCC/H_apply.irp.f_shell_27#L268>`_
Generate all single excitations of key_in using the bit masks of holes and Generate all single excitations of key_in using the bit masks of holes and
particles. particles.
Assume N_int is already provided. Assume N_int is already provided.
`h_apply_mrcc_simple <http://github.com/LCPQ/quantum_package/tree/master/src/MRCC/H_apply.irp.f_shell_31#L414>`_ `h_matrix_dressed <http://github.com/LCPQ/quantum_package/tree/master/src/MRCC/mrcc_utils.irp.f#L50>`_
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_mrcc_simple_diexc <http://github.com/LCPQ/quantum_package/tree/master/src/MRCC/H_apply.irp.f_shell_31#L1>`_
Generate all double excitations of key_in using the bit masks of holes and
particles.
Assume N_int is already provided.
`h_apply_mrcc_simple_monoexc <http://github.com/LCPQ/quantum_package/tree/master/src/MRCC/H_apply.irp.f_shell_31#L267>`_
Generate all single excitations of key_in using the bit masks of holes and
particles.
Assume N_int is already provided.
`h_matrix_dressed <http://github.com/LCPQ/quantum_package/tree/master/src/MRCC/mrcc_utils.irp.f#L78>`_
Dressed H with Delta_ij Dressed H with Delta_ij
`h_u_0_mrcc <http://github.com/LCPQ/quantum_package/tree/master/src/MRCC/davidson.irp.f#L355>`_ `h_u_0_mrcc <http://github.com/LCPQ/quantum_package/tree/master/src/MRCC/davidson.irp.f#L360>`_
Computes v_0 = H|u_0> Computes v_0 = H|u_0>
.br .br
n : number of determinants n : number of determinants

View File

@ -35,11 +35,16 @@ subroutine davidson_diag_mrcc(dets_in,u_in,energies,dim_in,sze,N_st,Nint,iunit,i
allocate(H_jj(sze)) allocate(H_jj(sze))
!$OMP PARALLEL DEFAULT(NONE) & !$OMP PARALLEL DEFAULT(NONE) &
!$OMP SHARED(sze,H_jj,dets_in,Nint,istate,delta_ij) & !$OMP SHARED(sze,H_jj,N_det_cas,dets_in,Nint,istate,delta_ii,idx_cas) &
!$OMP PRIVATE(i) !$OMP PRIVATE(i)
!$OMP DO SCHEDULE(guided) !$OMP DO SCHEDULE(guided)
do i=1,sze do i=1,sze
H_jj(i) = diag_h_mat_elem(dets_in(1,1,i),Nint) + delta_ij(i,i,istate) H_jj(i) = diag_h_mat_elem(dets_in(1,1,i),Nint)
enddo
!$OMP END DO
!$OMP DO SCHEDULE(guided)
do i=1,N_det_cas
H_jj(idx_cas(i)) += delta_ii(i,istate)
enddo enddo
!$OMP END DO !$OMP END DO
!$OMP END PARALLEL !$OMP END PARALLEL
@ -370,7 +375,7 @@ subroutine H_u_0_mrcc(v_0,u_0,H_jj,n,keys_tmp,Nint,istate)
integer, allocatable :: idx(:) integer, allocatable :: idx(:)
double precision :: hij double precision :: hij
double precision, allocatable :: vt(:) double precision, allocatable :: vt(:)
integer :: i,j,k,l, jj integer :: i,j,k,l, jj,ii
integer :: i0, j0 integer :: i0, j0
ASSERT (Nint > 0) ASSERT (Nint > 0)
ASSERT (Nint == N_int) ASSERT (Nint == N_int)
@ -378,8 +383,8 @@ subroutine H_u_0_mrcc(v_0,u_0,H_jj,n,keys_tmp,Nint,istate)
PROVIDE ref_bitmask_energy delta_ij PROVIDE ref_bitmask_energy delta_ij
integer, parameter :: block_size = 157 integer, parameter :: block_size = 157
!$OMP PARALLEL DEFAULT(NONE) & !$OMP PARALLEL DEFAULT(NONE) &
!$OMP PRIVATE(i,hij,j,k,idx,jj,vt) & !$OMP PRIVATE(i,hij,j,k,idx,jj,ii,vt) &
!$OMP SHARED(n,H_jj,u_0,keys_tmp,Nint,v_0,istate,delta_ij) !$OMP SHARED(n_det_cas,n_det_non_cas,idx_cas,idx_non_cas,n,H_jj,u_0,keys_tmp,Nint,v_0,istate,delta_ij)
!$OMP DO SCHEDULE(static) !$OMP DO SCHEDULE(static)
do i=1,n do i=1,n
v_0(i) = H_jj(i) * u_0(i) v_0(i) = H_jj(i) * u_0(i)
@ -389,20 +394,30 @@ subroutine H_u_0_mrcc(v_0,u_0,H_jj,n,keys_tmp,Nint,istate)
Vt = 0.d0 Vt = 0.d0
!$OMP DO SCHEDULE(guided) !$OMP DO SCHEDULE(guided)
do i=1,n do i=1,n
! idx(0) = i idx(0) = i
! call filter_connected_davidson(keys_tmp,keys_tmp(1,1,i),Nint,i-1,idx) call filter_connected_davidson(keys_tmp,keys_tmp(1,1,i),Nint,i-1,idx)
! do jj=1,idx(0) do jj=1,idx(0)
! j = idx(jj) j = idx(jj)
! if ( (dabs(u_0(j)) > 1.d-7).or.((dabs(u_0(i)) > 1.d-7)) ) then ! if ( (dabs(u_0(j)) > 1.d-7).or.((dabs(u_0(i)) > 1.d-7)) ) then
do j = 1, i-1
call i_H_j(keys_tmp(1,1,j),keys_tmp(1,1,i),Nint,hij) call i_H_j(keys_tmp(1,1,j),keys_tmp(1,1,i),Nint,hij)
hij = hij + delta_ij(j,i,istate) hij = hij
vt (i) = vt (i) + hij*u_0(j) vt (i) = vt (i) + hij*u_0(j)
vt (j) = vt (j) + hij*u_0(i) vt (j) = vt (j) + hij*u_0(i)
! endif ! endif
enddo enddo
enddo enddo
!$OMP END DO !$OMP END DO
!$OMP DO SCHEDULE(guided)
do ii=1,n_det_cas
i = idx_cas(ii)
do jj = 1, n_det_non_cas
j = idx_non_cas(jj)
vt (i) = vt (i) + delta_ij(ii,jj,istate)*u_0(j)
vt (j) = vt (j) + delta_ij(ii,jj,istate)*u_0(i)
enddo
enddo
!$OMP END DO
!$OMP CRITICAL !$OMP CRITICAL
do i=1,n do i=1,n
v_0(i) = v_0(i) + vt(i) v_0(i) = v_0(i) + vt(i)

View File

@ -12,13 +12,14 @@ BEGIN_PROVIDER [ integer(omp_lock_kind), psi_cas_lock, (psi_det_size) ]
END_PROVIDER END_PROVIDER
subroutine mrcc_dress(delta_ij_,Ndet,i_generator,n_selected,det_buffer,Nint,iproc) subroutine mrcc_dress(delta_ij_, delta_ii_, Ndet_cas, Ndet_non_cas,i_generator,n_selected,det_buffer,Nint,iproc)
use bitmasks use bitmasks
implicit none implicit none
integer, intent(in) :: i_generator,n_selected, Nint, iproc integer, intent(in) :: i_generator,n_selected, Nint, iproc
integer, intent(in) :: Ndet integer, intent(in) :: Ndet_cas, Ndet_non_cas
double precision, intent(inout) :: delta_ij_(Ndet,Ndet,*) double precision, intent(inout) :: delta_ij_(Ndet_cas,Ndet_non_cas,*)
double precision, intent(inout) :: delta_ii_(Ndet_cas,*)
integer(bit_kind), intent(in) :: det_buffer(Nint,2,n_selected) integer(bit_kind), intent(in) :: det_buffer(Nint,2,n_selected)
integer :: i,j,k,l integer :: i,j,k,l
@ -42,7 +43,7 @@ subroutine mrcc_dress(delta_ij_,Ndet,i_generator,n_selected,det_buffer,Nint,ipro
call find_triples_and_quadruples(i_generator,n_selected,det_buffer,Nint,tq,N_tq) call find_triples_and_quadruples(i_generator,n_selected,det_buffer,Nint,tq,N_tq)
allocate (dIa_hla(N_states,Ndet)) allocate (dIa_hla(N_states,Ndet_non_cas))
! |I> ! |I>
@ -136,12 +137,11 @@ subroutine mrcc_dress(delta_ij_,Ndet,i_generator,n_selected,det_buffer,Nint,ipro
do l_sd=1,idx_alpha(0) do l_sd=1,idx_alpha(0)
k_sd = idx_alpha(l_sd) k_sd = idx_alpha(l_sd)
do i_state=1,N_states do i_state=1,N_states
delta_ij_(idx_non_cas(k_sd),idx_cas(i_I),i_state) += dIa_hla(i_state,k_sd) delta_ij_(i_I,k_sd,i_state) += dIa_hla(i_state,k_sd)
delta_ij_(idx_cas(i_I),idx_non_cas(k_sd),i_state) += dIa_hla(i_state,k_sd)
if(dabs(psi_cas_coef(i_I,i_state)).ge.5.d-5)then if(dabs(psi_cas_coef(i_I,i_state)).ge.5.d-5)then
delta_ij_(idx_cas(i_I),idx_cas(i_I),i_state) -= dIa_hla(i_state,k_sd) * ci_inv(i_state) * psi_non_cas_coef(k_sd,i_state) delta_ii_(i_I,i_state) -= dIa_hla(i_state,k_sd) * ci_inv(i_state) * psi_non_cas_coef(k_sd,i_state)
else else
delta_ij_(idx_cas(i_I),idx_cas(i_I),i_state) = 0.d0 delta_ii_(i_I,i_state) = 0.d0
endif endif
enddo enddo
enddo enddo

View File

@ -7,17 +7,16 @@
integer :: i,k integer :: i,k
double precision :: ihpsi(N_states), hii double precision :: ihpsi(N_states), hii
do i=1,N_det_non_cas do i=1,N_det_non_cas
call i_h_psi(psi_non_cas(1,1,i), psi_cas, psi_cas_coef, N_int, N_det_cas, & call i_h_psi(psi_non_cas(1,1,i), psi_cas, psi_cas_coef, N_int, N_det_cas,&
size(psi_cas_coef,1), n_states, ihpsi) size(psi_cas_coef,1), n_states, ihpsi)
call i_h_j(psi_non_cas(1,1,i),psi_non_cas(1,1,i),N_int,hii) call i_h_j(psi_non_cas(1,1,i),psi_non_cas(1,1,i),N_int,hii)
do k=1,N_states do k=1,N_states
lambda_pert(k,i) = 1.d0 / (psi_cas_energy_diagonalized(k)-hii) lambda_pert(k,i) = 1.d0 / (psi_cas_energy_diagonalized(k)-hii)
lambda_mrcc(k,i) = psi_non_cas_coef(i,k)/ihpsi(k)
if (dabs(ihpsi(k)).le.1.d-3) then if (dabs(ihpsi(k)).le.1.d-3) then
lambda_mrcc(k,i) = 1.d0 / (psi_cas_energy_diagonalized(k)-hii) lambda_mrcc(k,i) = lambda_pert(k,i)
cycle else
lambda_mrcc(k,i) = psi_non_cas_coef(i,k)/ihpsi(k)
endif endif
enddo enddo
enddo enddo
@ -27,66 +26,49 @@ END_PROVIDER
!BEGIN_PROVIDER [ double precision, delta_ij_non_cas, (N_det_non_cas, N_det_non_cas,N_states) ]
!implicit none
!BEGIN_DOC
!! Dressing matrix in SD basis
!END_DOC
!delta_ij_non_cas = 0.d0
!call H_apply_mrcc_simple(delta_ij_non_cas,N_det_non_cas)
!END_PROVIDER
BEGIN_PROVIDER [ character*(32), dressing_type ] BEGIN_PROVIDER [ double precision, delta_ij, (N_det_cas,N_det_non_cas,N_states) ]
implicit none &BEGIN_PROVIDER [ double precision, delta_ii, (N_det_cas,N_states) ]
BEGIN_DOC
! [ Simple | MRCC ]
END_DOC
dressing_type = "MRCC"
END_PROVIDER
BEGIN_PROVIDER [ double precision, delta_ij_non_cas, (N_det_non_cas, N_det_non_cas,N_states) ]
implicit none
BEGIN_DOC
! Dressing matrix in SD basis
END_DOC
delta_ij_non_cas = 0.d0
call H_apply_mrcc_simple(delta_ij_non_cas,N_det_non_cas)
END_PROVIDER
BEGIN_PROVIDER [ double precision, delta_ij, (N_det,N_det,N_states) ]
implicit none implicit none
BEGIN_DOC BEGIN_DOC
! Dressing matrix in N_det basis ! Dressing matrix in N_det basis
END_DOC END_DOC
integer :: i,j,m integer :: i,j,m
delta_ij = 0.d0 delta_ij = 0.d0
if (dressing_type == "MRCC") then delta_ii = 0.d0
call H_apply_mrcc(delta_ij,N_det) call H_apply_mrcc(delta_ij,delta_ii,N_det_cas,N_det_non_cas)
else if (dressing_type == "Simple") then
do m=1,N_states
do j=1,N_det_non_cas
do i=1,N_det_non_cas
delta_ij(idx_non_cas(i),idx_non_cas(j),m) = delta_ij_non_cas(i,j,m)
enddo
enddo
enddo
endif
do i = 1, N_det
do j = 1, N_det
do m = 1, N_states
if(isnan(delta_ij(j,i,m)))then
delta_ij(j,i,m) = 0.d0
endif
enddo
enddo
enddo
END_PROVIDER END_PROVIDER
BEGIN_PROVIDER [ double precision, h_matrix_dressed, (N_det,N_det) ] BEGIN_PROVIDER [ double precision, h_matrix_dressed, (N_det,N_det,N_states) ]
implicit none implicit none
BEGIN_DOC BEGIN_DOC
! Dressed H with Delta_ij ! Dressed H with Delta_ij
END_DOC END_DOC
integer :: i, j integer :: i, j,istate,ii,jj
do istate = 1,N_states
do j=1,N_det do j=1,N_det
do i=1,N_det do i=1,N_det
h_matrix_dressed(i,j) = h_matrix_all_dets(i,j) + delta_ij(i,j,1) h_matrix_dressed(i,j,istate) = h_matrix_all_dets(i,j)
enddo
enddo
do ii = 1, N_det_cas
i =idx_cas(ii)
h_matrix_dressed(i,i,istate) += delta_ii(ii,istate)
do jj = 1, N_det_non_cas
j =idx_cas(jj)
h_matrix_dressed(i,j,istate) += delta_ij(ii,jj,istate)
h_matrix_dressed(j,i,istate) += delta_ij(ii,jj,istate)
enddo
enddo enddo
enddo enddo
END_PROVIDER END_PROVIDER
@ -109,7 +91,7 @@ END_PROVIDER
integer :: istate integer :: istate
istate = 1 istate = 1
call davidson_diag_mrcc(psi_det,CI_eigenvectors_dressed,CI_electronic_energy_dressed, & call davidson_diag_mrcc(psi_det,CI_eigenvectors_dressed,CI_electronic_energy_dressed,&
size(CI_eigenvectors_dressed,1),N_det,N_states_diag,N_int,output_determinants,istate) size(CI_eigenvectors_dressed,1),N_det,N_states_diag,N_int,output_determinants,istate)
else if (diag_algorithm == "Lapack") then else if (diag_algorithm == "Lapack") then

Binary file not shown.

Before

Width:  |  Height:  |  Size: 104 KiB

After

Width:  |  Height:  |  Size: 111 KiB

View File

@ -1,4 +1,4 @@
# Automatically created by /home/razoa/quantum_package/scripts/module/module_handler.py # Automatically created by /home/giner/quantum_package/scripts/module/module_handler.py
IRPF90_temp IRPF90_temp
IRPF90_man IRPF90_man
irpf90_entities irpf90_entities

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 31 KiB

View File

@ -356,7 +356,7 @@ Needed Modules
.. Do not edit this section. It was auto-generated from the .. Do not edit this section. It was auto-generated from the
.. by the `update_README.py` script. .. by the `update_README.py` script.
.. image:: tree_dependency.pdf .. image:: tree_dependency.png
* `Properties <http://github.com/LCPQ/quantum_package/tree/master/src/Properties>`_ * `Properties <http://github.com/LCPQ/quantum_package/tree/master/src/Properties>`_
* `Hartree_Fock <http://github.com/LCPQ/quantum_package/tree/master/src/Hartree_Fock>`_ * `Hartree_Fock <http://github.com/LCPQ/quantum_package/tree/master/src/Hartree_Fock>`_

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 KiB

View File

@ -148,7 +148,7 @@ Needed Modules
.. Do not edit this section. It was auto-generated from the .. Do not edit this section. It was auto-generated from the
.. by the `update_README.py` script. .. by the `update_README.py` script.
.. image:: tree_dependency.pdf .. image:: tree_dependency.png
* `Determinants <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants>`_ * `Determinants <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants>`_

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

View File

@ -1,23 +1,23 @@
# Automatically created by /home/razoa/quantum_package/scripts/module/module_handler.py # Automatically created by $QP_ROOT/scripts/module/module_handler.py
IRPF90_temp
IRPF90_man
irpf90_entities
tags
irpf90.make
Makefile
Makefile.depend
.ninja_log
.ninja_deps .ninja_deps
ezfio_interface.irp.f .ninja_log
Ezfio_files AO_Basis
Bitmask
Determinants Determinants
Electrons
Ezfio_files
IRPF90_man
IRPF90_temp
Integrals_Bielec
Integrals_Monoelec Integrals_Monoelec
MO_Basis MO_Basis
Utils Makefile
Pseudo Makefile.depend
Bitmask
AO_Basis
Electrons
Nuclei Nuclei
Integrals_Bielec Pseudo
Utils
ezfio_interface.irp.f
irpf90.make
irpf90_entities
save_for_qmcchem save_for_qmcchem
tags

View File

@ -181,7 +181,7 @@ Needed Modules
.. Do not edit this section. It was auto-generated from the .. Do not edit this section. It was auto-generated from the
.. by the `update_README.py` script. .. by the `update_README.py` script.
.. image:: tree_dependency.pdf .. image:: tree_dependency.png
* `Determinants <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants>`_ * `Determinants <http://github.com/LCPQ/quantum_package/tree/master/src/Determinants>`_
* `Hartree_Fock <http://github.com/LCPQ/quantum_package/tree/master/src/Hartree_Fock>`_ * `Hartree_Fock <http://github.com/LCPQ/quantum_package/tree/master/src/Hartree_Fock>`_

Binary file not shown.

After

Width:  |  Height:  |  Size: 82 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

View File

@ -1,18 +1,18 @@
# Automatically created by /home/razoa/quantum_package/scripts/module/module_handler.py # Automatically created by $QP_ROOT/scripts/module/module_handler.py
IRPF90_temp
IRPF90_man
irpf90_entities
tags
irpf90.make
Makefile
Makefile.depend
.ninja_log
.ninja_deps .ninja_deps
ezfio_interface.irp.f .ninja_log
Ezfio_files
MO_Basis
Utils
AO_Basis AO_Basis
Electrons Electrons
Ezfio_files
IRPF90_man
IRPF90_temp
MO_Basis
Makefile
Makefile.depend
Nuclei Nuclei
Utils
ezfio_interface.irp.f
irpf90.make
irpf90_entities
loc_cele loc_cele
tags

View File

@ -29,6 +29,16 @@ Error:
""" % f """ % f
sys.exit(1) sys.exit(1)
# __
# /__ | _ |_ _. | _. ._ o _. |_ | _ _
# \_| | (_) |_) (_| | \/ (_| | | (_| |_) | (/_ _>
#
from qp_path import QP_ROOT, QP_SRC, QP_EZFIO
EZFIO_LIB = join(QP_ROOT, "lib", "libezfio.a")
ROOT_BUILD_NINJA = join(QP_ROOT, "config", "build.ninja")
header = r"""# header = r"""#
# _______ _____ # _______ _____
# __ __ \___ _______ _________ /____ ________ ___ # __ __ \___ _______ _________ /____ ________ ___
@ -48,17 +58,8 @@ header = r"""#
# Generated automatically by {0} # Generated automatically by {0}
# #
# #
""".format(__file__) """.format(__file__).replace(QP_ROOT,"$QP_ROOT")
# __
# /__ | _ |_ _. | _. ._ o _. |_ | _ _
# \_| | (_) |_) (_| | \/ (_| | | (_| |_) | (/_ _>
#
from qp_path import QP_ROOT, QP_SRC, QP_EZFIO
EZFIO_LIB = join(QP_ROOT, "lib", "libezfio.a")
ROOT_BUILD_NINJA = join(QP_ROOT, "config", "build.ninja")
# #
# |\ | _. ._ _ _ _| _|_ ._ | _ # |\ | _. ._ _ _ _| _|_ ._ | _
@ -896,10 +897,10 @@ if __name__ == "__main__":
"Is intolerable !", "Is intolerable !",
"You need a main file:", "You need a main file:",
"- Create it in {0}", "- Create it in {0}",
"- Or delete {0} `qp_install_module.py uninstall {0}`" "- Or delete {0} `qp_install_module.py uninstall {0}`",
"- Or install a module who need {0} with a main "] "- Or install a module who need {0} with a main "]
print "\n".join(l_msg).format(module) print "\n".join(l_msg).format(module.rel)
sys.exit(1) sys.exit(1)
# ~#~#~#~#~#~#~#~#~#~#~#~ # # ~#~#~#~#~#~#~#~#~#~#~#~ #

View File

@ -21,15 +21,15 @@ function do_gitingore()
# Do not modify this file. Add your ignored files to the gitignore # Do not modify this file. Add your ignored files to the gitignore
# (without the dot at the beginning) file. # (without the dot at the beginning) file.
# #
IRPF90_temp
IRPF90_man
irpf90.make
tags
Makefile.depend
irpf90_entities
build.ninja build.ninja
.ninja_log irpf90_entities
irpf90.make
IRPF90_man
IRPF90_temp
Makefile.depend
.ninja_deps .ninja_deps
.ninja_log
tags
EOF EOF
if [[ -f gitignore ]] if [[ -f gitignore ]]
@ -59,3 +59,6 @@ else
done done
fi fi
# Sort the .gitignore to reduce conflict in git merges
sort .gitignore |uniq > .gitignore.new
mv .gitignore.new .gitignore

View File

@ -24,6 +24,7 @@ import shutil
try: try:
from docopt import docopt from docopt import docopt
from qp_path import QP_SRC from qp_path import QP_SRC
from qp_path import QP_ROOT
except ImportError: except ImportError:
print "source .quantum_package.rc" print "source .quantum_package.rc"
raise raise
@ -284,5 +285,8 @@ if __name__ == '__main__':
path = os.path.join(module_abs, ".gitignore") path = os.path.join(module_abs, ".gitignore")
with open(path, "w+") as f: with open(path, "w+") as f:
f.write("# Automatically created by {0} \n".format(__file__)) f.write("# Automatically created by {0} \n".format(__file__).replace(QP_ROOT,"$QP_ROOT"))
f.write("\n".join(l_dir + l_file + l_symlink + l_exe)) l_text = l_dir + l_file + l_symlink + l_exe
l_text.sort()
f.write("\n".join(l_text))

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

After

Width:  |  Height:  |  Size: 32 KiB

View File

@ -1,28 +1,28 @@
# Automatically created by /home/razoa/quantum_package/scripts/module/module_handler.py # Automatically created by $QP_ROOT/scripts/module/module_handler.py
IRPF90_temp
IRPF90_man
irpf90_entities
tags
irpf90.make
Makefile
Makefile.depend
.ninja_log
.ninja_deps .ninja_deps
ezfio_interface.irp.f .ninja_log
AO_Basis
Bitmask
Electrons
Ezfio_files Ezfio_files
IRPF90_man
IRPF90_temp
Integrals_Bielec
Integrals_Monoelec Integrals_Monoelec
MO_Basis MO_Basis
Utils Makefile
Pseudo Makefile.depend
Bitmask
AO_Basis
Electrons
Nuclei Nuclei
Integrals_Bielec Pseudo
guess_triplet Utils
guess_singlet
truncate_wf
save_natorb
program_initial_determinants
det_svd det_svd
ezfio_interface.irp.f
guess_doublet guess_doublet
guess_singlet
guess_triplet
irpf90.make
irpf90_entities
program_initial_determinants
save_natorb
tags
truncate_wf

Binary file not shown.

Before

Width:  |  Height:  |  Size: 59 KiB

After

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.7 KiB

After

Width:  |  Height:  |  Size: 8.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 43 KiB

After

Width:  |  Height:  |  Size: 46 KiB

View File

@ -1,20 +1,20 @@
# Automatically created by /home/razoa/quantum_package/scripts/module/module_handler.py # Automatically created by $QP_ROOT/scripts/module/module_handler.py
IRPF90_temp
IRPF90_man
irpf90_entities
tags
irpf90.make
Makefile
Makefile.depend
.ninja_log
.ninja_deps .ninja_deps
ezfio_interface.irp.f .ninja_log
Ezfio_files
MO_Basis
Utils
Pseudo
AO_Basis AO_Basis
Electrons Electrons
Ezfio_files
IRPF90_man
IRPF90_temp
MO_Basis
Makefile
Makefile.depend
Nuclei Nuclei
Pseudo
Utils
check_orthonormality check_orthonormality
ezfio_interface.irp.f
irpf90.make
irpf90_entities
save_ortho_mos save_ortho_mos
tags

View File

@ -728,23 +728,30 @@ double precision int_prod_bessel_loc,binom_func,accu,prod,ylm,bigI,arg
accu=accu+v_k(k)*crochet(n_k(k)+2+ntot,g_a+g_b+dz_k(k)) accu=accu+v_k(k)*crochet(n_k(k)+2+ntot,g_a+g_b+dz_k(k))
enddo enddo
Vloc=accu*fourpi*bigI(0,0,0,0,n_a(1)+n_b(1),n_a(2)+n_b(2),n_a(3)+n_b(3)) Vloc=accu*fourpi*bigI(0,0,0,0,n_a(1)+n_b(1),n_a(2)+n_b(2),n_a(3)+n_b(3))
!bigI frequantly is null !bigI frequently is null
return return
endif endif
freal=dexp(-g_a*ac**2-g_b*bc**2) freal=dexp(-g_a*ac**2-g_b*bc**2)
d2=0.d0 d2 = 0.d0
do i=1,3 do i=1,3
d(i)=g_a*(a(i)-c(i))+g_b*(b(i)-c(i)) d(i)=g_a*(a(i)-c(i))+g_b*(b(i)-c(i))
d2=d2+d(i)**2 d2=d2+d(i)*d(i)
enddo enddo
d2=dsqrt(d2) d2=dsqrt(d2)
dreal=2.d0*d2 dreal=2.d0*d2
theta_DC0=dacos(d(3)/d2) theta_DC0=dacos(d(3)/d2)
phi_DC0=datan2(d(2)/d2,d(1)/d2) phi_DC0=datan2(d(2)/d2,d(1)/d2)
if (isnan(theta_DC0).or.isnan(phi_DC0)) then
print *, 'NaN in /src/Integrals_Monoelec/pseudopot.f90 at line 449.'
print *, 'Try to break symmetry in your molecule (1.-16 is OK).'
stop 1
endif
allocate (array_R_loc(-2:ntot_max+klocmax_max,klocmax_max,0:ntot_max)) allocate (array_R_loc(-2:ntot_max+klocmax_max,klocmax_max,0:ntot_max))
allocate (array_coefs(0:ntot_max,0:ntot_max,0:ntot_max,0:ntot_max,0:ntot_max,0:ntot_max)) allocate (array_coefs(0:ntot_max,0:ntot_max,0:ntot_max,0:ntot_max,0:ntot_max,0:ntot_max))

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

After

Width:  |  Height:  |  Size: 41 KiB

View File

@ -1,20 +1,20 @@
# Automatically created by /home/razoa/quantum_package/scripts/module/module_handler.py # Automatically created by $QP_ROOT/scripts/module/module_handler.py
IRPF90_temp
IRPF90_man
irpf90_entities
tags
irpf90.make
Makefile
Makefile.depend
.ninja_log
.ninja_deps .ninja_deps
ezfio_interface.irp.f .ninja_log
Ezfio_files
Integrals_Monoelec
MO_Basis
Utils
Pseudo
AO_Basis AO_Basis
Electrons Electrons
Nuclei Ezfio_files
H_CORE_guess H_CORE_guess
IRPF90_man
IRPF90_temp
Integrals_Monoelec
MO_Basis
Makefile
Makefile.depend
Nuclei
Pseudo
Utils
ezfio_interface.irp.f
irpf90.make
irpf90_entities
tags

Binary file not shown.

Before

Width:  |  Height:  |  Size: 44 KiB

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 2.7 KiB