diff --git a/ocaml/Input_determinants_by_hand.ml b/ocaml/Input_determinants_by_hand.ml index ab6fb2ca..e4c6ff2a 100644 --- a/ocaml/Input_determinants_by_hand.ml +++ b/ocaml/Input_determinants_by_hand.ml @@ -81,9 +81,6 @@ end = struct ;; let write_n_det n = - let n_det_old = - Ezfio.get_determinants_n_det () - in Det_number.to_int n |> Ezfio.set_determinants_n_det ;; diff --git a/src/davidson/print_e_components.irp.f b/src/davidson/print_e_components.irp.f new file mode 100644 index 00000000..ddf83474 --- /dev/null +++ b/src/davidson/print_e_components.irp.f @@ -0,0 +1,54 @@ +subroutine print_energy_components() + implicit none + BEGIN_DOC +! Prints the different components of the energy. + END_DOC + integer, save :: ifirst = 0 + double precision :: Vee, Ven, Vnn, Vecp, T, f + integer :: i,j,k + + Vnn = nuclear_repulsion + + print *, 'Energy components' + print *, '=================' + print *, '' + do k=1,N_states + + Ven = 0.d0 + Vecp = 0.d0 + T = 0.d0 + + do j=1,mo_num + do i=1,mo_num + f = one_e_dm_mo_alpha(i,j,k) + one_e_dm_mo_beta(i,j,k) + Ven = Ven + f * mo_integrals_n_e(i,j) + Vecp = Vecp + f * mo_pseudo_integrals(i,j) + T = T + f * mo_kinetic_integrals(i,j) + enddo + enddo + Vee = psi_energy(k) - Ven - Vecp - T + + if (ifirst == 0) then + ifirst = 1 + print *, 'Vnn : Nucleus-Nucleus potential energy' + print *, 'Ven : Electron-Nucleus potential energy' + print *, 'Vee : Electron-Electron potential energy' + print *, 'Vecp : Potential energy of the pseudo-potentials' + print *, 'T : Electronic kinetic energy' + print *, '' + endif + + print *, 'State ', k + print *, '---------' + print *, '' + print *, 'Vnn = ', Vnn + print *, 'Ven = ', Ven + print *, 'Vee = ', Vee + print *, 'Vecp = ', Vecp + print *, 'T = ', T + print *, '' + enddo + + print *, '' + +end diff --git a/src/determinants/utils.irp.f b/src/determinants/utils.irp.f index 7e6ad39c..3aec16f9 100644 --- a/src/determinants/utils.irp.f +++ b/src/determinants/utils.irp.f @@ -43,57 +43,3 @@ BEGIN_PROVIDER [ double precision, S2_matrix_all_dets,(N_det,N_det) ] !$OMP END PARALLEL DO END_PROVIDER -subroutine print_energy_components() - implicit none - BEGIN_DOC -! Prints the different components of the energy. - END_DOC - integer, save :: ifirst = 0 - double precision :: Vee, Ven, Vnn, Vecp, T, f - integer :: i,j,k - - Vnn = nuclear_repulsion - - print *, 'Energy components' - print *, '=================' - print *, '' - do k=1,N_states - - Ven = 0.d0 - Vecp = 0.d0 - T = 0.d0 - - do j=1,mo_num - do i=1,mo_num - f = one_e_dm_mo_alpha(i,j,k) + one_e_dm_mo_beta(i,j,k) - Ven = Ven + f * mo_integrals_n_e(i,j) - Vecp = Vecp + f * mo_pseudo_integrals(i,j) - T = T + f * mo_kinetic_integrals(i,j) - enddo - enddo - Vee = psi_energy(k) - Ven - Vecp - T - - if (ifirst == 0) then - ifirst = 1 - print *, 'Vnn : Nucleus-Nucleus potential energy' - print *, 'Ven : Electron-Nucleus potential energy' - print *, 'Vee : Electron-Electron potential energy' - print *, 'Vecp : Potential energy of the pseudo-potentials' - print *, 'T : Electronic kinetic energy' - print *, '' - endif - - print *, 'State ', k - print *, '---------' - print *, '' - print *, 'Vnn = ', Vnn - print *, 'Ven = ', Ven - print *, 'Vee = ', Vee - print *, 'Vecp = ', Vecp - print *, 'T = ', T - print *, '' - enddo - - print *, '' - -end