276 qs_force(ikind)%all_potential(:, :) = 0.0_dp
277 qs_force(ikind)%cneo_potential(:, :) = 0.0_dp
278 qs_force(ikind)%core_overlap(:, :) = 0.0_dp
279 qs_force(ikind)%gth_ppl(:, :) = 0.0_dp
280 qs_force(ikind)%gth_nlcc(:, :) = 0.0_dp
281 qs_force(ikind)%gth_ppnl(:, :) = 0.0_dp
282 qs_force(ikind)%kinetic(:, :) = 0.0_dp
283 qs_force(ikind)%overlap(:, :) = 0.0_dp
284 qs_force(ikind)%overlap_admm(:, :) = 0.0_dp
285 qs_force(ikind)%rho_core(:, :) = 0.0_dp
286 qs_force(ikind)%rho_elec(:, :) = 0.0_dp
287 qs_force(ikind)%rho_lri_elec(:, :) = 0.0_dp
288 qs_force(ikind)%rho_cneo_nuc(:, :) = 0.0_dp
289 qs_force(ikind)%vhxc_atom(:, :) = 0.0_dp
290 qs_force(ikind)%g0s_Vh_elec(:, :) = 0.0_dp
291 qs_force(ikind)%repulsive(:, :) = 0.0_dp
292 qs_force(ikind)%dispersion(:, :) = 0.0_dp
294 qs_force(ikind)%other(:, :) = 0.0_dp
295 qs_force(ikind)%fock_4c(:, :) = 0.0_dp
296 qs_force(ikind)%ehrenfest(:, :) = 0.0_dp
297 qs_force(ikind)%efield(:, :) = 0.0_dp
299 qs_force(ikind)%mp2_non_sep(:, :) = 0.0_dp
300 qs_force(ikind)%tensorial_u(:, :) = 0.0_dp
301 qs_force(ikind)%total(:, :) = 0.0_dp
314 TYPE(
qs_force_type),
DIMENSION(:),
POINTER :: qs_force_out, qs_force_in
318 cpassert(
ASSOCIATED(qs_force_out))
319 cpassert(
ASSOCIATED(qs_force_in))
321 DO ikind = 1,
SIZE(qs_force_out)
322 qs_force_out(ikind)%all_potential(:, :) = qs_force_out(ikind)%all_potential(:, :) + &
323 qs_force_in(ikind)%all_potential(:, :)
324 qs_force_out(ikind)%cneo_potential(:, :) = qs_force_out(ikind)%cneo_potential(:, :) + &
325 qs_force_in(ikind)%cneo_potential(:, :)
326 qs_force_out(ikind)%core_overlap(:, :) = qs_force_out(ikind)%core_overlap(:, :) + &
327 qs_force_in(ikind)%core_overlap(:, :)
328 qs_force_out(ikind)%gth_ppl(:, :) = qs_force_out(ikind)%gth_ppl(:, :) + &
329 qs_force_in(ikind)%gth_ppl(:, :)
330 qs_force_out(ikind)%gth_nlcc(:, :) = qs_force_out(ikind)%gth_nlcc(:, :) + &
331 qs_force_in(ikind)%gth_nlcc(:, :)
332 qs_force_out(ikind)%gth_ppnl(:, :) = qs_force_out(ikind)%gth_ppnl(:, :) + &
333 qs_force_in(ikind)%gth_ppnl(:, :)
334 qs_force_out(ikind)%kinetic(:, :) = qs_force_out(ikind)%kinetic(:, :) + &
335 qs_force_in(ikind)%kinetic(:, :)
336 qs_force_out(ikind)%overlap(:, :) = qs_force_out(ikind)%overlap(:, :) + &
337 qs_force_in(ikind)%overlap(:, :)
338 qs_force_out(ikind)%overlap_admm(:, :) = qs_force_out(ikind)%overlap_admm(:, :) + &
339 qs_force_in(ikind)%overlap_admm(:, :)
340 qs_force_out(ikind)%rho_core(:, :) = qs_force_out(ikind)%rho_core(:, :) + &
341 qs_force_in(ikind)%rho_core(:, :)
342 qs_force_out(ikind)%rho_elec(:, :) = qs_force_out(ikind)%rho_elec(:, :) + &
343 qs_force_in(ikind)%rho_elec(:, :)
344 qs_force_out(ikind)%rho_lri_elec(:, :) = qs_force_out(ikind)%rho_lri_elec(:, :) + &
345 qs_force_in(ikind)%rho_lri_elec(:, :)
346 qs_force_out(ikind)%rho_cneo_nuc(:, :) = qs_force_out(ikind)%rho_cneo_nuc(:, :) + &
347 qs_force_in(ikind)%rho_cneo_nuc(:, :)
348 qs_force_out(ikind)%vhxc_atom(:, :) = qs_force_out(ikind)%vhxc_atom(:, :) + &
349 qs_force_in(ikind)%vhxc_atom(:, :)
350 qs_force_out(ikind)%g0s_Vh_elec(:, :) = qs_force_out(ikind)%g0s_Vh_elec(:, :) + &
351 qs_force_in(ikind)%g0s_Vh_elec(:, :)
352 qs_force_out(ikind)%repulsive(:, :) = qs_force_out(ikind)%repulsive(:, :) + &
353 qs_force_in(ikind)%repulsive(:, :)
354 qs_force_out(ikind)%dispersion(:, :) = qs_force_out(ikind)%dispersion(:, :) + &
355 qs_force_in(ikind)%dispersion(:, :)
356 qs_force_out(ikind)%gcp(:, :) = qs_force_out(ikind)%gcp(:, :) + &
357 qs_force_in(ikind)%gcp(:, :)
358 qs_force_out(ikind)%other(:, :) = qs_force_out(ikind)%other(:, :) + &
359 qs_force_in(ikind)%other(:, :)
360 qs_force_out(ikind)%fock_4c(:, :) = qs_force_out(ikind)%fock_4c(:, :) + &
361 qs_force_in(ikind)%fock_4c(:, :)
362 qs_force_out(ikind)%ehrenfest(:, :) = qs_force_out(ikind)%ehrenfest(:, :) + &
363 qs_force_in(ikind)%ehrenfest(:, :)
364 qs_force_out(ikind)%efield(:, :) = qs_force_out(ikind)%efield(:, :) + &
365 qs_force_in(ikind)%efield(:, :)
366 qs_force_out(ikind)%eev(:, :) = qs_force_out(ikind)%eev(:, :) + &
367 qs_force_in(ikind)%eev(:, :)
368 qs_force_out(ikind)%mp2_non_sep(:, :) = qs_force_out(ikind)%mp2_non_sep(:, :) + &
369 qs_force_in(ikind)%mp2_non_sep(:, :)
370 qs_force_out(ikind)%tensorial_u(:, :) = qs_force_out(ikind)%tensorial_u(:, :) + &
371 qs_force_in(ikind)%tensorial_u(:, :)
372 qs_force_out(ikind)%total(:, :) = qs_force_out(ikind)%total(:, :) + &
373 qs_force_in(ikind)%total(:, :)
395 CALL para_env%sum(
qs_force(ikind)%overlap)
396 CALL para_env%sum(
qs_force(ikind)%overlap_admm)
397 CALL para_env%sum(
qs_force(ikind)%kinetic)
398 CALL para_env%sum(
qs_force(ikind)%gth_ppl)
399 CALL para_env%sum(
qs_force(ikind)%gth_nlcc)
400 CALL para_env%sum(
qs_force(ikind)%gth_ppnl)
401 CALL para_env%sum(
qs_force(ikind)%all_potential)
402 CALL para_env%sum(
qs_force(ikind)%cneo_potential)
403 CALL para_env%sum(
qs_force(ikind)%core_overlap)
404 CALL para_env%sum(
qs_force(ikind)%rho_core)
405 CALL para_env%sum(
qs_force(ikind)%rho_elec)
406 CALL para_env%sum(
qs_force(ikind)%rho_lri_elec)
407 CALL para_env%sum(
qs_force(ikind)%rho_cneo_nuc)
408 CALL para_env%sum(
qs_force(ikind)%vhxc_atom)
409 CALL para_env%sum(
qs_force(ikind)%g0s_Vh_elec)
410 CALL para_env%sum(
qs_force(ikind)%fock_4c)
411 CALL para_env%sum(
qs_force(ikind)%mp2_non_sep)
412 CALL para_env%sum(
qs_force(ikind)%repulsive)
413 CALL para_env%sum(
qs_force(ikind)%dispersion)
414 CALL para_env%sum(
qs_force(ikind)%gcp)
415 CALL para_env%sum(
qs_force(ikind)%ehrenfest)
418 qs_force(ikind)%core_overlap(:, :) + &
422 qs_force(ikind)%all_potential(:, :) + &
423 qs_force(ikind)%cneo_potential(:, :) + &
426 qs_force(ikind)%overlap_admm(:, :) + &
429 qs_force(ikind)%rho_lri_elec(:, :) + &
430 qs_force(ikind)%rho_cneo_nuc(:, :) + &
432 qs_force(ikind)%g0s_Vh_elec(:, :) + &
434 qs_force(ikind)%mp2_non_sep(:, :) + &
435 qs_force(ikind)%tensorial_u(:, :) + &
437 qs_force(ikind)%dispersion(:, :) + &
582 REAL(kind=
dp),
DIMENSION(:, :),
INTENT(INOUT) :: force
586 INTEGER :: ia, iatom, ikind, natom_kind
592 DO ikind = 1,
SIZE(atomic_kind_set, 1)
593 atomic_kind => atomic_kind_set(ikind)
595 DO ia = 1, natom_kind
596 iatom = atomic_kind%atom_list(ia)
597 force(:, iatom) =
qs_force(ikind)%core_overlap(:, ia) + &
601 qs_force(ikind)%all_potential(:, ia) + &
602 qs_force(ikind)%cneo_potential(:, ia) + &
605 qs_force(ikind)%overlap_admm(:, ia) + &
608 qs_force(ikind)%rho_lri_elec(:, ia) + &
609 qs_force(ikind)%rho_cneo_nuc(:, ia) + &
610 qs_force(ikind)%vhxc_atom(:, ia) + &
611 qs_force(ikind)%g0s_Vh_elec(:, ia) + &
613 qs_force(ikind)%mp2_non_sep(:, ia) + &
614 qs_force(ikind)%tensorial_u(:, ia) + &
615 qs_force(ikind)%repulsive(:, ia) + &
616 qs_force(ikind)%dispersion(:, ia) + &
618 qs_force(ikind)%ehrenfest(:, ia) + &
639 INTEGER,
INTENT(IN),
OPTIONAL :: ikind, iatom, iunit
641 CHARACTER(LEN=35) :: fmtstr2
642 CHARACTER(LEN=48) :: fmtstr1
643 INTEGER :: iounit, jatom, jkind
644 REAL(kind=
dp),
DIMENSION(3) :: total
647 IF (
PRESENT(iunit))
THEN
654 IF (
PRESENT(ikind))
THEN
659 IF (
PRESENT(iatom))
THEN
667 fmtstr1 =
"(/,T2,A,/,T3,A,T11,A,T23,A,T40,A1,2(17X,A1))"
668 fmtstr2 =
"((T2,I5,4X,I4,T18,A,T34,3F18.12))"
670 WRITE (unit=iounit, fmt=fmtstr1) &
671 "FORCES [a.u.]",
"Atom",
"Kind",
"Component",
"X",
"Y",
"Z"
673 total(1:3) =
qs_force(jkind)%overlap(1:3, jatom) &
674 +
qs_force(jkind)%overlap_admm(1:3, jatom) &
675 +
qs_force(jkind)%kinetic(1:3, jatom) &
676 +
qs_force(jkind)%gth_ppl(1:3, jatom) &
677 +
qs_force(jkind)%gth_ppnl(1:3, jatom) &
678 +
qs_force(jkind)%gth_nlcc(1:3, jatom) &
679 +
qs_force(jkind)%all_potential(1:3, jatom) &
680 +
qs_force(jkind)%cneo_potential(1:3, jatom) &
681 +
qs_force(jkind)%rho_cneo_nuc(1:3, jatom) &
682 +
qs_force(jkind)%core_overlap(1:3, jatom) &
683 +
qs_force(jkind)%rho_core(1:3, jatom) &
684 +
qs_force(jkind)%rho_elec(1:3, jatom) &
685 +
qs_force(jkind)%rho_lri_elec(1:3, jatom) &
686 +
qs_force(jkind)%vhxc_atom(1:3, jatom) &
687 +
qs_force(jkind)%g0s_Vh_elec(1:3, jatom) &
688 +
qs_force(jkind)%dispersion(1:3, jatom) &
689 +
qs_force(jkind)%repulsive(1:3, jatom) &
691 +
qs_force(jkind)%efield(1:3, jatom) &
693 +
qs_force(jkind)%ehrenfest(1:3, jatom) &
694 +
qs_force(jkind)%fock_4c(1:3, jatom) &
695 +
qs_force(jkind)%mp2_non_sep(1:3, jatom)
697 WRITE (unit=iounit, fmt=fmtstr2) &
698 jatom, jkind,
" overlap",
qs_force(jkind)%overlap(1:3, jatom), &
699 jatom, jkind,
" overlap_admm",
qs_force(jkind)%overlap_admm(1:3, jatom), &
700 jatom, jkind,
" kinetic",
qs_force(jkind)%kinetic(1:3, jatom), &
701 jatom, jkind,
" gth_ppl",
qs_force(jkind)%gth_ppl(1:3, jatom), &
702 jatom, jkind,
" gth_ppnl",
qs_force(jkind)%gth_ppnl(1:3, jatom), &
703 jatom, jkind,
" gth_nlcc",
qs_force(jkind)%gth_nlcc(1:3, jatom), &
704 jatom, jkind,
" all_potential",
qs_force(jkind)%all_potential(1:3, jatom), &
705 jatom, jkind,
"cneo_potential",
qs_force(jkind)%cneo_potential(1:3, jatom), &
706 jatom, jkind,
" rho_cneo_nuc",
qs_force(jkind)%rho_cneo_nuc(1:3, jatom), &
707 jatom, jkind,
" core_overlap",
qs_force(jkind)%core_overlap(1:3, jatom), &
708 jatom, jkind,
" rho_core",
qs_force(jkind)%rho_core(1:3, jatom), &
709 jatom, jkind,
" rho_elec",
qs_force(jkind)%rho_elec(1:3, jatom), &
710 jatom, jkind,
" rho_lri_elec",
qs_force(jkind)%rho_lri_elec(1:3, jatom), &
711 jatom, jkind,
" vhxc_atom",
qs_force(jkind)%vhxc_atom(1:3, jatom), &
712 jatom, jkind,
" g0s_Vh_elec",
qs_force(jkind)%g0s_Vh_elec(1:3, jatom), &
713 jatom, jkind,
" dispersion",
qs_force(jkind)%dispersion(1:3, jatom), &
714 jatom, jkind,
" repulsive",
qs_force(jkind)%repulsive(1:3, jatom), &
715 jatom, jkind,
" gcp",
qs_force(jkind)%gcp(1:3, jatom), &
716 jatom, jkind,
" efield",
qs_force(jkind)%efield(1:3, jatom), &
717 jatom, jkind,
" eev",
qs_force(jkind)%eev(1:3, jatom), &
718 jatom, jkind,
" ehrenfest",
qs_force(jkind)%ehrenfest(1:3, jatom), &
719 jatom, jkind,
" fock_4c",
qs_force(jkind)%fock_4c(1:3, jatom), &
720 jatom, jkind,
" mp2_non_sep",
qs_force(jkind)%mp2_non_sep(1:3, jatom), &
721 jatom, jkind,
" total", total(1:3)
subroutine, public get_atomic_kind(atomic_kind, fist_potential, element_symbol, name, mass, kind_number, natom, atom_list, rcov, rvdw, z, qeff, apol, cpol, mm_radius, shell, shell_active, damping)
Get attributes of an atomic kind.