9
1
mirror of https://github.com/QuantumPackage/qp2.git synced 2024-12-22 03:23:29 +01:00

Merge branch 'dev' of github.com:QuantumPackage/qp2 into dev

This commit is contained in:
Anthony Scemama 2021-05-30 22:34:47 +02:00
commit 9a3bd2b278
10 changed files with 76 additions and 26 deletions

View File

@ -52,6 +52,8 @@
- Added ~print_hamiltonian~ - Added ~print_hamiltonian~
- Added input for two body RDM - Added input for two body RDM
- Added keyword ~save_wf_after_selection~ - Added keyword ~save_wf_after_selection~
- Added a ~restore_symm~ flag to enforce the restoration of
symmetry in matrices
*** Code *** Code
@ -75,7 +77,7 @@
- Added ~V_ne_psi_energy~ - Added ~V_ne_psi_energy~
- Added ~h_core_guess~ routine - Added ~h_core_guess~ routine
- Fixed Laplacians in real space (indices) - Fixed Laplacians in real space (indices)
- - Added LIB file to add extra libs in plugin
ao_one_e_integral_zero ao_one_e_integral_zero
banned_excitations banned_excitations

View File

@ -99,7 +99,9 @@ function find_libs () {
} }
function find_exec () { function find_exec () {
find ${QP_ROOT}/$1 -perm /u+x -type f for i in $@ ; do
find ${QP_ROOT}/$i -perm /u+x -type f
done
} }
@ -119,7 +121,7 @@ fi
echo "Copying binary files" echo "Copying binary files"
# -------------------- # --------------------
FORTRAN_EXEC=$(find_exec src) FORTRAN_EXEC=$(find_exec src/*/)
if [[ -z $FORTRAN_EXEC ]] ; then if [[ -z $FORTRAN_EXEC ]] ; then
error 'No Fortran binaries found.' error 'No Fortran binaries found.'
exit 1 exit 1

View File

@ -19,4 +19,3 @@
# export QP_NIC=lo # export QP_NIC=lo
# export QP_NIC=ib0 # export QP_NIC=ib0

2
external/irpf90 vendored

@ -1 +1 @@
Subproject commit 132a4a1661c9878d21dcbf0ac14f7fe9a3b110d0 Subproject commit 33ca5e1018f3bbb5e695e6ee558f5dac0753b271

View File

@ -108,6 +108,17 @@ def ninja_create_env_variable(pwd_config_file):
lib_usr = get_compilation_option(pwd_config_file, "LIB") lib_usr = get_compilation_option(pwd_config_file, "LIB")
str_lib = " ".join([lib_lapack, EZFIO_LIB, ZMQ_LIB, LIB, lib_usr]) str_lib = " ".join([lib_lapack, EZFIO_LIB, ZMQ_LIB, LIB, lib_usr])
# Read all LIB files in modules
libfile = "LIB"
try:
content = ""
with open(libfile,'r') as f:
content = f.read()
str_lib += " "+content
except IOError:
pass
l_string.append("LIB = {0} ".format(str_lib)) l_string.append("LIB = {0} ".format(str_lib))
l_string.append("") l_string.append("")

View File

@ -82,6 +82,8 @@ END_PROVIDER
mpi_correspondance = {"integer": "MPI_INTEGER", mpi_correspondance = {"integer": "MPI_INTEGER",
"integer*8": "MPI_INTEGER8", "integer*8": "MPI_INTEGER8",
"character*(32)": "MPI_CHARACTER", "character*(32)": "MPI_CHARACTER",
"character*(64)": "MPI_CHARACTER",
"character*(256)": "MPI_CHARACTER",
"logical": "MPI_LOGICAL", "logical": "MPI_LOGICAL",
"double precision": "MPI_DOUBLE_PRECISION"} "double precision": "MPI_DOUBLE_PRECISION"}

View File

@ -47,10 +47,3 @@ type: Disk_access
doc: Read/Write |MO| one-electron integrals from/to disk [ Write | Read | None ] doc: Read/Write |MO| one-electron integrals from/to disk [ Write | Read | None ]
interface: ezfio,provider,ocaml interface: ezfio,provider,ocaml
default: None default: None
[restore_symm]
type: logical
doc: If true, try to find symmetry in the MO coefficient matrices
interface: ezfio,provider,ocaml
default: True

View File

@ -26,3 +26,43 @@ BEGIN_PROVIDER [double precision, mo_pseudo_integrals, (mo_num,mo_num)]
END_PROVIDER END_PROVIDER
BEGIN_PROVIDER [double precision, mo_pseudo_integrals_local, (mo_num,mo_num)]
implicit none
BEGIN_DOC
! Pseudopotential integrals in |MO| basis
END_DOC
if (do_pseudo) then
call ao_to_mo( &
ao_pseudo_integrals_local, &
size(ao_pseudo_integrals_local,1), &
mo_pseudo_integrals_local, &
size(mo_pseudo_integrals_local,1) &
)
else
mo_pseudo_integrals_local = 0.d0
endif
END_PROVIDER
BEGIN_PROVIDER [double precision, mo_pseudo_integrals_non_local, (mo_num,mo_num)]
implicit none
BEGIN_DOC
! Pseudopotential integrals in |MO| basis
END_DOC
if (do_pseudo) then
call ao_to_mo( &
ao_pseudo_integrals_non_local, &
size(ao_pseudo_integrals_non_local,1), &
mo_pseudo_integrals_non_local, &
size(mo_pseudo_integrals_non_local,1) &
)
else
mo_pseudo_integrals_non_local = 0.d0
endif
END_PROVIDER

View File

@ -5,18 +5,14 @@ BEGIN_PROVIDER [double precision, two_e_dm_mo, (mo_num,mo_num,mo_num,mo_num)]
! !
! <Psi| a^{\dagger}_{i \beta} a^{\dagger}_{j \beta} a_{l \beta} a_{k \beta} |Psi> ! <Psi| a^{\dagger}_{i \beta} a^{\dagger}_{j \beta} a_{l \beta} a_{k \beta} |Psi>
! !
! WHERE ALL ORBITALS (i,j,k,l) BELONGS TO ALL OCCUPIED ORBITALS : core, inactive and active ! where the indices (i,j,k,l) belong to all MOs.
! !
! THE NORMALIZATION (i.e. sum of diagonal elements) IS SET TO N_{elec} * (N_{elec} - 1)/2 ! The normalization (i.e. sum of diagonal elements) is set to $N_{elec} * (N_{elec} - 1)/2$
! !
! !!!!! WARNING !!!!! ALL SLATER DETERMINANTS IN PSI_DET MUST BELONG TO AN ACTIVE SPACE DEFINED BY "list_act" ! !!!!! WARNING !!!!! IF "no_core_density" then all elements involving at least one CORE MO are set to zero
! The state-averaged two-electron energy :
! !
! !!!!! WARNING !!!!! IF "no_core_density" then all elements involving at least one CORE MO is set to zero ! \sum_{i,j,k,l = 1, mo_num} two_e_dm_mo(i,j,k,l) * < ii jj | kk ll >
! The two-electron energy of each state can be computed as:
!
! \sum_{i,j,k,l = 1, n_core_inact_act_orb} two_e_dm_mo(i,j,k,l,istate) * < ii jj | kk ll >
!
! with ii = list_core_inact_act(i), jj = list_core_inact_act(j), kk = list_core_inact_act(k), ll = list_core_inact_act(l)
END_DOC END_DOC
two_e_dm_mo = 0.d0 two_e_dm_mo = 0.d0
integer :: i,j,k,l,iorb,jorb,korb,lorb,istate integer :: i,j,k,l,iorb,jorb,korb,lorb,istate

5
src/utils/EZFIO.cfg Normal file
View File

@ -0,0 +1,5 @@
[restore_symm]
type: logical
doc: If true, try to find symmetry in the MO coefficient matrices
interface: ezfio,provider,ocaml
default: False