compute multipoles of the quantum fragment
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(quantum_fragment_type), | intent(inout) | :: | quantum_fragment | quantum subsystem |
||
integer, | intent(in) | :: | order | order of the multipole expansion |
||
integer, | intent(in) | :: | x_start | index of the first yz-plane for this process |
||
integer, | intent(in) | :: | x_end | index of the last yz-plane for this process |
subroutine mimic_compute_multipoles(quantum_fragment, order, x_start, x_end)
!> quantum subsystem
type(quantum_fragment_type), intent(inout) :: quantum_fragment
!> order of the multipole expansion
integer, intent(in) :: order
!> index of the first yz-plane for this process
integer, intent(in) :: x_start
!> index of the last yz-plane for this process
integer, intent(in) :: x_end
real(dp), dimension(3) :: multipole_origin
call timer_start("mimic_compute_multipoles")
multipole_origin = compute_centroid(quantum_fragment%nuclei)
call quantum_fragment%compute_nuclear_multipoles(multipole_origin, order)
call quantum_fragment%compute_electronic_multipoles(multipole_origin, order, &
x_start, x_end)
call timer_stop
end subroutine mimic_compute_multipoles