From d1383a487a4c83a4b97c4020cfb68af913bb9494 Mon Sep 17 00:00:00 2001 From: Anthony Scemama Date: Wed, 7 Jul 2021 17:08:15 +0200 Subject: [PATCH 1/7] Added pkgconfig variable --- etc/paths.rc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/etc/paths.rc b/etc/paths.rc index aff62f6e..84c2d12f 100644 --- a/etc/paths.rc +++ b/etc/paths.rc @@ -34,9 +34,9 @@ export PATH=$(qp_prepend_export "PATH" "${QP_PYTHON}":"${QP_ROOT}"/bin:"${QP_ROO export LD_LIBRARY_PATH=$(qp_prepend_export "LD_LIBRARY_PATH" "${QP_ROOT}"/lib) - export LIBRARY_PATH=$(qp_prepend_export "LIBRARY_PATH" "${QP_ROOT}"/lib:"${QP_ROOT}"/lib64) +export PKG_CONFIG_PATH=$(qp_prepend_export "PKG_CONFIG_PATH" "${QP_ROOT}"/lib/pkgconfig) export C_INCLUDE_PATH=$(qp_prepend_export "C_INCLUDE_PATH" "${QP_ROOT}"/include) export CPATH=$(qp_prepend_export "CPATH" "${QP_ROOT}"/include) From 8aa28ba22ab1134fce7787bf2046774ef80527d0 Mon Sep 17 00:00:00 2001 From: Anthony Scemama Date: Wed, 7 Jul 2021 17:08:48 +0200 Subject: [PATCH 2/7] Added CFLAGS --- etc/cflags.rc | 1 + 1 file changed, 1 insertion(+) create mode 100644 etc/cflags.rc diff --git a/etc/cflags.rc b/etc/cflags.rc new file mode 100644 index 00000000..89ab1d7f --- /dev/null +++ b/etc/cflags.rc @@ -0,0 +1 @@ +export CFLAGS="$CFLAGS --std=gnu99" From 81d0e9e5acc7432b25c9543ba6c6bae24d53a85a Mon Sep 17 00:00:00 2001 From: Anthony Scemama Date: Wed, 7 Jul 2021 17:44:15 +0200 Subject: [PATCH 3/7] Removing faketty in configure --- RELEASE_NOTES.org | 1 + configure | 6 +++--- external/qp2-dependencies | 2 +- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/RELEASE_NOTES.org b/RELEASE_NOTES.org index 1f746ec2..98830f3f 100644 --- a/RELEASE_NOTES.org +++ b/RELEASE_NOTES.org @@ -30,6 +30,7 @@ - Fixed bug in DIIS - Fixed bug in molden (Au -> Angs) - Fixed bug with non-contiguous MOs in active space and deleter MOs + - Complete network-free installation *** User interface diff --git a/configure b/configure index 328d335a..0debde04 100755 --- a/configure +++ b/configure @@ -242,9 +242,9 @@ EOF source "${QP_ROOT}"/quantum_package.rc cd "${QP_ROOT}"/external/ tar --gunzip --extract --file qp2-dependencies/ocaml-bundle_x86.tar.gz - echo "" | faketty ./ocaml-bundle/bootstrap.sh "${QP_ROOT}" - echo n | faketty ./ocaml-bundle/configure.sh "${QP_ROOT}" - echo "" | faketty ./ocaml-bundle/compile.sh "${QP_ROOT}" + echo "" | ./ocaml-bundle/bootstrap.sh "${QP_ROOT}" + ./ocaml-bundle/configure.sh "${QP_ROOT}" + echo "" | ./ocaml-bundle/compile.sh "${QP_ROOT}" EOF elif [[ ${PACKAGE} = bse ]] ; then diff --git a/external/qp2-dependencies b/external/qp2-dependencies index 0e1ca913..ae9397c3 160000 --- a/external/qp2-dependencies +++ b/external/qp2-dependencies @@ -1 +1 @@ -Subproject commit 0e1ca91313e4b6ba3ea042b6378c3ff483781fb1 +Subproject commit ae9397c3b4e689a487fdd4b1425af5f519d3ea82 From 36f628c45cac6c478ed2076693b06d2554b71b7c Mon Sep 17 00:00:00 2001 From: Anthony Scemama Date: Wed, 7 Jul 2021 18:47:28 +0200 Subject: [PATCH 4/7] Fix FPE in pseudo --- AUTHORS | 4 +++- src/ao_one_e_ints/pseudopot.f90 | 14 ++++---------- src/dav_general_mat/dav_general.irp.f | 2 +- 3 files changed, 8 insertions(+), 12 deletions(-) diff --git a/AUTHORS b/AUTHORS index 4e7cce4b..18d99e25 100644 --- a/AUTHORS +++ b/AUTHORS @@ -4,12 +4,14 @@ - Thomas Applencourt - Anouar Benali - Michel Caffarel +- Vijay Gopal Chilkuri +- Yann Damour - Grégoire David - Anthony Ferté - Yann Garniron - Kevin Gasperich -- Vijay Gopal Chilkuri - Emmanuel Giner +- Fabris Kossoski - Pierre-François Loos - Jean-Paul Malrieu - Julien Paquier diff --git a/src/ao_one_e_ints/pseudopot.f90 b/src/ao_one_e_ints/pseudopot.f90 index 29389cbe..141292d8 100644 --- a/src/ao_one_e_ints/pseudopot.f90 +++ b/src/ao_one_e_ints/pseudopot.f90 @@ -1869,21 +1869,16 @@ double precision function int_prod_bessel(l,gam,n,m,a,b,arg) qk = dble(q) two_qkmp1 = 2.d0*(qk+mk)+1.d0 do k=0,q-1 - ! possible FPE here. To be checked + if (s_q_k < 1.d-32) then + s_q_k = 0.d0 + exit + endif s_q_k = two_qkmp1*qk*inverses(k)*s_q_k -! if (s_q_k < 1.d-32) then -! s_q_k = 0.d0 -! exit -! endif sum=sum+s_q_k two_qkmp1 = two_qkmp1-2.d0 qk = qk-1.d0 enddo inverses(q) = a_over_b_square/(dble(q+n+q+n+3) * dble(q+1)) -! do k=0,q -! sum=sum+s_q_k -! s_q_k = a_over_b_square * ( dble(2*(q-k+m)+1)*dble(q-k)/(dble(2*(k+n)+3) * dble(k+1)) ) * s_q_k -! enddo int=int+sum @@ -1892,7 +1887,6 @@ double precision function int_prod_bessel(l,gam,n,m,a,b,arg) else !Compute the s_q+1_0 -! s_q_0=s_q_0*(2.d0*q+nlm+1)*b**2/((2.d0*(m+q)+3)*4.d0*(q+1)*gam) s_q_0=s_q_0*(q+q+nlm+1)*b*b/(dble(8*(m+q)+12)*(q+1)*gam) if(mod(n+m+l,2).eq.1)s_q_0=s_q_0*dsqrt(pi*.5d0) diff --git a/src/dav_general_mat/dav_general.irp.f b/src/dav_general_mat/dav_general.irp.f index 5ddc7fc0..aa4a2eb3 100644 --- a/src/dav_general_mat/dav_general.irp.f +++ b/src/dav_general_mat/dav_general.irp.f @@ -237,7 +237,7 @@ subroutine davidson_general(u_in,H_jj,energies,dim_in,sze,N_st,N_st_diag_in,conv call ortho_qr(U,size(U,1),sze,shift2) ! call H_S2_u_0_nstates_openmp(W(1,shift+1),U(1,shift+1),N_st_diag,sze) - call hpsi (W(1,shift+1),U(1,shift+1),N_st_diag,sze,h_mat) + call hpsi(W(1,shift+1),U(1,shift+1),N_st_diag,sze,h_mat) else ! Already computed in update below continue From 8f9b2b46e7cd20187124a5d7bd793872e21a8da5 Mon Sep 17 00:00:00 2001 From: Anthony Scemama Date: Wed, 28 Jul 2021 17:21:40 +0200 Subject: [PATCH 5/7] Dressing with Jastrow --- plugins/local/dmc_dress/EZFIO.cfg | 6 +++++ plugins/local/dmc_dress/NEED | 3 +++ plugins/local/dmc_dress/dmc_dress.irp.f | 19 +++++++++++++++ plugins/local/dmc_dress/dressing_vector.irp.f | 24 +++++++++++++++++++ 4 files changed, 52 insertions(+) create mode 100644 plugins/local/dmc_dress/EZFIO.cfg create mode 100644 plugins/local/dmc_dress/NEED create mode 100644 plugins/local/dmc_dress/dmc_dress.irp.f create mode 100644 plugins/local/dmc_dress/dressing_vector.irp.f diff --git a/plugins/local/dmc_dress/EZFIO.cfg b/plugins/local/dmc_dress/EZFIO.cfg new file mode 100644 index 00000000..88bc4ff3 --- /dev/null +++ b/plugins/local/dmc_dress/EZFIO.cfg @@ -0,0 +1,6 @@ +[dmc_delta_h] +type: double precision +doc: Dressing matrix obtained from DMC +size: (determinants.n_det) +interface: ezfio, provider + diff --git a/plugins/local/dmc_dress/NEED b/plugins/local/dmc_dress/NEED new file mode 100644 index 00000000..657d6cfd --- /dev/null +++ b/plugins/local/dmc_dress/NEED @@ -0,0 +1,3 @@ +selectors_full +generators_full +davidson_dressed diff --git a/plugins/local/dmc_dress/dmc_dress.irp.f b/plugins/local/dmc_dress/dmc_dress.irp.f new file mode 100644 index 00000000..f79b98bf --- /dev/null +++ b/plugins/local/dmc_dress/dmc_dress.irp.f @@ -0,0 +1,19 @@ +program diagonalize_h + implicit none + BEGIN_DOC +! Program that extracts the lowest states of the Hamiltonian dressed by the QMC +! dressing vector stored in :option:`dmc_dressing dmc_delta_h` +! + END_DOC + read_wf = .True. + touch read_wf + call routine + call save_wavefunction_general(N_det,N_states,psi_det_sorted,size(psi_coef_sorted,1),psi_coef_sorted) +end + +subroutine routine + implicit none + psi_coef(1:N_det,1) = ci_eigenvectors_dressed(1:N_det,1) + print*,'N_det = ',N_det + SOFT_TOUCH psi_coef +end diff --git a/plugins/local/dmc_dress/dressing_vector.irp.f b/plugins/local/dmc_dress/dressing_vector.irp.f new file mode 100644 index 00000000..9f799967 --- /dev/null +++ b/plugins/local/dmc_dress/dressing_vector.irp.f @@ -0,0 +1,24 @@ + BEGIN_PROVIDER [ double precision, dressing_column_h, (N_det,N_states) ] +&BEGIN_PROVIDER [ double precision, dressing_column_s, (N_det,N_states) ] + implicit none + BEGIN_DOC + ! \Delta_{state-specific}. \Psi + END_DOC + + integer :: i,ii,k,j, l + double precision :: f, tmp + double precision, external :: u_dot_v + logical, external :: detEq + + dressing_column_h(:,:) = 0.d0 + dressing_column_s(:,:) = 0.d0 + + l = dressed_column_idx(1) + do j = 1, n_det + dressing_column_h(j,1) = 0.5d0*dmc_delta_h(j) + dressing_column_h(l,1) -= 0.5d0 * psi_coef(j,1) * dmc_delta_h(j) /psi_coef(l,1) + enddo +END_PROVIDER + + + From f7181971aa42d92137db2734899722e79c3906e5 Mon Sep 17 00:00:00 2001 From: Anthony Scemama Date: Wed, 28 Jul 2021 17:51:28 +0200 Subject: [PATCH 6/7] Fixed wrong plugin location --- plugins/local/dmc_dress/EZFIO.cfg | 6 ----- plugins/local/dmc_dress/NEED | 3 --- plugins/local/dmc_dress/dmc_dress.irp.f | 19 --------------- plugins/local/dmc_dress/dressing_vector.irp.f | 24 ------------------- src/cipsi/NEED | 1 - src/davidson_dressed/diagonalize_ci.irp.f | 7 ++++-- src/fci/NEED | 1 + 7 files changed, 6 insertions(+), 55 deletions(-) delete mode 100644 plugins/local/dmc_dress/EZFIO.cfg delete mode 100644 plugins/local/dmc_dress/NEED delete mode 100644 plugins/local/dmc_dress/dmc_dress.irp.f delete mode 100644 plugins/local/dmc_dress/dressing_vector.irp.f diff --git a/plugins/local/dmc_dress/EZFIO.cfg b/plugins/local/dmc_dress/EZFIO.cfg deleted file mode 100644 index 88bc4ff3..00000000 --- a/plugins/local/dmc_dress/EZFIO.cfg +++ /dev/null @@ -1,6 +0,0 @@ -[dmc_delta_h] -type: double precision -doc: Dressing matrix obtained from DMC -size: (determinants.n_det) -interface: ezfio, provider - diff --git a/plugins/local/dmc_dress/NEED b/plugins/local/dmc_dress/NEED deleted file mode 100644 index 657d6cfd..00000000 --- a/plugins/local/dmc_dress/NEED +++ /dev/null @@ -1,3 +0,0 @@ -selectors_full -generators_full -davidson_dressed diff --git a/plugins/local/dmc_dress/dmc_dress.irp.f b/plugins/local/dmc_dress/dmc_dress.irp.f deleted file mode 100644 index f79b98bf..00000000 --- a/plugins/local/dmc_dress/dmc_dress.irp.f +++ /dev/null @@ -1,19 +0,0 @@ -program diagonalize_h - implicit none - BEGIN_DOC -! Program that extracts the lowest states of the Hamiltonian dressed by the QMC -! dressing vector stored in :option:`dmc_dressing dmc_delta_h` -! - END_DOC - read_wf = .True. - touch read_wf - call routine - call save_wavefunction_general(N_det,N_states,psi_det_sorted,size(psi_coef_sorted,1),psi_coef_sorted) -end - -subroutine routine - implicit none - psi_coef(1:N_det,1) = ci_eigenvectors_dressed(1:N_det,1) - print*,'N_det = ',N_det - SOFT_TOUCH psi_coef -end diff --git a/plugins/local/dmc_dress/dressing_vector.irp.f b/plugins/local/dmc_dress/dressing_vector.irp.f deleted file mode 100644 index 9f799967..00000000 --- a/plugins/local/dmc_dress/dressing_vector.irp.f +++ /dev/null @@ -1,24 +0,0 @@ - BEGIN_PROVIDER [ double precision, dressing_column_h, (N_det,N_states) ] -&BEGIN_PROVIDER [ double precision, dressing_column_s, (N_det,N_states) ] - implicit none - BEGIN_DOC - ! \Delta_{state-specific}. \Psi - END_DOC - - integer :: i,ii,k,j, l - double precision :: f, tmp - double precision, external :: u_dot_v - logical, external :: detEq - - dressing_column_h(:,:) = 0.d0 - dressing_column_s(:,:) = 0.d0 - - l = dressed_column_idx(1) - do j = 1, n_det - dressing_column_h(j,1) = 0.5d0*dmc_delta_h(j) - dressing_column_h(l,1) -= 0.5d0 * psi_coef(j,1) * dmc_delta_h(j) /psi_coef(l,1) - enddo -END_PROVIDER - - - diff --git a/src/cipsi/NEED b/src/cipsi/NEED index 6c14b4b6..bfbc559a 100644 --- a/src/cipsi/NEED +++ b/src/cipsi/NEED @@ -1,7 +1,6 @@ perturbation zmq mpi -davidson_undressed iterations two_body_rdm csf diff --git a/src/davidson_dressed/diagonalize_ci.irp.f b/src/davidson_dressed/diagonalize_ci.irp.f index e89c1730..7619532a 100644 --- a/src/davidson_dressed/diagonalize_ci.irp.f +++ b/src/davidson_dressed/diagonalize_ci.irp.f @@ -60,9 +60,11 @@ END_PROVIDER CI_eigenvectors_dressed(i,j) = psi_coef(i,j) enddo enddo + logical :: converged + converged = .False. call davidson_diag_HS2(psi_det,CI_eigenvectors_dressed, CI_eigenvectors_s2_dressed,& size(CI_eigenvectors_dressed,1), CI_electronic_energy_dressed,& - N_det,min(N_det,N_states),min(N_det,N_states_diag),N_int,1) + N_det,min(N_det,N_states),min(N_det,N_states_diag),N_int,1,converged) else if (diag_algorithm == "Lapack") then @@ -156,7 +158,8 @@ subroutine diagonalize_CI_dressed ! eigenstates of the CI matrix END_DOC integer :: i,j - PROVIDE delta_ij +! PROVIDE delta_ij + PROVIDE dressing_column_h do j=1,N_states do i=1,N_det psi_coef(i,j) = CI_eigenvectors_dressed(i,j) diff --git a/src/fci/NEED b/src/fci/NEED index f096d7ef..a952e6eb 100644 --- a/src/fci/NEED +++ b/src/fci/NEED @@ -1,3 +1,4 @@ cipsi +davidson_undressed selectors_full generators_full From e578d642c8420880a9e87831b02d0fb27f81e5b6 Mon Sep 17 00:00:00 2001 From: Anthony Scemama Date: Sat, 31 Jul 2021 16:22:33 +0200 Subject: [PATCH 7/7] Comments --- src/dressing/dressing_vector.irp.f | 1 + 1 file changed, 1 insertion(+) diff --git a/src/dressing/dressing_vector.irp.f b/src/dressing/dressing_vector.irp.f index 2c1bd2f9..1643deeb 100644 --- a/src/dressing/dressing_vector.irp.f +++ b/src/dressing/dressing_vector.irp.f @@ -3,6 +3,7 @@ implicit none BEGIN_DOC ! \Delta_{state-specific}. \Psi + ! Diagonal element is divided by 2 because Delta = D + D^t END_DOC integer :: i,ii,k,j, l