112 SUBROUTINE mixing_allocate(qs_env, mixing_method, p_mix_new, p_delta, nspins, mixing_store)
114 INTEGER :: mixing_method
116 POINTER :: p_mix_new, p_delta
117 INTEGER,
INTENT(IN) :: nspins
120 CHARACTER(LEN=*),
PARAMETER :: routinen =
'mixing_allocate'
122 INTEGER :: handle, i, ia, iat, ic, ikind, ispin, &
123 max_shell, na, natom, nbuffer, nel, &
125 LOGICAL :: charge_mixing
126 TYPE(
dbcsr_p_type),
DIMENSION(:, :),
POINTER :: matrix_s
134 CALL timeset(routinen, handle)
136 NULLIFY (matrix_s, dft_control, sab_orb, refmatrix, rho_atom)
139 matrix_s_kp=matrix_s, &
140 dft_control=dft_control)
142 charge_mixing = dft_control%qs_control%dftb .OR. dft_control%qs_control%xtb &
143 .OR. dft_control%qs_control%semi_empirical
144 refmatrix => matrix_s(1, 1)%matrix
145 nimg = dft_control%nimages
148 IF (
PRESENT(p_mix_new))
THEN
149 IF (.NOT.
ASSOCIATED(p_mix_new))
THEN
153 ALLOCATE (p_mix_new(i, ic)%matrix)
154 CALL dbcsr_create(matrix=p_mix_new(i, ic)%matrix, template=refmatrix, &
155 name=
"SCF DENSITY", matrix_type=dbcsr_type_symmetric)
157 CALL dbcsr_set(p_mix_new(i, ic)%matrix, 0.0_dp)
164 IF (
PRESENT(p_delta))
THEN
166 IF (.NOT.
ASSOCIATED(p_delta))
THEN
170 ALLOCATE (p_delta(i, ic)%matrix)
171 CALL dbcsr_create(matrix=p_delta(i, ic)%matrix, template=refmatrix, &
172 name=
"SCF DENSITY", matrix_type=dbcsr_type_symmetric)
174 CALL dbcsr_set(p_delta(i, ic)%matrix, 0.0_dp)
178 cpassert(
ASSOCIATED(mixing_store))
182 IF (charge_mixing)
THEN
185 cpassert(.NOT. mixing_store%gmix_p)
186 IF (dft_control%qs_control%dftb)
THEN
187 max_shell = max_dftb_scc_vars
188 ELSEIF (dft_control%qs_control%xtb)
THEN
189 max_shell = max_xtb_scc_vars
191 cpabort(
'UNKNOWN METHOD')
193 nbuffer = mixing_store%nbuffer
194 mixing_store%ncall = 0
195 CALL get_qs_env(qs_env, local_particles=distribution_1d)
196 nkind =
SIZE(distribution_1d%n_el)
197 na = sum(distribution_1d%n_el(:))
198 IF (
ASSOCIATED(mixing_store%atlist))
DEALLOCATE (mixing_store%atlist)
199 ALLOCATE (mixing_store%atlist(na))
200 mixing_store%nat_local = na
201 mixing_store%max_shell = max_shell
204 nel = distribution_1d%n_el(ikind)
207 mixing_store%atlist(ia) = distribution_1d%list(ikind)%array(iat)
210 IF (
ASSOCIATED(mixing_store%acharge))
DEALLOCATE (mixing_store%acharge)
211 ALLOCATE (mixing_store%acharge(na, max_shell, nbuffer))
212 IF (
ASSOCIATED(mixing_store%dacharge))
DEALLOCATE (mixing_store%dacharge)
213 ALLOCATE (mixing_store%dacharge(na, max_shell, nbuffer))
216 IF (
ASSOCIATED(mixing_store%pulay_matrix))
DEALLOCATE (mixing_store%pulay_matrix)
217 ALLOCATE (mixing_store%pulay_matrix(nbuffer, nbuffer, nspins))
218 mixing_store%pulay_matrix = 0.0_dp
220 IF (
ASSOCIATED(mixing_store%abroy))
DEALLOCATE (mixing_store%abroy)
221 ALLOCATE (mixing_store%abroy(nbuffer, nbuffer))
222 mixing_store%abroy = 0.0_dp
223 IF (
ASSOCIATED(mixing_store%wbroy))
DEALLOCATE (mixing_store%wbroy)
224 ALLOCATE (mixing_store%wbroy(nbuffer))
225 mixing_store%wbroy = 0.0_dp
226 IF (
ASSOCIATED(mixing_store%dfbroy))
DEALLOCATE (mixing_store%dfbroy)
227 ALLOCATE (mixing_store%dfbroy(na, max_shell, nbuffer))
228 mixing_store%dfbroy = 0.0_dp
229 IF (
ASSOCIATED(mixing_store%ubroy))
DEALLOCATE (mixing_store%ubroy)
230 ALLOCATE (mixing_store%ubroy(na, max_shell, nbuffer))
231 mixing_store%ubroy = 0.0_dp
233 cpabort(
"multisecant_mixing not available")
238 nbuffer = mixing_store%nbuffer
239 mixing_store%ncall = 0
240 IF (.NOT.
ASSOCIATED(mixing_store%rhoin))
THEN
241 ALLOCATE (mixing_store%rhoin(nspins))
243 NULLIFY (mixing_store%rhoin(ispin)%cc)
247 IF (mixing_store%gmix_p .AND. dft_control%qs_control%gapw)
THEN
248 CALL get_qs_env(qs_env=qs_env, rho_atom_set=rho_atom)
249 natom =
SIZE(rho_atom)
250 IF (.NOT.
ASSOCIATED(mixing_store%paw))
THEN
251 ALLOCATE (mixing_store%paw(natom))
252 mixing_store%paw = .false.
253 ALLOCATE (mixing_store%cpc_h_in(natom, nspins))
254 ALLOCATE (mixing_store%cpc_s_in(natom, nspins))
257 NULLIFY (mixing_store%cpc_h_in(iat, ispin)%r_coef)
258 NULLIFY (mixing_store%cpc_s_in(iat, ispin)%r_coef)
267 IF (.NOT.
ASSOCIATED(mixing_store%res_buffer))
THEN
268 ALLOCATE (mixing_store%res_buffer(nbuffer, nspins))
271 NULLIFY (mixing_store%res_buffer(i, ispin)%cc)
279 IF (.NOT.
ASSOCIATED(mixing_store%pulay_matrix))
THEN
280 ALLOCATE (mixing_store%pulay_matrix(nbuffer, nbuffer, nspins))
283 IF (.NOT.
ASSOCIATED(mixing_store%rhoin_buffer))
THEN
284 ALLOCATE (mixing_store%rhoin_buffer(nbuffer, nspins))
287 NULLIFY (mixing_store%rhoin_buffer(i, ispin)%cc)
291 IF (mixing_store%gmix_p)
THEN
292 IF (dft_control%qs_control%gapw)
THEN
293 IF (.NOT.
ASSOCIATED(mixing_store%cpc_h_in_buffer))
THEN
294 ALLOCATE (mixing_store%cpc_h_in_buffer(nbuffer, natom, nspins))
295 ALLOCATE (mixing_store%cpc_s_in_buffer(nbuffer, natom, nspins))
296 ALLOCATE (mixing_store%cpc_h_res_buffer(nbuffer, natom, nspins))
297 ALLOCATE (mixing_store%cpc_s_res_buffer(nbuffer, natom, nspins))
301 NULLIFY (mixing_store%cpc_h_in_buffer(i, iat, ispin)%r_coef)
302 NULLIFY (mixing_store%cpc_s_in_buffer(i, iat, ispin)%r_coef)
303 NULLIFY (mixing_store%cpc_h_res_buffer(i, iat, ispin)%r_coef)
304 NULLIFY (mixing_store%cpc_s_res_buffer(i, iat, ispin)%r_coef)
315 IF (.NOT.
ASSOCIATED(mixing_store%rhoin_old))
THEN
316 ALLOCATE (mixing_store%rhoin_old(nspins))
318 NULLIFY (mixing_store%rhoin_old(ispin)%cc)
321 IF (.NOT.
ASSOCIATED(mixing_store%drho_buffer))
THEN
322 ALLOCATE (mixing_store%drho_buffer(nbuffer, nspins))
323 ALLOCATE (mixing_store%last_res(nspins))
326 NULLIFY (mixing_store%drho_buffer(i, ispin)%cc)
328 NULLIFY (mixing_store%last_res(ispin)%cc)
332 IF (.NOT.
ASSOCIATED(mixing_store%weight))
THEN
333 ALLOCATE (mixing_store%weight(nbuffer, nspins))
335 mixing_store%weight = 0.0_dp
337 IF (mixing_store%gmix_p)
THEN
339 IF (dft_control%qs_control%gapw)
THEN
340 IF (.NOT.
ASSOCIATED(mixing_store%cpc_h_old))
THEN
341 ALLOCATE (mixing_store%cpc_h_old(natom, nspins))
342 ALLOCATE (mixing_store%cpc_s_old(natom, nspins))
345 NULLIFY (mixing_store%cpc_h_old(iat, ispin)%r_coef)
346 NULLIFY (mixing_store%cpc_s_old(iat, ispin)%r_coef)
350 IF (.NOT.
ASSOCIATED(mixing_store%dcpc_h_in))
THEN
351 ALLOCATE (mixing_store%dcpc_h_in(nbuffer, natom, nspins))
352 ALLOCATE (mixing_store%dcpc_s_in(nbuffer, natom, nspins))
353 ALLOCATE (mixing_store%cpc_h_lastres(natom, nspins))
354 ALLOCATE (mixing_store%cpc_s_lastres(natom, nspins))
358 NULLIFY (mixing_store%dcpc_h_in(i, iat, ispin)%r_coef)
359 NULLIFY (mixing_store%dcpc_s_in(i, iat, ispin)%r_coef)
361 NULLIFY (mixing_store%cpc_h_lastres(iat, ispin)%r_coef)
362 NULLIFY (mixing_store%cpc_s_lastres(iat, ispin)%r_coef)
372 IF (.NOT.
ASSOCIATED(mixing_store%norm_res_buffer))
THEN
373 ALLOCATE (mixing_store%norm_res_buffer(nbuffer, nspins))
378 IF (.NOT.
ASSOCIATED(mixing_store%rhoin_buffer))
THEN
379 ALLOCATE (mixing_store%rhoin_buffer(nbuffer, nspins))
382 NULLIFY (mixing_store%rhoin_buffer(i, ispin)%cc)
390 CALL timestop(handle)
405 SUBROUTINE mixing_init(mixing_method, rho, mixing_store, para_env, rho_atom)
406 INTEGER,
INTENT(IN) :: mixing_method
413 CHARACTER(len=*),
PARAMETER :: routinen =
'mixing_init'
415 INTEGER :: handle, iat, ib, icoef1, icoef2, ig, ig1, ig_count, iproc, ispin, n1, n2, natom, &
416 nbuffer, ncoef_h1, ncoef_h2, ncoef_s1, ncoef_s2, ng, nimg, nspin
417 REAL(
dp) :: bconst, beta, cpc_h_tmp, cpc_s_tmp, &
418 fdamp, g2max, g2min, kmin
419 REAL(
dp),
DIMENSION(:),
POINTER :: g2
420 REAL(
dp),
DIMENSION(:, :),
POINTER :: g_vec
421 TYPE(
dbcsr_p_type),
DIMENSION(:, :),
POINTER :: rho_ao_kp
424 CALL timeset(routinen, handle)
426 NULLIFY (g2, g_vec, rho_ao_kp, rho_g)
427 CALL qs_rho_get(rho, rho_ao_kp=rho_ao_kp, rho_g=rho_g)
430 ng =
SIZE(rho_g(1)%pw_grid%gsq, 1)
431 nimg =
SIZE(rho_ao_kp, 2)
432 mixing_store%ig_max = ng
433 g2 => rho_g(1)%pw_grid%gsq
434 g_vec => rho_g(1)%pw_grid%g
436 IF (mixing_store%max_gvec_exp > 0._dp)
THEN
438 IF (g2(ig) > mixing_store%max_g2)
THEN
439 mixing_store%ig_max = ig
445 IF (.NOT.
ASSOCIATED(mixing_store%kerker_factor))
THEN
446 ALLOCATE (mixing_store%kerker_factor(ng))
448 IF (.NOT.
ASSOCIATED(mixing_store%kerker_factor_mag))
THEN
449 ALLOCATE (mixing_store%kerker_factor_mag(ng))
451 IF (.NOT.
ASSOCIATED(mixing_store%special_metric))
THEN
452 ALLOCATE (mixing_store%special_metric(ng))
454 beta = mixing_store%beta
456 mixing_store%kerker_factor = 1.0_dp
457 mixing_store%kerker_factor_mag = 1.0_dp
458 mixing_store%special_metric = 1.0_dp
460 IF (rho_g(1)%pw_grid%have_g0) ig1 = 2
461 DO ig = ig1, mixing_store%ig_max
462 mixing_store%kerker_factor(ig) = max(g2(ig)/(g2(ig) + beta*beta), kmin)
463 IF (mixing_store%beta_mag > 1.0e-10_dp)
THEN
464 mixing_store%kerker_factor_mag(ig) = max(g2(ig)/(g2(ig) + mixing_store%beta_mag*mixing_store%beta_mag), kmin)
467 mixing_store%kerker_factor_mag(ig) = 1.0_dp
469 mixing_store%special_metric(ig) = &
470 1.0_dp + 50.0_dp/8.0_dp*( &
471 1.0_dp + cos(g_vec(1, ig)) + cos(g_vec(2, ig)) + cos(g_vec(3, ig)) + &
472 cos(g_vec(1, ig))*cos(g_vec(2, ig)) + &
473 cos(g_vec(2, ig))*cos(g_vec(3, ig)) + &
474 cos(g_vec(1, ig))*cos(g_vec(3, ig)) + &
475 cos(g_vec(1, ig))*cos(g_vec(2, ig))*cos(g_vec(3, ig)))
478 nbuffer = mixing_store%nbuffer
480 IF (.NOT.
ASSOCIATED(mixing_store%rhoin(ispin)%cc))
THEN
481 ALLOCATE (mixing_store%rhoin(ispin)%cc(ng))
483 mixing_store%rhoin(ispin)%cc = rho_g(ispin)%array
485 IF (
ASSOCIATED(mixing_store%rhoin_buffer))
THEN
486 IF (.NOT.
ASSOCIATED(mixing_store%rhoin_buffer(1, ispin)%cc))
THEN
488 ALLOCATE (mixing_store%rhoin_buffer(ib, ispin)%cc(ng))
491 mixing_store%rhoin_buffer(1, ispin)%cc(1:ng) = &
492 rho_g(ispin)%array(1:ng)
494 IF (
ASSOCIATED(mixing_store%res_buffer))
THEN
495 IF (.NOT.
ASSOCIATED(mixing_store%res_buffer(1, ispin)%cc))
THEN
497 ALLOCATE (mixing_store%res_buffer(ib, ispin)%cc(ng))
504 mixing_store%rhoin(1)%cc = rho_g(1)%array + rho_g(2)%array
505 mixing_store%rhoin(2)%cc = rho_g(1)%array - rho_g(2)%array
506 IF (
ASSOCIATED(mixing_store%rhoin_buffer))
THEN
507 mixing_store%rhoin_buffer(1, 1)%cc = rho_g(1)%array + rho_g(2)%array
508 mixing_store%rhoin_buffer(1, 2)%cc = rho_g(1)%array - rho_g(2)%array
512 IF (mixing_store%gmix_p)
THEN
513 IF (
PRESENT(rho_atom))
THEN
514 natom =
SIZE(rho_atom)
517 IF (
ASSOCIATED(rho_atom(iat)%cpc_s(ispin)%r_coef))
THEN
518 mixing_store%paw(iat) = .true.
519 n1 =
SIZE(rho_atom(iat)%cpc_s(ispin)%r_coef, 1)
520 n2 =
SIZE(rho_atom(iat)%cpc_s(ispin)%r_coef, 2)
521 IF (
ASSOCIATED(mixing_store%cpc_s_in))
THEN
522 IF (.NOT.
ASSOCIATED(mixing_store%cpc_s_in(iat, ispin)%r_coef))
THEN
523 ALLOCATE (mixing_store%cpc_s_in(iat, ispin)%r_coef(n1, n2))
524 ALLOCATE (mixing_store%cpc_h_in(iat, ispin)%r_coef(n1, n2))
526 mixing_store%cpc_h_in(iat, ispin)%r_coef = rho_atom(iat)%cpc_h(ispin)%r_coef
527 mixing_store%cpc_s_in(iat, ispin)%r_coef = rho_atom(iat)%cpc_s(ispin)%r_coef
532 IF (nspin == 2 .AND.
ASSOCIATED(mixing_store%cpc_s_in))
THEN
534 IF (mixing_store%paw(iat))
THEN
535 cpassert(
ASSOCIATED(mixing_store%cpc_h_in(iat, 1)%r_coef))
536 cpassert(
ASSOCIATED(mixing_store%cpc_h_in(iat, 2)%r_coef))
537 cpassert(
ASSOCIATED(mixing_store%cpc_s_in(iat, 1)%r_coef))
538 cpassert(
ASSOCIATED(mixing_store%cpc_s_in(iat, 2)%r_coef))
540 ncoef_h1 =
SIZE(mixing_store%cpc_h_in(iat, 1)%r_coef, 1)
541 ncoef_h2 =
SIZE(mixing_store%cpc_h_in(iat, 1)%r_coef, 2)
542 ncoef_s1 =
SIZE(mixing_store%cpc_s_in(iat, 1)%r_coef, 1)
543 ncoef_s2 =
SIZE(mixing_store%cpc_s_in(iat, 1)%r_coef, 2)
544 cpassert(ncoef_h1 ==
SIZE(mixing_store%cpc_h_in(iat, 2)%r_coef, 1))
545 cpassert(ncoef_h2 ==
SIZE(mixing_store%cpc_h_in(iat, 2)%r_coef, 2))
546 cpassert(ncoef_s1 ==
SIZE(mixing_store%cpc_s_in(iat, 2)%r_coef, 1))
547 cpassert(ncoef_s2 ==
SIZE(mixing_store%cpc_s_in(iat, 2)%r_coef, 2))
549 DO icoef2 = 1, ncoef_h2
550 DO icoef1 = 1, ncoef_h1
551 cpc_h_tmp = mixing_store%cpc_h_in(iat, 1)%r_coef(icoef1, icoef2)
552 mixing_store%cpc_h_in(iat, 1)%r_coef(icoef1, icoef2) = &
553 cpc_h_tmp + mixing_store%cpc_h_in(iat, 2)%r_coef(icoef1, icoef2)
554 mixing_store%cpc_h_in(iat, 2)%r_coef(icoef1, icoef2) = &
555 cpc_h_tmp - mixing_store%cpc_h_in(iat, 2)%r_coef(icoef1, icoef2)
559 DO icoef2 = 1, ncoef_s2
560 DO icoef1 = 1, ncoef_s1
561 cpc_s_tmp = mixing_store%cpc_s_in(iat, 1)%r_coef(icoef1, icoef2)
562 mixing_store%cpc_s_in(iat, 1)%r_coef(icoef1, icoef2) = &
563 cpc_s_tmp + mixing_store%cpc_s_in(iat, 2)%r_coef(icoef1, icoef2)
564 mixing_store%cpc_s_in(iat, 2)%r_coef(icoef1, icoef2) = &
565 cpc_s_tmp - mixing_store%cpc_s_in(iat, 2)%r_coef(icoef1, icoef2)
576 IF (mixing_store%gmix_p .AND.
PRESENT(rho_atom))
THEN
579 IF (mixing_store%paw(iat))
THEN
580 n1 =
SIZE(rho_atom(iat)%cpc_s(ispin)%r_coef, 1)
581 n2 =
SIZE(rho_atom(iat)%cpc_s(ispin)%r_coef, 2)
582 IF (.NOT.
ASSOCIATED(mixing_store%cpc_h_in_buffer(1, iat, ispin)%r_coef))
THEN
584 ALLOCATE (mixing_store%cpc_s_in_buffer(ib, iat, ispin)%r_coef(n1, n2))
585 ALLOCATE (mixing_store%cpc_h_in_buffer(ib, iat, ispin)%r_coef(n1, n2))
586 ALLOCATE (mixing_store%cpc_s_res_buffer(ib, iat, ispin)%r_coef(n1, n2))
587 ALLOCATE (mixing_store%cpc_h_res_buffer(ib, iat, ispin)%r_coef(n1, n2))
591 mixing_store%cpc_h_in_buffer(ib, iat, ispin)%r_coef = 0.0_dp
592 mixing_store%cpc_s_in_buffer(ib, iat, ispin)%r_coef = 0.0_dp
593 mixing_store%cpc_h_res_buffer(ib, iat, ispin)%r_coef = 0.0_dp
594 mixing_store%cpc_s_res_buffer(ib, iat, ispin)%r_coef = 0.0_dp
602 IF (.NOT.
ASSOCIATED(mixing_store%rhoin_old(ispin)%cc))
THEN
603 ALLOCATE (mixing_store%rhoin_old(ispin)%cc(ng))
605 IF (.NOT.
ASSOCIATED(mixing_store%drho_buffer(1, ispin)%cc))
THEN
607 ALLOCATE (mixing_store%drho_buffer(ib, ispin)%cc(ng))
609 ALLOCATE (mixing_store%last_res(ispin)%cc(ng))
612 mixing_store%drho_buffer(ib, ispin)%cc =
z_zero
614 mixing_store%last_res(ispin)%cc =
z_zero
615 mixing_store%rhoin_old(ispin)%cc =
z_zero
617 IF (mixing_store%gmix_p)
THEN
618 IF (
PRESENT(rho_atom))
THEN
621 IF (mixing_store%paw(iat))
THEN
622 n1 =
SIZE(rho_atom(iat)%cpc_s(ispin)%r_coef, 1)
623 n2 =
SIZE(rho_atom(iat)%cpc_s(ispin)%r_coef, 2)
624 IF (.NOT.
ASSOCIATED(mixing_store%cpc_s_old(iat, ispin)%r_coef))
THEN
625 ALLOCATE (mixing_store%cpc_s_old(iat, ispin)%r_coef(n1, n2))
626 ALLOCATE (mixing_store%cpc_h_old(iat, ispin)%r_coef(n1, n2))
628 mixing_store%cpc_h_old(iat, ispin)%r_coef = 0.0_dp
629 mixing_store%cpc_s_old(iat, ispin)%r_coef = 0.0_dp
630 IF (.NOT.
ASSOCIATED(mixing_store%dcpc_s_in(1, iat, ispin)%r_coef))
THEN
632 ALLOCATE (mixing_store%dcpc_h_in(ib, iat, ispin)%r_coef(n1, n2))
633 ALLOCATE (mixing_store%dcpc_s_in(ib, iat, ispin)%r_coef(n1, n2))
635 ALLOCATE (mixing_store%cpc_h_lastres(iat, ispin)%r_coef(n1, n2))
636 ALLOCATE (mixing_store%cpc_s_lastres(iat, ispin)%r_coef(n1, n2))
639 mixing_store%dcpc_h_in(ib, iat, ispin)%r_coef = 0.0_dp
640 mixing_store%dcpc_s_in(ib, iat, ispin)%r_coef = 0.0_dp
642 mixing_store%cpc_h_lastres(iat, ispin)%r_coef = 0.0_dp
643 mixing_store%cpc_s_lastres(iat, ispin)%r_coef = 0.0_dp
650 IF (.NOT.
ASSOCIATED(mixing_store%p_metric))
THEN
651 ALLOCATE (mixing_store%p_metric(ng))
652 bconst = mixing_store%bconst
655 IF (g2(ig) > 1.e-10_dp) g2min = min(g2min, g2(ig))
659 g2max = max(g2max, g2(ig))
661 CALL para_env%min(g2min)
662 CALL para_env%max(g2max)
666 fdamp = (bconst - 1.0_dp)*g2min*g2max/(g2max - g2min*bconst)
668 mixing_store%p_metric(ig) = (g2(ig) + fdamp)/max(g2(ig), 1.e-10_dp)
670 IF (rho_g(1)%pw_grid%have_g0) mixing_store%p_metric(1) = bconst
673 IF (.NOT.
ASSOCIATED(mixing_store%ig_global_index))
THEN
674 ALLOCATE (mixing_store%ig_global_index(ng))
676 mixing_store%ig_global_index = 0
678 DO iproc = 0, para_env%num_pe - 1
679 IF (para_env%mepos == iproc)
THEN
681 ig_count = ig_count + 1
682 mixing_store%ig_global_index(ig) = ig_count
685 CALL para_env%bcast(ig_count, iproc)
689 CALL timestop(handle)
subroutine, public get_qs_env(qs_env, atomic_kind_set, qs_kind_set, cell, super_cell, cell_ref, use_ref_cell, kpoints, dft_control, mos, sab_orb, sab_all, qmmm, qmmm_periodic, mimic, sac_ae, sac_ppl, sac_lri, sap_ppnl, sab_vdw, sab_scp, sap_oce, sab_lrc, sab_se, sab_xtbe, sab_tbe, sab_core, sab_xb, sab_xtb_pp, sab_xtb_nonbond, sab_almo, sab_kp, sab_kp_nosym, sab_cneo, particle_set, energy, force, matrix_h, matrix_h_im, matrix_ks, matrix_ks_im, matrix_vxc, run_rtp, rtp, matrix_h_kp, matrix_h_im_kp, matrix_ks_kp, matrix_ks_im_kp, matrix_vxc_kp, kinetic_kp, matrix_s_kp, matrix_w_kp, matrix_s_ri_aux_kp, matrix_s, matrix_s_ri_aux, matrix_w, matrix_p_mp2, matrix_p_mp2_admm, rho, rho_xc, pw_env, ewald_env, ewald_pw, active_space, mpools, input, para_env, blacs_env, scf_control, rel_control, kinetic, qs_charges, vppl, xcint_weights, rho_core, rho_nlcc, rho_nlcc_g, ks_env, ks_qmmm_env, wf_history, scf_env, local_particles, local_molecules, distribution_2d, dbcsr_dist, molecule_kind_set, molecule_set, subsys, cp_subsys, oce, local_rho_set, rho_atom_set, task_list, task_list_soft, rho0_atom_set, rho0_mpole, rhoz_set, rhoz_cneo_set, ecoul_1c, rho0_s_rs, rho0_s_gs, rhoz_cneo_s_rs, rhoz_cneo_s_gs, do_kpoints, has_unit_metric, requires_mo_derivs, mo_derivs, mo_loc_history, nkind, natom, nelectron_total, nelectron_spin, efield, neighbor_list_id, linres_control, xas_env, virial, cp_ddapc_env, cp_ddapc_ewald, outer_scf_history, outer_scf_ihistory, x_data, et_coupling, dftb_potential, results, se_taper, se_store_int_env, se_nddo_mpole, se_nonbond_env, admm_env, lri_env, lri_density, exstate_env, ec_env, harris_env, dispersion_env, gcp_env, vee, rho_external, external_vxc, mask, mp2_env, bs_env, kg_env, wanniercentres, atprop, ls_scf_env, do_transport, transport_env, v_hartree_rspace, s_mstruct_changed, rho_changed, potential_changed, forces_up_to_date, mscfg_env, almo_scf_env, gradient_history, variable_history, embed_pot, spin_embed_pot, polar_env, mos_last_converged, eeq, rhs, do_rixs, tb_tblite)
Get the QUICKSTEP environment.