10
0
mirror of https://github.com/QuantumPackage/qp2.git synced 2024-12-22 20:34:58 +01:00

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

This commit is contained in:
eginer 2024-02-15 18:05:50 +01:00
commit c58bf2aa8f
4 changed files with 15 additions and 5 deletions

View File

@ -21,3 +21,10 @@ type: logical
doc: If true and N_states > 1, the oscillator strength will be computed doc: If true and N_states > 1, the oscillator strength will be computed
interface: ezfio,provider,ocaml interface: ezfio,provider,ocaml
default: false default: false
[calc_energy_components]
type: logical
doc: If true, the components of the energy (1e, 2e, kinetic) will be computed
interface: ezfio,provider,ocaml
default: false

View File

@ -6,6 +6,11 @@ subroutine print_mol_properties()
! Run the propertie calculations ! Run the propertie calculations
END_DOC END_DOC
! Energy components
if (calc_energy_components) then
call print_energy_components
endif
! Electric dipole moment ! Electric dipole moment
if (calc_dipole_moment) then if (calc_dipole_moment) then
call print_dipole_moment call print_dipole_moment
@ -18,7 +23,7 @@ subroutine print_mol_properties()
! Oscillator strength ! Oscillator strength
if (calc_osc_str .and. N_states > 1) then if (calc_osc_str .and. N_states > 1) then
call print_oscillator_strength call print_oscillator_strength
endif endif
end end

View File

@ -1377,8 +1377,6 @@ subroutine get_pseudo_inverse(A, LDA, m, n, C, LDC, cutoff)
enddo enddo
endif endif
print*, ' n_svd = ', n_svd
!$OMP PARALLEL & !$OMP PARALLEL &
!$OMP DEFAULT (NONE) & !$OMP DEFAULT (NONE) &
!$OMP PRIVATE (i, j) & !$OMP PRIVATE (i, j) &
@ -1392,12 +1390,12 @@ subroutine get_pseudo_inverse(A, LDA, m, n, C, LDC, cutoff)
!$OMP END DO !$OMP END DO
!$OMP END PARALLEL !$OMP END PARALLEL
call dgemm("N", "N", m, n, n_svd, 1.d0, U, m, Vt, n, 0.d0, C, LDC) call dgemm('T', 'T', n, m, n_svd, 1.d0, Vt, size(Vt,1), U, size(U,1), 0.d0, C, size(C,1))
! C = 0.d0 ! C = 0.d0
! do i=1,m ! do i=1,m
! do j=1,n ! do j=1,n
! do k=1,n ! do k=1,n_svd
! C(j,i) = C(j,i) + U(i,k) * D(k) * Vt(k,j) ! C(j,i) = C(j,i) + U(i,k) * D(k) * Vt(k,j)
! enddo ! enddo
! enddo ! enddo