109 CHARACTER(LEN=default_string_length) :: ext, filename
110 COMPLEX(KIND=dp) :: gtemp
111 INTEGER :: bo_atom(2), ia, iat, iatom, idir, iexp, &
112 ig, ikind, ir, iso, ispin, ix, iy, iz, &
113 natom, nexp_ppl, nkind, nspins, &
115 INTEGER,
DIMENSION(2, 3) :: bo
116 INTEGER,
DIMENSION(:),
POINTER :: atom_list
117 LOGICAL :: gapw, gapw_xc, gth_gspace, ionode, &
118 make_soft, mpi_io, paw_atom
119 REAL(kind=
dp) :: alpha, alpha_core, arg, charge, ehartree, exc, exc1, exp_rap, &
120 gapw_max_alpha, hard_radius, hard_value, soft_value, sqrt_alpha, sqrt_rap
121 REAL(kind=
dp),
ALLOCATABLE,
DIMENSION(:, :) :: vh1_rad_h, vh1_rad_s
122 REAL(kind=
dp),
DIMENSION(3) :: rap, ratom, roffset, rpoint
123 REAL(kind=
dp),
DIMENSION(:),
POINTER :: cexp_ppl, rho_rad_z
124 REAL(kind=
dp),
DIMENSION(:, :),
POINTER :: rho_rad_0
142 v_coulomb_gtemp, v_hartree_gspace, &
143 v_hartree_gtemp, v_xc_gtemp
149 TYPE(
pw_r3d_rs_type),
DIMENSION(:),
POINTER :: rho1_r, rho2_r, rho_r, v_rspace_new, &
152 TYPE(
qs_kind_type),
DIMENSION(:),
POINTER :: qs_kind_set
154 TYPE(
qs_rho_p_type),
DIMENSION(:, :),
POINTER :: nablavks_set
158 TYPE(
rho_atom_coeff),
DIMENSION(:),
POINTER :: rho_rad_h, rho_rad_s
159 TYPE(
rho_atom_coeff),
DIMENSION(:, :),
POINTER :: nablavks_vec_rad_h, nablavks_vec_rad_s
162 TYPE(
rhoz_type),
DIMENSION(:),
POINTER :: rhoz_set
173 NULLIFY (auxbas_pw_pool)
175 NULLIFY (dft_control)
179 NULLIFY (nablavks_set)
180 NULLIFY (nablavks_atom_set)
181 NULLIFY (nablavks_vec_rad_h)
182 NULLIFY (nablavks_vec_rad_s)
184 NULLIFY (particle_set)
186 NULLIFY (poisson_env)
193 NULLIFY (rho0_atom_set)
194 NULLIFY (rho_atom_set)
197 NULLIFY (v_rspace_new)
198 NULLIFY (v_tau_rspace)
202 NULLIFY (rho_r, rho_ao, rho1_r, rho2_r)
203 NULLIFY (oce, qs_kind_set, sab)
207 ionode = logger%para_env%is_source()
210 extension=
".linresLog")
217 "EPR%PRINT%G_TENSOR")
227 CALL get_epr_env(epr_env, nablavks_set=nablavks_set, &
228 nablavks_atom_set=nablavks_atom_set)
231 DO ispin = 1,
SIZE(nablavks_set, 2)
232 DO idir = 1,
SIZE(nablavks_set, 1)
233 CALL qs_rho_get(nablavks_set(idir, ispin)%rho, rho_r=rho_r)
238 CALL qs_rho_get(nablavks_set(1, 1)%rho, rho_r=rho_r)
240 CALL qs_rho_get(nablavks_set(2, 1)%rho, rho_r=rho_r)
242 CALL qs_rho_get(nablavks_set(3, 1)%rho, rho_r=rho_r)
245 roffset = -real(
modulo(pwx%pw_grid%npts, 2),
dp)*pwx%pw_grid%dr/2.0_dp
252 atomic_kind_set=atomic_kind_set, &
253 qs_kind_set=qs_kind_set, &
256 dft_control=dft_control, &
258 particle_set=particle_set, &
262 rho_atom_set=rho_atom_set, &
263 rho0_atom_set=rho0_atom_set, &
267 oce=oce, sab_orb=sab)
269 CALL pw_env_get(pw_env, auxbas_pw_pool=auxbas_pw_pool, &
270 poisson_env=poisson_env)
274 gapw = dft_control%qs_control%gapw
275 gapw_xc = dft_control%qs_control%gapw_xc
276 nkind =
SIZE(atomic_kind_set)
277 nspins = dft_control%nspins
283 CALL auxbas_pw_pool%create_pw(v_hartree_gspace)
284 CALL auxbas_pw_pool%create_pw(v_hartree_gtemp)
285 CALL auxbas_pw_pool%create_pw(v_hartree_rtemp)
286 CALL auxbas_pw_pool%create_pw(rho_tot_gspace)
299 skip_nuclear_density=.NOT. gapw)
317 rho_rad_z => rhoz_set(ikind)%r_coef
319 CALL get_atomic_kind(atomic_kind_set(ikind), atom_list=atom_list, natom=natom)
321 grid_atom=grid_atom, &
322 harmonics=harmonics, &
323 hard_radius=hard_radius, &
326 alpha_core_charge=alpha_core)
330 ALLOCATE (vh1_rad_h(grid_atom%nr, harmonics%max_iso_not0))
331 ALLOCATE (vh1_rad_s(grid_atom%nr, harmonics%max_iso_not0))
354 bo_atom =
get_limit(natom, para_env%num_pe, para_env%mepos)
356 DO iat = bo_atom(1), bo_atom(2)
358 iatom = atom_list(iat)
359 ratom = particle_set(iatom)%r
361 nablavks_vec_rad_h => nablavks_atom_set(iatom)%nablavks_vec_rad_h
362 nablavks_vec_rad_s => nablavks_atom_set(iatom)%nablavks_vec_rad_s
366 nablavks_vec_rad_h(idir, ispin)%r_coef(:, :) = 0.0_dp
367 nablavks_vec_rad_s(idir, ispin)%r_coef(:, :) = 0.0_dp
371 rho_atom => rho_atom_set(iatom)
372 NULLIFY (rho_rad_h, rho_rad_s, rho_rad_0)
373 CALL get_rho_atom(rho_atom=rho_atom, rho_rad_h=rho_rad_h, &
375 rho_rad_0 => rho0_atom_set(iatom)%rho0_rad_h%r_coef
379 CALL calculate_vh_1center(vh1_rad_h, vh1_rad_s, rho_rad_h, rho_rad_s, rho_rad_0, rho_rad_z, grid_atom)
381 DO ir = 2, grid_atom%nr
383 IF (grid_atom%rad(ir) >= hard_radius) cycle
385 DO ia = 1, grid_atom%ng_sphere
391 DO iso = 1, harmonics%max_iso_not0
392 hard_value = hard_value + &
393 vh1_rad_h(ir, iso)*harmonics%dslm_dxyz(idir, ia, iso) + &
394 harmonics%slm(ia, iso)* &
395 (vh1_rad_h(ir - 1, iso) - vh1_rad_h(ir, iso))/ &
396 (grid_atom%rad(ir - 1) - grid_atom%rad(ir))* &
397 (harmonics%a(idir, ia))
399 nablavks_vec_rad_h(idir, 1)%r_coef(ir, ia) = hard_value
406 DO iso = 1, harmonics%max_iso_not0
407 soft_value = soft_value + &
408 vh1_rad_s(ir, iso)*harmonics%dslm_dxyz(idir, ia, iso) + &
409 harmonics%slm(ia, iso)* &
410 (vh1_rad_s(ir - 1, iso) - vh1_rad_s(ir, iso))/ &
411 (grid_atom%rad(ir - 1) - grid_atom%rad(ir))* &
412 (harmonics%a(idir, ia))
414 nablavks_vec_rad_s(idir, 1)%r_coef(ir, ia) = soft_value
422 nablavks_vec_rad_h(idir, 2)%r_coef(:, :) = nablavks_vec_rad_h(idir, 1)%r_coef(:, :)
423 nablavks_vec_rad_s(idir, 2)%r_coef(:, :) = nablavks_vec_rad_s(idir, 1)%r_coef(:, :)
428 DEALLOCATE (vh1_rad_h)
429 DEALLOCATE (vh1_rad_s)
437 CALL pw_copy(v_hartree_gspace, v_hartree_gtemp)
438 CALL pw_derive(v_hartree_gtemp, (/1, 0, 0/))
440 CALL pw_copy(v_hartree_rtemp, pwx)
442 CALL pw_copy(v_hartree_gspace, v_hartree_gtemp)
443 CALL pw_derive(v_hartree_gtemp, (/0, 1, 0/))
445 CALL pw_copy(v_hartree_rtemp, pwy)
447 CALL pw_copy(v_hartree_gspace, v_hartree_gtemp)
448 CALL pw_derive(v_hartree_gtemp, (/0, 0, 1/))
450 CALL pw_copy(v_hartree_rtemp, pwz)
452 CALL auxbas_pw_pool%give_back_pw(v_hartree_gspace)
453 CALL auxbas_pw_pool%give_back_pw(v_hartree_gtemp)
454 CALL auxbas_pw_pool%give_back_pw(v_hartree_rtemp)
455 CALL auxbas_pw_pool%give_back_pw(rho_tot_gspace)
467 CALL get_atomic_kind(atomic_kind_set(ikind), atom_list=atom_list, natom=natom)
469 grid_atom=grid_atom, &
470 harmonics=harmonics, &
471 hard_radius=hard_radius, &
472 gth_potential=gth_potential, &
473 sgp_potential=sgp_potential, &
474 all_potential=all_potential, &
477 IF (
ASSOCIATED(gth_potential))
THEN
487 sqrt_alpha = sqrt(alpha)
489 IF (gapw .AND. paw_atom .AND. alpha > gapw_max_alpha)
THEN
501 CALL auxbas_pw_pool%create_pw(v_coulomb_gspace)
502 CALL auxbas_pw_pool%create_pw(v_coulomb_gtemp)
503 CALL auxbas_pw_pool%create_pw(v_coulomb_rtemp)
509 iatom = atom_list(iat)
510 ratom = particle_set(iatom)%r
512 DO ig = v_coulomb_gspace%pw_grid%first_gne0, v_coulomb_gspace%pw_grid%ngpts_cut_local
518 IF (.NOT. make_soft)
THEN
520 SELECT CASE (nexp_ppl)
523 (
twopi)**(1.5_dp)/(cell%deth*(2.0_dp*alpha)**(1.5_dp))* &
524 exp(-v_coulomb_gspace%pw_grid%gsq(ig)/(4.0_dp*alpha))*( &
530 (
twopi)**(1.5_dp)/(cell%deth*(2.0_dp*alpha)**(1.5_dp))* &
531 exp(-v_coulomb_gspace%pw_grid%gsq(ig)/(4.0_dp*alpha))*( &
535 + cexp_ppl(2)/(2.0_dp*alpha)* &
536 (3.0_dp - v_coulomb_gspace%pw_grid%gsq(ig)/(2.0_dp*alpha)) &
540 (
twopi)**(1.5_dp)/(cell%deth*(2.0_dp*alpha)**(1.5_dp))* &
541 exp(-v_coulomb_gspace%pw_grid%gsq(ig)/(4.0_dp*alpha))*( &
545 + cexp_ppl(2)/(2.0_dp*alpha)* &
546 (3.0_dp - v_coulomb_gspace%pw_grid%gsq(ig)/(2.0_dp*alpha)) &
548 + cexp_ppl(3)/(2.0_dp*alpha)**2* &
549 (15.0_dp - 10.0_dp*v_coulomb_gspace%pw_grid%gsq(ig)/(2.0_dp*alpha) &
550 + (v_coulomb_gspace%pw_grid%gsq(ig)/(2.0_dp*alpha))**2) &
554 (
twopi)**(1.5_dp)/(cell%deth*(2.0_dp*alpha)**(1.5_dp))* &
555 exp(-v_coulomb_gspace%pw_grid%gsq(ig)/(4.0_dp*alpha))*( &
559 + cexp_ppl(2)/(2.0_dp*alpha)* &
560 (3.0_dp - v_coulomb_gspace%pw_grid%gsq(ig)/(2.0_dp*alpha)) &
562 + cexp_ppl(3)/(2.0_dp*alpha)**2* &
563 (15.0_dp - 10.0_dp*v_coulomb_gspace%pw_grid%gsq(ig)/(2.0_dp*alpha) &
564 + (v_coulomb_gspace%pw_grid%gsq(ig)/(2.0_dp*alpha))**2) &
566 + cexp_ppl(4)/(2.0_dp*alpha)**3* &
567 (105.0_dp - 105.0_dp*v_coulomb_gspace%pw_grid%gsq(ig)/(2.0_dp*alpha) &
568 + 21.0_dp*(v_coulomb_gspace%pw_grid%gsq(ig)/(2.0_dp*alpha))**2 &
569 - (v_coulomb_gspace%pw_grid%gsq(ig)/(2.0_dp*alpha))**3) &
575 arg = dot_product(v_coulomb_gspace%pw_grid%g(:, ig), ratom)
577 gtemp = gtemp*cmplx(cos(arg), -sin(arg), kind=
dp)
578 v_coulomb_gspace%array(ig) = v_coulomb_gspace%array(ig) + gtemp
580 IF (v_coulomb_gspace%pw_grid%have_g0) v_coulomb_gspace%array(1) = 0.0_dp
584 CALL pw_copy(v_coulomb_gspace, v_coulomb_gtemp)
585 CALL pw_derive(v_coulomb_gtemp, (/1, 0, 0/))
587 CALL pw_axpy(v_coulomb_rtemp, pwx)
589 CALL pw_copy(v_coulomb_gspace, v_coulomb_gtemp)
590 CALL pw_derive(v_coulomb_gtemp, (/0, 1, 0/))
592 CALL pw_axpy(v_coulomb_rtemp, pwy)
594 CALL pw_copy(v_coulomb_gspace, v_coulomb_gtemp)
595 CALL pw_derive(v_coulomb_gtemp, (/0, 0, 1/))
597 CALL pw_axpy(v_coulomb_rtemp, pwz)
599 CALL auxbas_pw_pool%give_back_pw(v_coulomb_gspace)
600 CALL auxbas_pw_pool%give_back_pw(v_coulomb_gtemp)
601 CALL auxbas_pw_pool%give_back_pw(v_coulomb_rtemp)
613 bo = pwx%pw_grid%bounds_local
617 iatom = atom_list(iat)
618 ratom = particle_set(iatom)%r
620 DO ix = bo(1, 1), bo(2, 1)
621 DO iy = bo(1, 2), bo(2, 2)
622 DO iz = bo(1, 3), bo(2, 3)
623 rpoint = (/real(ix,
dp)*pwx%pw_grid%dr(1), &
624 REAL(iy,
dp)*pwx%pw_grid%dr(2), &
625 REAL(iz,
dp)*pwx%pw_grid%dr(3)/)
626 rpoint = rpoint + roffset
628 rap(1) =
modulo(rap(1), cell%hmat(1, 1)) - cell%hmat(1, 1)/2._dp
629 rap(2) =
modulo(rap(2), cell%hmat(2, 2)) - cell%hmat(2, 2)/2._dp
630 rap(3) =
modulo(rap(3), cell%hmat(3, 3)) - cell%hmat(3, 3)/2._dp
631 sqrt_rap = sqrt(dot_product(rap, rap))
632 exp_rap = exp(-alpha*sqrt_rap**2)
633 sqrt_rap = max(sqrt_rap, 1.e-10_dp)
636 pwx%array(ix, iy, iz) = pwx%array(ix, iy, iz) + charge*( &
637 -2.0_dp*sqrt_alpha*exp(-sqrt_rap**2*sqrt_alpha**2)*rap(1) &
639 + erf(sqrt_rap*sqrt_alpha)*rap(1) &
644 pwy%array(ix, iy, iz) = pwy%array(ix, iy, iz) + charge*( &
645 -2.0_dp*sqrt_alpha*exp(-sqrt_rap**2*sqrt_alpha**2)*rap(2) &
647 + erf(sqrt_rap*sqrt_alpha)*rap(2) &
652 pwz%array(ix, iy, iz) = pwz%array(ix, iy, iz) + charge*( &
653 -2.0_dp*sqrt_alpha*exp(-sqrt_rap**2*sqrt_alpha**2)*rap(3) &
655 + erf(sqrt_rap*sqrt_alpha)*rap(3) &
662 DO iexp = 1, nexp_ppl
663 pwx%array(ix, iy, iz) = pwx%array(ix, iy, iz) + ( &
664 -2.0_dp*alpha*rap(1)*exp_rap* &
665 cexp_ppl(iexp)*(sqrt_rap**2)**(iexp - 1))
667 pwx%array(ix, iy, iz) = pwx%array(ix, iy, iz) + ( &
668 2.0_dp*exp_rap*cexp_ppl(iexp)* &
669 (sqrt_rap**2)**(iexp - 2)*real(iexp - 1,
dp)*rap(1))
675 DO iexp = 1, nexp_ppl
676 pwy%array(ix, iy, iz) = pwy%array(ix, iy, iz) + ( &
677 -2.0_dp*alpha*rap(2)*exp_rap* &
678 cexp_ppl(iexp)*(sqrt_rap**2)**(iexp - 1))
680 pwy%array(ix, iy, iz) = pwy%array(ix, iy, iz) + ( &
681 2.0_dp*exp_rap*cexp_ppl(iexp)* &
682 (sqrt_rap**2)**(iexp - 2)*real(iexp - 1,
dp)*rap(2))
688 DO iexp = 1, nexp_ppl
689 pwz%array(ix, iy, iz) = pwz%array(ix, iy, iz) + ( &
690 -2.0_dp*alpha*rap(3)*exp_rap* &
691 cexp_ppl(iexp)*(sqrt_rap**2)**(iexp - 1))
693 pwz%array(ix, iy, iz) = pwz%array(ix, iy, iz) + ( &
694 2.0_dp*exp_rap*cexp_ppl(iexp)* &
695 (sqrt_rap**2)**(iexp - 2)*real(iexp - 1,
dp)*rap(3))
709 IF (gapw .AND. paw_atom)
THEN
711 bo_atom =
get_limit(natom, para_env%num_pe, para_env%mepos)
713 DO iat = bo_atom(1), bo_atom(2)
715 iatom = atom_list(iat)
717 nablavks_vec_rad_h => nablavks_atom_set(iatom)%nablavks_vec_rad_h
718 nablavks_vec_rad_s => nablavks_atom_set(iatom)%nablavks_vec_rad_s
720 DO ir = 1, grid_atom%nr
722 IF (grid_atom%rad(ir) >= hard_radius) cycle
724 exp_rap = exp(-alpha*grid_atom%rad(ir)**2)
726 DO ia = 1, grid_atom%ng_sphere
730 hard_value = charge*( &
731 -2.0_dp*sqrt_alpha*exp(-grid_atom%rad(ir)**2*sqrt_alpha**2) &
732 *grid_atom%rad(ir)*harmonics%a(idir, ia) &
733 /(
rootpi*grid_atom%rad(ir)**2) &
734 + erf(grid_atom%rad(ir)*sqrt_alpha) &
735 *grid_atom%rad(ir)*harmonics%a(idir, ia) &
736 /grid_atom%rad(ir)**3)
737 soft_value = hard_value
738 DO iexp = 1, nexp_ppl
739 hard_value = hard_value + ( &
740 -2.0_dp*alpha*grid_atom%rad(ir)*harmonics%a(idir, ia) &
741 *exp_rap*cexp_ppl(iexp)*(grid_atom%rad(ir)**2)**(iexp - 1))
743 hard_value = hard_value + ( &
744 2.0_dp*exp_rap*cexp_ppl(iexp) &
745 *(grid_atom%rad(ir)**2)**(iexp - 2)*real(iexp - 1,
dp) &
746 *grid_atom%rad(ir)*harmonics%a(idir, ia))
749 nablavks_vec_rad_h(idir, 1)%r_coef(ir, ia) = &
750 nablavks_vec_rad_h(idir, 1)%r_coef(ir, ia) + hard_value
752 nablavks_vec_rad_s(idir, 1)%r_coef(ir, ia) = &
753 nablavks_vec_rad_s(idir, 1)%r_coef(ir, ia) + soft_value
755 nablavks_vec_rad_s(idir, 1)%r_coef(ir, ia) = &
756 nablavks_vec_rad_s(idir, 1)%r_coef(ir, ia) + hard_value
765 nablavks_vec_rad_h(idir, ispin)%r_coef(:, :) = nablavks_vec_rad_h(idir, 1)%r_coef(:, :)
766 nablavks_vec_rad_s(idir, ispin)%r_coef(:, :) = nablavks_vec_rad_s(idir, 1)%r_coef(:, :)
774 ELSE IF (
ASSOCIATED(sgp_potential))
THEN
776 cpabort(
"EPR with SGP potentials is not implemented")
778 ELSE IF (
ASSOCIATED(all_potential))
THEN
781 alpha_core_charge=alpha, &
784 sqrt_alpha = sqrt(alpha)
790 bo_atom =
get_limit(natom, para_env%num_pe, para_env%mepos)
792 DO iat = bo_atom(1), bo_atom(2)
794 iatom = atom_list(iat)
796 nablavks_vec_rad_h => nablavks_atom_set(iatom)%nablavks_vec_rad_h
798 DO ir = 1, grid_atom%nr
800 IF (grid_atom%rad(ir) >= hard_radius) cycle
802 DO ia = 1, grid_atom%ng_sphere
806 hard_value = charge*( &
807 2.0_dp*sqrt_alpha*exp(-grid_atom%rad(ir)**2*sqrt_alpha**2) &
808 *grid_atom%rad(ir)*harmonics%a(idir, ia) &
809 /(
rootpi*grid_atom%rad(ir)**2) &
810 + erfc(grid_atom%rad(ir)*sqrt_alpha) &
811 *grid_atom%rad(ir)*harmonics%a(idir, ia) &
812 /grid_atom%rad(ir)**3)
813 nablavks_vec_rad_h(idir, 1)%r_coef(ir, ia) = &
814 nablavks_vec_rad_h(idir, 1)%r_coef(ir, ia) + hard_value
822 nablavks_vec_rad_h(idir, ispin)%r_coef(:, :) = nablavks_vec_rad_h(idir, 1)%r_coef(:, :)
835 CALL qs_rho_get(nablavks_set(idir, 1)%rho, rho_r=rho1_r)
836 CALL qs_rho_get(nablavks_set(idir, 2)%rho, rho_r=rho2_r)
837 CALL pw_copy(rho1_r(1), rho2_r(1))
844 CALL auxbas_pw_pool%create_pw(v_xc_gtemp)
845 CALL auxbas_pw_pool%create_pw(v_xc_rtemp)
851 CALL qs_vxc_create(ks_env=ks_env, rho_struct=rho_xc, xc_section=xc_section, &
852 vxc_rho=v_rspace_new, vxc_tau=v_tau_rspace, exc=exc, just_energy=.false.)
854 CALL qs_vxc_create(ks_env=ks_env, rho_struct=rho, xc_section=xc_section, &
855 vxc_rho=v_rspace_new, vxc_tau=v_tau_rspace, exc=exc, just_energy=.false.)
858 IF (
ASSOCIATED(v_rspace_new))
THEN
865 CALL qs_rho_get(nablavks_set(1, ispin)%rho, rho_r=rho_r)
866 CALL pw_axpy(v_xc_rtemp, rho_r(1))
871 CALL qs_rho_get(nablavks_set(2, ispin)%rho, rho_r=rho_r)
872 CALL pw_axpy(v_xc_rtemp, rho_r(1))
877 CALL qs_rho_get(nablavks_set(3, ispin)%rho, rho_r=rho_r)
878 CALL pw_axpy(v_xc_rtemp, rho_r(1))
880 CALL auxbas_pw_pool%give_back_pw(v_rspace_new(ispin))
884 DEALLOCATE (v_rspace_new)
887 IF (
ASSOCIATED(v_tau_rspace))
THEN
894 CALL qs_rho_get(nablavks_set(1, ispin)%rho, rho_r=rho_r)
895 CALL pw_axpy(v_xc_rtemp, rho_r(1))
900 CALL qs_rho_get(nablavks_set(2, ispin)%rho, rho_r=rho_r)
901 CALL pw_axpy(v_xc_rtemp, rho_r(1))
906 CALL qs_rho_get(nablavks_set(3, ispin)%rho, rho_r=rho_r)
907 CALL pw_axpy(v_xc_rtemp, rho_r(1))
909 CALL auxbas_pw_pool%give_back_pw(v_tau_rspace(ispin))
913 DEALLOCATE (v_tau_rspace)
916 CALL auxbas_pw_pool%give_back_pw(v_xc_gtemp)
917 CALL auxbas_pw_pool%give_back_pw(v_xc_rtemp)
919 IF (gapw .OR. gapw_xc)
THEN
921 gradient_atom_set=nablavks_atom_set)
929 "EPR%PRINT%NABLAVKS_CUBES"),
cp_p_file))
THEN
930 CALL auxbas_pw_pool%create_pw(wf_r)
933 CALL qs_rho_get(nablavks_set(idir, 1)%rho, rho_r=rho_r)
935 filename =
"nablavks"
937 WRITE (ext,
'(a2,I1,a5)')
"_d", idir,
".cube"
939 extension=trim(ext), middle_name=trim(filename), &
940 log_filename=.false., file_position=
"REWIND", &
943 particles=particles, &
945 "EPR%PRINT%NABLAVKS_CUBES%STRIDE"), &
948 "EPR%PRINT%NABLAVKS_CUBES", mpi_io=mpi_io)
950 CALL auxbas_pw_pool%give_back_pw(wf_r)
954 "PRINT%PROGRAM_RUN_INFO")
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, 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, 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, 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, ecoul_1c, rho0_s_rs, rho0_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)
Get the QUICKSTEP environment.