67 integrate_v_core_rspace,&
74#include "./base/base_uses.f90"
80 CHARACTER(len=*),
PARAMETER,
PRIVATE :: moduleN =
'qs_harris_utils'
101 cpassert(.NOT.
ASSOCIATED(harris_env))
102 ALLOCATE (harris_env)
103 CALL init_harris_env(qs_env, harris_env, harris_section)
116 SUBROUTINE init_harris_env(qs_env, harris_env, harris_section)
121 CHARACTER(LEN=*),
PARAMETER :: routinen =
'init_harris_env'
123 INTEGER :: handle, unit_nr
126 CALL timeset(routinen, handle)
128 IF (qs_env%harris_method)
THEN
130 cpassert(
PRESENT(harris_section))
133 IF (logger%para_env%is_source())
THEN
140 i_val=harris_env%energy_functional)
142 i_val=harris_env%density_source)
144 i_val=harris_env%orbital_basis)
147 l_val=harris_env%debug_forces)
149 l_val=harris_env%debug_stress)
153 CALL timestop(handle)
155 END SUBROUTINE init_harris_env
168 CHARACTER(LEN=*),
PARAMETER :: routinen =
'harris_write_input'
170 INTEGER :: handle, unit_nr
173 CALL timeset(routinen, handle)
176 IF (logger%para_env%is_source())
THEN
182 IF (unit_nr > 0)
THEN
184 WRITE (unit_nr,
'(/,T2,A)') &
185 "!"//repeat(
"-", 29)//
" Harris Model "//repeat(
"-", 29)//
"!"
188 SELECT CASE (harris_env%energy_functional)
190 WRITE (unit_nr,
'(T2,A,T61,A20)')
"Energy Functional: ",
"Harris"
193 SELECT CASE (harris_env%density_source)
195 WRITE (unit_nr,
'(T2,A,T61,A20)')
"Harris model density: Type",
" Atomic kind density"
197 WRITE (unit_nr,
'(T2,A,T71,A10)')
"Harris model density: Basis type", &
198 adjustr(trim(harris_env%rhoin%basis_type))
199 WRITE (unit_nr,
'(T2,A,T71,I10)')
"Harris model density: Number of basis functions", &
200 harris_env%rhoin%nbas
202 SELECT CASE (harris_env%orbital_basis)
204 WRITE (unit_nr,
'(T2,A,T61,A20)')
"Harris model basis: ",
"Atomic kind orbitals"
207 WRITE (unit_nr,
'(T2,A)') repeat(
"-", 79)
208 WRITE (unit_nr,
'()')
212 CALL timestop(handle)
225 CHARACTER(LEN=*),
PARAMETER :: routinen =
'harris_density_update'
227 INTEGER :: handle, i, ikind, ngto, nkind, nset, nsgf
228 INTEGER,
DIMENSION(:),
POINTER :: lmax, npgf
229 REAL(kind=
dp),
ALLOCATABLE,
DIMENSION(:) :: coef
230 REAL(kind=
dp),
ALLOCATABLE,
DIMENSION(:, :) :: density
231 REAL(kind=
dp),
DIMENSION(:),
POINTER :: norm
232 REAL(kind=
dp),
DIMENSION(:, :),
POINTER :: zet
233 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: gcc
237 TYPE(
qs_kind_type),
DIMENSION(:),
POINTER :: qs_kind_set
240 CALL timeset(routinen, handle)
242 SELECT CASE (harris_env%density_source)
244 IF (.NOT. harris_env%rhoin%frozen)
THEN
245 CALL get_qs_env(qs_env, atomic_kind_set=atomic_kind_set, qs_kind_set=qs_kind_set, &
248 atomic_kind => atomic_kind_set(ikind)
249 qs_kind => qs_kind_set(ikind)
250 CALL get_qs_kind(qs_kind=qs_kind, basis_set=basis_set, &
251 basis_type=harris_env%rhoin%basis_type)
252 CALL get_gto_basis_set(gto_basis_set=basis_set, nset=nset, lmax=lmax, nsgf=nsgf, &
253 npgf=npgf, norm_cgf=norm, zet=zet, gcc=gcc)
254 IF (nset /= 1 .OR. lmax(1) /= 0 .OR. npgf(1) /= nsgf)
THEN
255 cpabort(
"RHOIN illegal basis type")
258 IF (sum(abs(gcc(1:npgf(1), i, 1))) /= maxval(abs(gcc(1:npgf(1), i, 1))))
THEN
259 cpabort(
"RHOIN illegal basis type")
264 ALLOCATE (density(ngto, 2))
265 density(1:ngto, 1) = zet(1:ngto, 1)
266 density(1:ngto, 2) = 0.0_dp
268 optbasis=.false., confine=.true.)
269 ALLOCATE (coef(ngto))
271 coef(i) = density(i, 2)/gcc(i, i, 1)/norm(i)
273 IF (harris_env%rhoin%nspin == 2)
THEN
274 DO i = 1,
SIZE(harris_env%rhoin%rhovec(ikind, 1)%rvecs, 2)
275 harris_env%rhoin%rhovec(ikind, 1)%rvecs(1:ngto, i) = coef(1:ngto)*0.5_dp
276 harris_env%rhoin%rhovec(ikind, 2)%rvecs(1:ngto, i) = coef(1:ngto)*0.5_dp
279 DO i = 1,
SIZE(harris_env%rhoin%rhovec(ikind, 1)%rvecs, 2)
280 harris_env%rhoin%rhovec(ikind, 1)%rvecs(1:ngto, i) = coef(1:ngto)
283 DEALLOCATE (density, coef)
285 harris_env%rhoin%frozen = .true.
288 cpabort(
"Illeagal value of harris_env%density_source")
291 CALL timestop(handle)
306 CHARACTER(LEN=*),
PARAMETER :: routinen =
'calculate_harris_density'
308 INTEGER :: handle, i1, i2, iatom, ikind, ilocal, &
309 ispin, n, nkind, nlocal, nspin
310 REAL(kind=
dp) :: eps_rho_rspace
311 REAL(kind=
dp),
ALLOCATABLE,
DIMENSION(:) :: vector
312 REAL(kind=
dp),
DIMENSION(:),
POINTER :: total_rho
322 TYPE(
qs_kind_type),
DIMENSION(:),
POINTER :: qs_kind_set
324 CALL timeset(routinen, handle)
326 CALL get_qs_env(qs_env, dft_control=dft_control, para_env=para_env)
327 eps_rho_rspace = dft_control%qs_control%eps_rho_rspace
329 atomic_kind_set=atomic_kind_set, particle_set=particle_set, &
330 local_particles=local_particles, &
331 qs_kind_set=qs_kind_set, cell=cell, pw_env=pw_env)
333 CALL qs_rho_get(rho_struct, rho_r=rho_rspace, rho_g=rho_gspace, &
336 ALLOCATE (vector(rhoin%nbas))
338 nkind =
SIZE(rhoin%rhovec, 1)
339 nspin =
SIZE(rhoin%rhovec, 2)
344 nlocal = local_particles%n_el(ikind)
345 DO ilocal = 1, nlocal
346 iatom = local_particles%list(ikind)%array(ilocal)
347 i1 = rhoin%basptr(iatom, 1)
348 i2 = rhoin%basptr(iatom, 2)
350 vector(i1:i2) = rhoin%rhovec(ikind, ispin)%rvecs(1:n, ilocal)
353 CALL para_env%sum(vector)
356 atomic_kind_set, qs_kind_set, cell, particle_set, pw_env, &
357 eps_rho_rspace, rhoin%basis_type)
363 CALL timestop(handle)
374 SUBROUTINE calculate_harris_integrals(qs_env, rhoin, v_rspace, calculate_forces)
378 LOGICAL,
INTENT(IN) :: calculate_forces
380 CHARACTER(LEN=*),
PARAMETER :: routinen =
'calculate_harris_integrals'
382 INTEGER :: handle, i1, i2, iatom, ikind, ilocal, &
383 ispin, n, nkind, nlocal, nspin
384 REAL(kind=
dp),
ALLOCATABLE,
DIMENSION(:) :: integral, vector
388 CALL timeset(routinen, handle)
390 CALL get_qs_env(qs_env, para_env=para_env, local_particles=local_particles)
392 ALLOCATE (vector(rhoin%nbas))
393 ALLOCATE (integral(rhoin%nbas))
395 nkind =
SIZE(rhoin%rhovec, 1)
396 nspin =
SIZE(rhoin%rhovec, 2)
402 nlocal = local_particles%n_el(ikind)
403 DO ilocal = 1, nlocal
404 iatom = local_particles%list(ikind)%array(ilocal)
405 i1 = rhoin%basptr(iatom, 1)
406 i2 = rhoin%basptr(iatom, 2)
408 vector(i1:i2) = rhoin%rhovec(ikind, ispin)%rvecs(1:n, ilocal)
411 CALL para_env%sum(vector)
413 CALL integrate_function(qs_env, v_rspace(ispin), vector, integral, &
414 calculate_forces, rhoin%basis_type)
416 nlocal = local_particles%n_el(ikind)
417 DO ilocal = 1, nlocal
418 iatom = local_particles%list(ikind)%array(ilocal)
419 i1 = rhoin%basptr(iatom, 1)
420 i2 = rhoin%basptr(iatom, 2)
422 rhoin%intvec(ikind, ispin)%rvecs(1:n, ilocal) = integral(i1:i2)
427 DEALLOCATE (vector, integral)
429 CALL timestop(handle)
431 END SUBROUTINE calculate_harris_integrals
444 INTEGER :: iab, ispin, nspins
448 IF (
ASSOCIATED(harris_env%vh_rspace%pw_grid))
THEN
449 CALL harris_env%vh_rspace%release()
451 IF (
ASSOCIATED(harris_env%vxc_rspace))
THEN
452 DO iab = 1,
SIZE(harris_env%vxc_rspace)
453 CALL harris_env%vxc_rspace(iab)%release()
455 DEALLOCATE (harris_env%vxc_rspace)
459 nspins = harris_env%rhoin%nspin
460 ALLOCATE (harris_env%vxc_rspace(nspins))
462 pw_grid => vh_rspace%pw_grid
463 CALL harris_env%vh_rspace%create(pw_grid)
465 CALL harris_env%vxc_rspace(ispin)%create(pw_grid)
470 IF (
ASSOCIATED(vxc_rspace))
THEN
472 CALL pw_transfer(vxc_rspace(ispin), harris_env%vxc_rspace(ispin))
473 CALL pw_scale(harris_env%vxc_rspace(ispin), vxc_rspace(ispin)%pw_grid%dvol)
477 CALL pw_zero(harris_env%vxc_rspace(ispin))
490 LOGICAL,
INTENT(IN) :: calculate_forces
492 CHARACTER(LEN=*),
PARAMETER :: routinen =
'harris_energy_correction'
494 INTEGER :: handle, iounit, ispin, nspins
495 REAL(kind=
dp) :: dvol, ec, eh, exc, vxc
507 mark_used(calculate_forces)
509 CALL timeset(routinen, handle)
511 CALL get_qs_env(qs_env, harris_env=harris_env, energy=ks_energy)
512 energy => harris_env%energy
513 energy%eband = ks_energy%band
514 energy%ewald_correction = ks_energy%core_overlap + ks_energy%core_self
515 energy%dispersion = ks_energy%dispersion
517 nspins = harris_env%rhoin%nspin
519 CALL get_qs_env(qs_env, rho=rho, rho_core=rho_core)
523 CALL pw_env_get(pw_env, auxbas_pw_pool=auxbas_pw_pool)
524 CALL auxbas_pw_pool%create_pw(core_rspace)
527 dvol = harris_env%vh_rspace%pw_grid%dvol
533 eh = 0.5_dp*(eh + ec)
534 energy%eh_correction = ec - eh
538 IF (
ASSOCIATED(harris_env%vxc_rspace))
THEN
540 vxc = vxc +
pw_integral_ab(rho_r(ispin), harris_env%vxc_rspace(ispin))/ &
541 harris_env%vxc_rspace(ispin)%pw_grid%dvol
544 energy%exc_correction = exc - vxc
547 energy%eharris = energy%eband + energy%eh_correction + energy%exc_correction + &
548 energy%ewald_correction + energy%dispersion
550 CALL auxbas_pw_pool%give_back_pw(core_rspace)
552 ks_energy%total = ks_energy%total + ks_energy%core
553 ks_energy%nonscf_correction = energy%eharris - ks_energy%total
554 ks_energy%total = energy%eharris
561 IF (calculate_forces)
THEN
562 CALL harris_forces(qs_env, iounit)
565 CALL timestop(handle)
574 SUBROUTINE harris_forces(qs_env, iounit)
576 INTEGER,
INTENT(IN) :: iounit
578 CHARACTER(LEN=*),
PARAMETER :: routinen =
'harris_forces'
579 LOGICAL,
PARAMETER :: debug_forces = .true.
581 INTEGER :: handle, ispin, nspins
582 REAL(kind=
dp) :: ehartree
583 REAL(kind=
dp),
DIMENSION(3) :: fodeb
585 TYPE(
dbcsr_p_type),
DIMENSION(:),
POINTER :: rhoh_ao, smat
595 TYPE(
pw_r3d_rs_type),
DIMENSION(:),
POINTER :: fhxc_rspace, ftau, fxc, rho_r, rhoh_r, &
602 CALL timeset(routinen, handle)
604 IF (debug_forces)
THEN
605 IF (iounit > 0)
WRITE (iounit,
"(/,T3,A)") &
606 "DEBUG:: Harris Method Forces (density dependent)"
609 CALL get_qs_env(qs_env, harris_env=harris_env, force=force, para_env=para_env)
610 nspins = harris_env%rhoin%nspin
612 CALL get_qs_env(qs_env, rho=rho, rho_core=rho_core, matrix_s=smat)
614 CALL qs_rho_get(rho, rho_ao=rhoh_ao, rho_r=rho_r, rho_g=rho_g)
615 ALLOCATE (scrm%matrix)
616 CALL dbcsr_create(scrm%matrix, template=rhoh_ao(1)%matrix)
620 CALL get_qs_env(qs_env=qs_env, pw_env=pw_env, ks_env=ks_env)
621 CALL pw_env_get(pw_env, auxbas_pw_pool=auxbas_pw_pool)
622 CALL auxbas_pw_pool%create_pw(vhxc_rspace)
624 IF (debug_forces) fodeb(1:3) = force(1)%rho_elec(1:3, 1)
626 CALL pw_copy(harris_env%vh_rspace, vhxc_rspace)
627 CALL pw_axpy(harris_env%vxc_rspace(ispin), vhxc_rspace)
628 CALL integrate_v_rspace(v_rspace=vhxc_rspace, &
629 hmat=scrm, pmat=rhoh_ao(ispin), &
630 qs_env=qs_env, calculate_forces=.true.)
632 IF (debug_forces)
THEN
633 fodeb(1:3) = force(1)%rho_elec(1:3, 1) - fodeb(1:3)
634 CALL para_env%sum(fodeb)
635 IF (iounit > 0)
WRITE (iounit,
"(T3,A,T33,3F16.8)")
"DEBUG:: P*(Vh[in]+Vxc)", fodeb
639 DEALLOCATE (scrm%matrix)
640 CALL auxbas_pw_pool%give_back_pw(vhxc_rspace)
642 ALLOCATE (rhoh_r(nspins), rhoh_g(nspins))
644 CALL auxbas_pw_pool%create_pw(rhoh_r(ispin))
645 CALL auxbas_pw_pool%create_pw(rhoh_g(ispin))
647 CALL auxbas_pw_pool%create_pw(rhoh_tot_gspace)
648 CALL pw_copy(rho_core, rhoh_tot_gspace)
651 rho=rhoh_r(ispin), rho_gspace=rhoh_g(ispin))
652 CALL pw_axpy(rhoh_g(ispin), rhoh_tot_gspace)
657 CALL auxbas_pw_pool%create_pw(vhout_rspace)
658 CALL auxbas_pw_pool%create_pw(vhout_gspace)
659 CALL pw_env_get(pw_env, poisson_env=poisson_env)
664 CALL pw_scale(vhout_rspace, vhout_rspace%pw_grid%dvol)
666 IF (debug_forces) fodeb(1:3) = force(1)%rho_core(1:3, 1)
667 CALL integrate_v_core_rspace(vhout_rspace, qs_env)
668 IF (debug_forces)
THEN
669 fodeb(1:3) = force(1)%rho_core(1:3, 1) - fodeb(1:3)
670 CALL para_env%sum(fodeb)
671 IF (iounit > 0)
WRITE (iounit,
"(T3,A,T33,3F16.8)")
"DEBUG:: Vh[out]*dncore ", fodeb
674 ALLOCATE (fhxc_rspace(nspins))
676 CALL auxbas_pw_pool%create_pw(fhxc_rspace(ispin))
679 CALL pw_axpy(harris_env%vh_rspace, vhout_rspace, alpha=-1._dp, beta=1.0_dp)
683 CALL pw_axpy(rho_r(ispin), rhoh_r(ispin), alpha=-1._dp, beta=1.0_dp)
684 CALL pw_axpy(rho_g(ispin), rhoh_g(ispin), alpha=-1._dp, beta=1.0_dp)
689 rho=rho, rho1_r=rhoh_r, rho1_g=rhoh_g, tau1_r=tauh_r, &
690 xc_section=xc_section)
691 cpassert(.NOT.
ASSOCIATED(ftau))
694 CALL pw_copy(vhout_rspace, fhxc_rspace(ispin))
695 IF (
ASSOCIATED(fxc))
THEN
696 CALL pw_scale(fxc(ispin), fxc(ispin)%pw_grid%dvol)
697 CALL pw_axpy(fxc(ispin), fhxc_rspace(ispin))
701 IF (debug_forces) fodeb(1:3) = force(1)%rho_elec(1:3, 1)
702 CALL calculate_harris_integrals(qs_env, harris_env%rhoin, fhxc_rspace, .true.)
703 IF (debug_forces)
THEN
704 fodeb(1:3) = force(1)%rho_elec(1:3, 1) - fodeb(1:3)
705 CALL para_env%sum(fodeb)
706 IF (iounit > 0)
WRITE (iounit,
"(T3,A,T33,3F16.8)")
"DEBUG:: (dVh+fxc)*dn[in] ", fodeb
709 IF (
ASSOCIATED(fxc))
THEN
711 CALL auxbas_pw_pool%give_back_pw(fxc(ispin))
715 IF (
ASSOCIATED(ftau))
THEN
717 CALL auxbas_pw_pool%give_back_pw(ftau(ispin))
722 CALL auxbas_pw_pool%give_back_pw(rhoh_tot_gspace)
723 CALL auxbas_pw_pool%give_back_pw(vhout_rspace)
724 CALL auxbas_pw_pool%give_back_pw(vhout_gspace)
727 CALL auxbas_pw_pool%give_back_pw(rhoh_r(ispin))
728 CALL auxbas_pw_pool%give_back_pw(rhoh_g(ispin))
729 CALL auxbas_pw_pool%give_back_pw(fhxc_rspace(ispin))
731 DEALLOCATE (rhoh_r, rhoh_g, fhxc_rspace)
733 CALL timestop(handle)
735 END SUBROUTINE harris_forces
calculate the orbitals for a given atomic kind type
subroutine, public calculate_atomic_density(density, atomic_kind, qs_kind, ngto, iunit, optbasis, allelectron, confine)
...
Define the atomic kind types and their sub types.
subroutine, public get_gto_basis_set(gto_basis_set, name, aliases, norm_type, kind_radius, ncgf, nset, nsgf, cgf_symbol, sgf_symbol, norm_cgf, set_radius, lmax, lmin, lx, ly, lz, m, ncgf_set, npgf, nsgf_set, nshell, cphi, pgf_radius, sphi, scon, zet, first_cgf, first_sgf, l, last_cgf, last_sgf, n, gcc, maxco, maxl, maxpgf, maxsgf_set, maxshell, maxso, nco_sum, npgf_sum, nshell_sum, maxder, short_kind_radius, npgf_seg_sum)
...
Handles all functions related to the CELL.
Defines control structures, which contain the parameters and the settings for the DFT-based calculati...
subroutine, public dbcsr_copy(matrix_b, matrix_a, name, keep_sparsity, keep_imaginary)
...
subroutine, public dbcsr_set(matrix, alpha)
...
subroutine, public dbcsr_release(matrix)
...
various routines to log and control the output. The idea is that decisions about where to log should ...
recursive integer function, public cp_logger_get_default_unit_nr(logger, local, skip_not_ionode)
asks the default unit number of the given logger. try to use cp_logger_get_unit_nr
integer function, public cp_logger_get_default_io_unit(logger)
returns the unit nr for the ionode (-1 on all other processors) skips as well checks if the procs cal...
type(cp_logger_type) function, pointer, public cp_get_default_logger()
returns the default logger
stores a lists of integer that are local to a processor. The idea is that these integers represent ob...
Routines used for Harris functional Kohn-Sham calculation.
subroutine, public create_kernel(qs_env, vxc, vxc_tau, rho, rho1_r, rho1_g, tau1_r, xc_section, compute_virial, virial_xc)
Creation of second derivative xc-potential.
Defines the basic variable types.
integer, parameter, public dp
Interface to the message passing library MPI.
Define the data structure for the particle information.
container for various plainwaves related things
subroutine, public pw_env_get(pw_env, pw_pools, cube_info, gridlevel_info, auxbas_pw_pool, auxbas_grid, auxbas_rs_desc, auxbas_rs_grid, rs_descs, rs_grids, xc_pw_pool, vdw_pw_pool, poisson_env, interp_section)
returns the various attributes of the pw env
functions related to the poisson solver on regular grids
Manages a pool of grids (to be used for example as tmp objects), but can also be used to instantiate ...
Calculate the plane wave density by collocating the primitive Gaussian functions (pgf).
subroutine, public calculate_rho_elec(matrix_p, matrix_p_kp, rho, rho_gspace, total_rho, ks_env, soft_valid, compute_tau, compute_grad, basis_type, der_type, idir, task_list_external, pw_env_external)
computes the density corresponding to a given density matrix on the grid
subroutine, public collocate_function(vector, rho, rho_gspace, atomic_kind_set, qs_kind_set, cell, particle_set, pw_env, eps_rho_rspace, basis_type)
maps a given function on the grid
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.
Types needed for a for a Harris model calculation.
subroutine, public harris_print_energy(iounit, energy)
...
Harris method environment setup and handling.
subroutine, public calculate_harris_density(qs_env, rhoin, rho_struct)
...
subroutine, public harris_write_input(harris_env)
Print out the Harris method input section.
subroutine, public harris_density_update(qs_env, harris_env)
...
subroutine, public harris_set_potentials(harris_env, vh_rspace, vxc_rspace)
...
subroutine, public harris_energy_correction(qs_env, calculate_forces)
...
subroutine, public harris_env_create(qs_env, harris_env, harris_section)
Allocates and intitializes harris_env.
Integrate single or product functions over a potential on a RS grid.
Define the quickstep kind type and their sub types.
subroutine, public get_qs_kind(qs_kind, basis_set, basis_type, ncgf, nsgf, all_potential, tnadd_potential, gth_potential, sgp_potential, upf_potential, se_parameter, dftb_parameter, xtb_parameter, dftb3_param, zatom, zeff, elec_conf, mao, lmax_dftb, alpha_core_charge, ccore_charge, core_charge, core_charge_radius, paw_proj_set, paw_atom, hard_radius, hard0_radius, max_rad_local, covalent_radius, vdw_radius, gpw_type_forced, harmonics, max_iso_not0, max_s_harm, grid_atom, ngrid_ang, ngrid_rad, lmax_rho0, dft_plus_u_atom, l_of_dft_plus_u, n_of_dft_plus_u, u_minus_j, u_of_dft_plus_u, j_of_dft_plus_u, alpha_of_dft_plus_u, beta_of_dft_plus_u, j0_of_dft_plus_u, occupation_of_dft_plus_u, dispersion, bs_occupation, magnetization, no_optimize, addel, laddel, naddel, orbitals, max_scf, eps_scf, smear, u_ramping, u_minus_j_target, eps_u_ramping, init_u_ramping_each_scf, reltmat, ghost, floating, name, element_symbol, pao_basis_size, pao_model_file, pao_potentials, pao_descriptors, nelec)
Get attributes of an atomic kind.
superstucture that hold various representations of the density and keeps track of which ones are vali...
subroutine, public qs_rho_get(rho_struct, rho_ao, rho_ao_im, rho_ao_kp, rho_ao_im_kp, rho_r, drho_r, rho_g, drho_g, tau_r, tau_g, rho_r_valid, drho_r_valid, rho_g_valid, drho_g_valid, tau_r_valid, tau_g_valid, tot_rho_r, tot_rho_g, rho_r_sccs, soft_valid, complex_rho_ao)
returns info about the density described by this object. If some representation is not available an e...
Provides all information about an atomic kind.
Type defining parameters related to the simulation cell.
type of a logger, at the moment it contains just a print level starting at which level it should be l...
structure to store local (to a processor) ordered lists of integers.
stores all the informations relevant to an mpi environment
contained for different pw related things
environment for the poisson solver
Manages a pool of grids (to be used for example as tmp objects), but can also be used to instantiate ...
Contains information on the Harris method.
Provides all information about a quickstep kind.
calculation environment to calculate the ks matrix, holds all the needed vars. assumes that the core ...
keeps the density in various representations, keeping track of which ones are valid.