321 s_mstruct_changed, rho_changed, exc_accint, &
322 potential_changed, forces_up_to_date, complex_ks, &
323 matrix_h, matrix_h_im, matrix_ks, matrix_ks_im, matrix_vxc, &
325 matrix_s_RI_aux, matrix_w, matrix_p_mp2, matrix_p_mp2_admm, &
326 matrix_h_kp, matrix_h_im_kp, matrix_ks_kp, matrix_vxc_kp, kinetic_kp, matrix_s_kp, matrix_w_kp, &
327 matrix_s_RI_aux_kp, matrix_ks_im_kp, &
329 vppl, xcint_weights, rho_core, rho_nlcc, rho_nlcc_g, vee, &
331 sab_orb, sab_all, sac_ae, sac_ppl, sac_lri, sap_ppnl, sap_oce, sab_lrc, &
332 sab_se, sab_xtbe, sab_tbe, sab_core, sab_xb, sab_xtb_pp, sab_xtb_nonbond, &
333 sab_vdw, sab_scp, sab_almo, sab_kp, sab_kp_nosym, sab_cneo, &
334 task_list, task_list_soft, &
335 kpoints, do_kpoints, &
336 atomic_kind_set, qs_kind_set, cell, cell_ref, use_ref_cell, &
337 particle_set, energy, force, local_particles, local_molecules, &
338 molecule_kind_set, molecule_set, subsys, cp_subsys, virial, results, atprop, &
339 nkind, natom, dft_control, dbcsr_dist, distribution_2d, pw_env, &
340 para_env, blacs_env, nelectron_total, nelectron_spin)
344 LOGICAL,
OPTIONAL :: s_mstruct_changed, rho_changed, &
345 exc_accint, potential_changed, &
346 forces_up_to_date, complex_ks
347 TYPE(
dbcsr_p_type),
DIMENSION(:),
OPTIONAL,
POINTER :: matrix_h, matrix_h_im, matrix_ks, &
348 matrix_ks_im, matrix_vxc, kinetic, matrix_s, matrix_s_ri_aux, matrix_w, matrix_p_mp2, &
350 TYPE(
dbcsr_p_type),
DIMENSION(:, :),
OPTIONAL,
POINTER :: matrix_h_kp, matrix_h_im_kp, &
351 matrix_ks_kp, matrix_vxc_kp, kinetic_kp, matrix_s_kp, matrix_w_kp, matrix_s_ri_aux_kp, &
353 TYPE(
qs_rho_type),
OPTIONAL,
POINTER :: rho, rho_xc
359 INTEGER,
OPTIONAL :: neighbor_list_id
361 sac_ppl, sac_lri, sap_ppnl, sap_oce, sab_lrc, sab_se, sab_xtbe, sab_tbe, sab_core, &
362 sab_xb, sab_xtb_pp, sab_xtb_nonbond, sab_vdw, sab_scp, sab_almo, sab_kp, sab_kp_nosym, &
364 TYPE(
task_list_type),
OPTIONAL,
POINTER :: task_list, task_list_soft
366 LOGICAL,
OPTIONAL :: do_kpoints
368 POINTER :: atomic_kind_set
370 POINTER :: qs_kind_set
371 TYPE(
cell_type),
OPTIONAL,
POINTER :: cell, cell_ref
372 LOGICAL,
OPTIONAL :: use_ref_cell
374 POINTER :: particle_set
380 POINTER :: molecule_kind_set
382 POINTER :: molecule_set
388 INTEGER,
OPTIONAL :: nkind, natom
395 INTEGER,
OPTIONAL :: nelectron_total
396 INTEGER,
DIMENSION(2),
OPTIONAL :: nelectron_spin
398 IF (.NOT.
ASSOCIATED(ks_env%subsys)) cpabort(
"get_ks_env: subsys not associated")
400 IF (
PRESENT(s_mstruct_changed)) s_mstruct_changed = ks_env%s_mstruct_changed
401 IF (
PRESENT(rho_changed)) rho_changed = ks_env%rho_changed
402 IF (
PRESENT(potential_changed)) potential_changed = ks_env%potential_changed
403 IF (
PRESENT(forces_up_to_date)) forces_up_to_date = ks_env%forces_up_to_date
404 IF (
PRESENT(complex_ks)) complex_ks = ks_env%complex_ks
405 IF (
PRESENT(exc_accint)) exc_accint = ks_env%exc_accint
406 IF (
PRESENT(v_hartree_rspace)) v_hartree_rspace => ks_env%v_hartree_rspace
408 IF (
PRESENT(matrix_ks)) matrix_ks =>
get_1d_pointer(ks_env%matrix_ks)
409 IF (
PRESENT(matrix_s)) matrix_s =>
get_1d_pointer(ks_env%matrix_s)
410 IF (
PRESENT(matrix_s_ri_aux)) matrix_s_ri_aux =>
get_1d_pointer(ks_env%matrix_s_RI_aux)
412 IF (
PRESENT(matrix_h)) matrix_h =>
get_1d_pointer(ks_env%matrix_h)
413 IF (
PRESENT(matrix_h_im)) matrix_h_im =>
get_1d_pointer(ks_env%matrix_h_im)
414 IF (
PRESENT(matrix_w)) matrix_w =>
get_1d_pointer(ks_env%matrix_w)
415 IF (
PRESENT(matrix_vxc)) matrix_vxc =>
get_1d_pointer(ks_env%matrix_vxc)
417 IF (
PRESENT(matrix_ks_kp)) matrix_ks_kp =>
get_2d_pointer(ks_env%matrix_ks)
418 IF (
PRESENT(matrix_ks_im_kp)) matrix_ks_im_kp =>
get_2d_pointer(ks_env%matrix_ks_im)
419 IF (
PRESENT(matrix_s_kp)) matrix_s_kp =>
get_2d_pointer(ks_env%matrix_s)
420 IF (
PRESENT(matrix_s_ri_aux_kp)) matrix_s_ri_aux_kp =>
get_2d_pointer(ks_env%matrix_s_RI_aux)
421 IF (
PRESENT(matrix_w_kp)) matrix_w_kp =>
get_2d_pointer(ks_env%matrix_w)
422 IF (
PRESENT(kinetic_kp)) kinetic_kp =>
get_2d_pointer(ks_env%kinetic)
423 IF (
PRESENT(matrix_h_kp)) matrix_h_kp =>
get_2d_pointer(ks_env%matrix_h)
424 IF (
PRESENT(matrix_h_im_kp)) matrix_h_im_kp =>
get_2d_pointer(ks_env%matrix_h_im)
425 IF (
PRESENT(matrix_vxc_kp)) matrix_vxc_kp =>
get_2d_pointer(ks_env%matrix_vxc)
426 IF (
PRESENT(matrix_ks_im)) matrix_ks_im =>
get_1d_pointer(ks_env%matrix_ks_im)
428 IF (
PRESENT(matrix_p_mp2)) matrix_p_mp2 => ks_env%matrix_p_mp2
429 IF (
PRESENT(matrix_p_mp2_admm)) matrix_p_mp2_admm => ks_env%matrix_p_mp2_admm
430 IF (
PRESENT(rho)) rho => ks_env%rho
431 IF (
PRESENT(rho_xc)) rho_xc => ks_env%rho_xc
432 IF (
PRESENT(xcint_weights)) xcint_weights => ks_env%xcint_weights
433 IF (
PRESENT(rho_core)) rho_core => ks_env%rho_core
434 IF (
PRESENT(rho_nlcc)) rho_nlcc => ks_env%rho_nlcc
435 IF (
PRESENT(rho_nlcc_g)) rho_nlcc_g => ks_env%rho_nlcc_g
436 IF (
PRESENT(vppl)) vppl => ks_env%vppl
437 IF (
PRESENT(vee)) vee => ks_env%vee
439 IF (
PRESENT(neighbor_list_id)) neighbor_list_id = ks_env%neighbor_list_id
440 IF (
PRESENT(sab_orb)) sab_orb => ks_env%sab_orb
441 IF (
PRESENT(sab_all)) sab_all => ks_env%sab_all
442 IF (
PRESENT(sab_vdw)) sab_vdw => ks_env%sab_vdw
443 IF (
PRESENT(sab_scp)) sab_scp => ks_env%sab_scp
444 IF (
PRESENT(sac_ae)) sac_ae => ks_env%sac_ae
445 IF (
PRESENT(sac_ppl)) sac_ppl => ks_env%sac_ppl
446 IF (
PRESENT(sac_lri)) sac_lri => ks_env%sac_lri
447 IF (
PRESENT(sap_ppnl)) sap_ppnl => ks_env%sap_ppnl
448 IF (
PRESENT(sap_oce)) sap_oce => ks_env%sap_oce
449 IF (
PRESENT(sab_se)) sab_se => ks_env%sab_se
450 IF (
PRESENT(sab_lrc)) sab_lrc => ks_env%sab_lrc
451 IF (
PRESENT(sab_tbe)) sab_tbe => ks_env%sab_tbe
452 IF (
PRESENT(sab_xtbe)) sab_xtbe => ks_env%sab_xtbe
453 IF (
PRESENT(sab_core)) sab_core => ks_env%sab_core
454 IF (
PRESENT(sab_xb)) sab_xb => ks_env%sab_xb
455 IF (
PRESENT(sab_xtb_pp)) sab_xtb_pp => ks_env%sab_xtb_pp
456 IF (
PRESENT(sab_xtb_nonbond)) sab_xtb_nonbond => ks_env%sab_xtb_nonbond
457 IF (
PRESENT(sab_almo)) sab_almo => ks_env%sab_almo
458 IF (
PRESENT(sab_kp)) sab_kp => ks_env%sab_kp
459 IF (
PRESENT(sab_kp_nosym)) sab_kp_nosym => ks_env%sab_kp_nosym
460 IF (
PRESENT(sab_cneo)) sab_cneo => ks_env%sab_cneo
461 IF (
PRESENT(dft_control)) dft_control => ks_env%dft_control
462 IF (
PRESENT(dbcsr_dist)) dbcsr_dist => ks_env%dbcsr_dist
463 IF (
PRESENT(distribution_2d)) distribution_2d => ks_env%distribution_2d
464 IF (
PRESENT(pw_env)) pw_env => ks_env%pw_env
465 IF (
PRESENT(para_env)) para_env => ks_env%para_env
466 IF (
PRESENT(blacs_env)) blacs_env => ks_env%blacs_env
468 IF (
PRESENT(task_list)) task_list => ks_env%task_list
469 IF (
PRESENT(task_list_soft)) task_list_soft => ks_env%task_list_soft
471 IF (
PRESENT(kpoints)) kpoints => ks_env%kpoints
472 IF (
PRESENT(do_kpoints))
THEN
473 do_kpoints = (ks_env%kpoints%nkp > 0)
476 IF (
PRESENT(subsys)) subsys => ks_env%subsys
478 local_molecules=local_molecules, &
479 local_particles=local_particles, &
485 use_ref_cell=use_ref_cell, &
488 qs_kind_set=qs_kind_set, &
489 cp_subsys=cp_subsys, &
490 atomic_kind_set=atomic_kind_set, &
491 particle_set=particle_set, &
492 molecule_kind_set=molecule_kind_set, &
493 molecule_set=molecule_set, &
496 nelectron_total=nelectron_total, &
497 nelectron_spin=nelectron_spin)
571 s_mstruct_changed, rho_changed, exc_accint, &
572 potential_changed, forces_up_to_date, complex_ks, &
573 matrix_h, matrix_h_im, matrix_ks, matrix_ks_im, matrix_vxc, &
575 matrix_s_RI_aux, matrix_w, matrix_p_mp2, matrix_p_mp2_admm, &
576 matrix_h_kp, matrix_h_im_kp, matrix_ks_kp, matrix_vxc_kp, kinetic_kp, matrix_s_kp, matrix_w_kp, &
577 matrix_s_RI_aux_kp, matrix_ks_im_kp, &
578 vppl, xcint_weights, rho_core, rho_nlcc, rho_nlcc_g, vee, &
581 sab_orb, sab_all, sac_ae, sac_ppl, sac_lri, sap_ppnl, sap_oce, sab_lrc, &
582 sab_se, sab_xtbe, sab_tbe, sab_core, sab_xb, sab_xtb_pp, sab_xtb_nonbond, &
583 sab_vdw, sab_scp, sab_almo, sab_kp, sab_kp_nosym, sab_cneo, &
584 task_list, task_list_soft, &
585 subsys, dft_control, dbcsr_dist, distribution_2d, pw_env, &
590 LOGICAL,
OPTIONAL :: s_mstruct_changed, rho_changed, &
591 exc_accint, potential_changed, &
592 forces_up_to_date, complex_ks
593 TYPE(
dbcsr_p_type),
DIMENSION(:),
OPTIONAL,
POINTER :: matrix_h, matrix_h_im, matrix_ks, &
594 matrix_ks_im, matrix_vxc, kinetic, matrix_s, matrix_s_ri_aux, matrix_w, matrix_p_mp2, &
596 TYPE(
dbcsr_p_type),
DIMENSION(:, :),
OPTIONAL,
POINTER :: matrix_h_kp, matrix_h_im_kp, &
597 matrix_ks_kp, matrix_vxc_kp, kinetic_kp, matrix_s_kp, matrix_w_kp, matrix_s_ri_aux_kp, &
604 INTEGER,
OPTIONAL :: neighbor_list_id
607 sac_ppl, sac_lri, sap_ppnl, sap_oce, sab_lrc, sab_se, sab_xtbe, sab_tbe, sab_core, &
608 sab_xb, sab_xtb_pp, sab_xtb_nonbond, sab_vdw, sab_scp, sab_almo, sab_kp, sab_kp_nosym, &
610 TYPE(
task_list_type),
OPTIONAL,
POINTER :: task_list, task_list_soft
619 IF (
PRESENT(s_mstruct_changed)) ks_env%s_mstruct_changed = s_mstruct_changed
620 IF (
PRESENT(rho_changed)) ks_env%rho_changed = rho_changed
621 IF (
PRESENT(potential_changed)) ks_env%potential_changed = potential_changed
622 IF (
PRESENT(forces_up_to_date)) ks_env%forces_up_to_date = forces_up_to_date
623 IF (
PRESENT(complex_ks)) ks_env%complex_ks = complex_ks
624 IF (ks_env%s_mstruct_changed .OR. ks_env%potential_changed .OR. ks_env%rho_changed) &
625 ks_env%forces_up_to_date = .false.
626 IF (
PRESENT(exc_accint)) ks_env%exc_accint = exc_accint
627 IF (
PRESENT(v_hartree_rspace)) ks_env%v_hartree_rspace => v_hartree_rspace
629 IF (
PRESENT(matrix_h))
CALL set_1d_pointer(ks_env%matrix_h, matrix_h)
630 IF (
PRESENT(matrix_h_kp))
CALL set_2d_pointer(ks_env%matrix_h, matrix_h_kp)
632 IF (
PRESENT(matrix_h_im))
CALL set_1d_pointer(ks_env%matrix_h_im, matrix_h_im)
633 IF (
PRESENT(matrix_h_im_kp))
CALL set_2d_pointer(ks_env%matrix_h_im, matrix_h_im_kp)
635 IF (
PRESENT(matrix_ks))
CALL set_1d_pointer(ks_env%matrix_ks, matrix_ks)
636 IF (
PRESENT(matrix_ks_kp))
CALL set_2d_pointer(ks_env%matrix_ks, matrix_ks_kp)
638 IF (
PRESENT(matrix_vxc))
CALL set_1d_pointer(ks_env%matrix_vxc, matrix_vxc)
639 IF (
PRESENT(matrix_vxc_kp))
CALL set_2d_pointer(ks_env%matrix_vxc, matrix_vxc_kp)
641 IF (
PRESENT(matrix_s))
CALL set_1d_pointer(ks_env%matrix_s, matrix_s)
642 IF (
PRESENT(matrix_s_kp))
CALL set_2d_pointer(ks_env%matrix_s, matrix_s_kp)
644 IF (
PRESENT(kinetic))
CALL set_1d_pointer(ks_env%kinetic, kinetic)
645 IF (
PRESENT(kinetic_kp))
CALL set_2d_pointer(ks_env%kinetic, kinetic_kp)
647 IF (
PRESENT(matrix_w))
CALL set_1d_pointer(ks_env%matrix_w, matrix_w)
648 IF (
PRESENT(matrix_w_kp))
CALL set_2d_pointer(ks_env%matrix_w, matrix_w_kp)
650 IF (
PRESENT(matrix_s_ri_aux))
CALL set_1d_pointer(ks_env%matrix_s_RI_aux, matrix_s_ri_aux)
651 IF (
PRESENT(matrix_s_ri_aux_kp))
CALL set_2d_pointer(ks_env%matrix_s_RI_aux, matrix_s_ri_aux_kp)
653 IF (
PRESENT(matrix_ks_im))
CALL set_1d_pointer(ks_env%matrix_ks_im, matrix_ks_im)
654 IF (
PRESENT(matrix_ks_im_kp))
CALL set_2d_pointer(ks_env%matrix_ks_im, matrix_ks_im_kp)
656 IF (
PRESENT(matrix_p_mp2)) ks_env%matrix_p_mp2 => matrix_p_mp2
657 IF (
PRESENT(matrix_p_mp2_admm)) ks_env%matrix_p_mp2_admm => matrix_p_mp2_admm
658 IF (
PRESENT(xcint_weights)) ks_env%xcint_weights => xcint_weights
659 IF (
PRESENT(rho_core)) ks_env%rho_core => rho_core
660 IF (
PRESENT(rho_nlcc)) ks_env%rho_nlcc => rho_nlcc
661 IF (
PRESENT(rho_nlcc_g)) ks_env%rho_nlcc_g => rho_nlcc_g
662 IF (
PRESENT(vppl)) ks_env%vppl => vppl
663 IF (
PRESENT(vee)) ks_env%vee => vee
665 IF (
PRESENT(neighbor_list_id)) ks_env%neighbor_list_id = neighbor_list_id
666 IF (
PRESENT(kpoints)) ks_env%kpoints => kpoints
667 IF (
PRESENT(sab_orb)) ks_env%sab_orb => sab_orb
668 IF (
PRESENT(sab_vdw)) ks_env%sab_vdw => sab_vdw
669 IF (
PRESENT(sab_scp)) ks_env%sab_scp => sab_scp
670 IF (
PRESENT(sab_all)) ks_env%sab_all => sab_all
671 IF (
PRESENT(sac_ae)) ks_env%sac_ae => sac_ae
672 IF (
PRESENT(sac_ppl)) ks_env%sac_ppl => sac_ppl
673 IF (
PRESENT(sac_lri)) ks_env%sac_lri => sac_lri
674 IF (
PRESENT(sap_ppnl)) ks_env%sap_ppnl => sap_ppnl
675 IF (
PRESENT(sap_oce)) ks_env%sap_oce => sap_oce
676 IF (
PRESENT(sab_se)) ks_env%sab_se => sab_se
677 IF (
PRESENT(sab_lrc)) ks_env%sab_lrc => sab_lrc
678 IF (
PRESENT(sab_tbe)) ks_env%sab_tbe => sab_tbe
679 IF (
PRESENT(sab_xtbe)) ks_env%sab_xtbe => sab_xtbe
680 IF (
PRESENT(sab_core)) ks_env%sab_core => sab_core
681 IF (
PRESENT(sab_xb)) ks_env%sab_xb => sab_xb
682 IF (
PRESENT(sab_xtb_pp)) ks_env%sab_xtb_pp => sab_xtb_pp
683 IF (
PRESENT(sab_xtb_nonbond)) ks_env%sab_xtb_nonbond => sab_xtb_nonbond
684 IF (
PRESENT(sab_almo)) ks_env%sab_almo => sab_almo
685 IF (
PRESENT(sab_kp)) ks_env%sab_kp => sab_kp
686 IF (
PRESENT(sab_kp_nosym)) ks_env%sab_kp_nosym => sab_kp_nosym
687 IF (
PRESENT(sab_cneo)) ks_env%sab_cneo => sab_cneo
689 IF (
PRESENT(task_list)) ks_env%task_list => task_list
690 IF (
PRESENT(task_list_soft)) ks_env%task_list_soft => task_list_soft
692 IF (
PRESENT(subsys))
THEN
693 IF (
ASSOCIATED(ks_env%subsys))
THEN
694 IF (
ASSOCIATED(ks_env%subsys, subsys))
THEN
696 DEALLOCATE (ks_env%subsys)
699 ks_env%subsys => subsys
701 IF (
PRESENT(dft_control))
THEN
702 IF (
ASSOCIATED(ks_env%dft_control))
THEN
703 IF (.NOT.
ASSOCIATED(ks_env%dft_control, dft_control))
THEN
705 DEALLOCATE (ks_env%dft_control)
708 ks_env%dft_control => dft_control
710 IF (
PRESENT(dbcsr_dist))
THEN
711 IF (
ASSOCIATED(ks_env%dbcsr_dist))
THEN
712 IF (.NOT.
ASSOCIATED(ks_env%dbcsr_dist, dbcsr_dist))
THEN
714 DEALLOCATE (ks_env%dbcsr_dist)
717 ks_env%dbcsr_dist => dbcsr_dist
719 IF (
PRESENT(distribution_2d))
THEN
722 ks_env%distribution_2d => distribution_2d
724 IF (
PRESENT(pw_env))
THEN
727 ks_env%pw_env => pw_env
729 IF (
PRESENT(para_env))
THEN
730 CALL para_env%retain()
732 ks_env%para_env => para_env
734 IF (
PRESENT(blacs_env))
THEN
735 CALL blacs_env%retain()
737 ks_env%blacs_env => blacs_env
subroutine, public set_ks_env(ks_env, v_hartree_rspace, s_mstruct_changed, rho_changed, exc_accint, potential_changed, forces_up_to_date, complex_ks, matrix_h, matrix_h_im, matrix_ks, matrix_ks_im, matrix_vxc, kinetic, matrix_s, matrix_s_ri_aux, matrix_w, matrix_p_mp2, matrix_p_mp2_admm, matrix_h_kp, matrix_h_im_kp, matrix_ks_kp, matrix_vxc_kp, kinetic_kp, matrix_s_kp, matrix_w_kp, matrix_s_ri_aux_kp, matrix_ks_im_kp, vppl, xcint_weights, rho_core, rho_nlcc, rho_nlcc_g, vee, neighbor_list_id, kpoints, sab_orb, sab_all, sac_ae, sac_ppl, sac_lri, sap_ppnl, sap_oce, sab_lrc, sab_se, sab_xtbe, sab_tbe, sab_core, sab_xb, sab_xtb_pp, sab_xtb_nonbond, sab_vdw, sab_scp, sab_almo, sab_kp, sab_kp_nosym, sab_cneo, task_list, task_list_soft, subsys, dft_control, dbcsr_dist, distribution_2d, pw_env, para_env, blacs_env)
...
subroutine, public get_ks_env(ks_env, v_hartree_rspace, s_mstruct_changed, rho_changed, exc_accint, potential_changed, forces_up_to_date, complex_ks, matrix_h, matrix_h_im, matrix_ks, matrix_ks_im, matrix_vxc, kinetic, matrix_s, matrix_s_ri_aux, matrix_w, matrix_p_mp2, matrix_p_mp2_admm, matrix_h_kp, matrix_h_im_kp, matrix_ks_kp, matrix_vxc_kp, kinetic_kp, matrix_s_kp, matrix_w_kp, matrix_s_ri_aux_kp, matrix_ks_im_kp, rho, rho_xc, vppl, xcint_weights, rho_core, rho_nlcc, rho_nlcc_g, vee, neighbor_list_id, sab_orb, sab_all, sac_ae, sac_ppl, sac_lri, sap_ppnl, sap_oce, sab_lrc, sab_se, sab_xtbe, sab_tbe, sab_core, sab_xb, sab_xtb_pp, sab_xtb_nonbond, sab_vdw, sab_scp, sab_almo, sab_kp, sab_kp_nosym, sab_cneo, task_list, task_list_soft, kpoints, do_kpoints, atomic_kind_set, qs_kind_set, cell, cell_ref, use_ref_cell, particle_set, energy, force, local_particles, local_molecules, molecule_kind_set, molecule_set, subsys, cp_subsys, virial, results, atprop, nkind, natom, dft_control, dbcsr_dist, distribution_2d, pw_env, para_env, blacs_env, nelectron_total, nelectron_spin)
...
subroutine, public qs_subsys_get(subsys, atomic_kinds, atomic_kind_set, particles, particle_set, local_particles, molecules, molecule_set, molecule_kinds, molecule_kind_set, local_molecules, para_env, colvar_p, shell_particles, core_particles, gci, multipoles, natom, nparticle, ncore, nshell, nkind, atprop, virial, results, cell, cell_ref, use_ref_cell, energy, force, qs_kind_set, cp_subsys, nelectron_total, nelectron_spin)
...