83#include "./base/base_uses.f90"
89 CHARACTER(len=*),
PARAMETER,
PRIVATE :: moduleN =
'ec_environment'
112 cpassert(.NOT.
ASSOCIATED(ec_env))
114 CALL init_ec_env(qs_env, ec_env, dft_section, ec_section)
128 SUBROUTINE init_ec_env(qs_env, ec_env, dft_section, ec_section)
134 CHARACTER(LEN=*),
PARAMETER :: routinen =
'init_ec_env'
136 INTEGER :: handle, ikind, ispin, maxlgto, nel(2), &
137 nkind, nsgf, nspins, unit_nr
138 LOGICAL :: explicit, gpw, gs_kpoints, paw_atom
139 REAL(kind=
dp) :: eps_pgf_orb, etemp, &
140 flexible_electron_count, focc, n_el_f, &
154 TYPE(
qs_kind_type),
DIMENSION(:),
POINTER :: qs_kind_set
158 pp_section, section1, section2, &
159 xc_fun_section, xc_section
161 CALL timeset(routinen, handle)
163 NULLIFY (atomic_kind_set, dispersion_env, ec_env%ls_env, para_env)
164 NULLIFY (ec_env%sab_orb, ec_env%sac_ae, ec_env%sac_ppl, ec_env%sap_ppnl)
165 NULLIFY (ec_env%matrix_ks, ec_env%matrix_h, ec_env%matrix_s)
166 NULLIFY (ec_env%matrix_t, ec_env%matrix_p, ec_env%matrix_w)
167 NULLIFY (ec_env%task_list)
168 NULLIFY (ec_env%mao_coef)
169 NULLIFY (ec_env%force)
170 NULLIFY (ec_env%dispersion_env)
171 NULLIFY (ec_env%xc_section)
172 NULLIFY (ec_env%matrix_z)
173 NULLIFY (ec_env%matrix_hz)
174 NULLIFY (ec_env%matrix_wz)
175 NULLIFY (ec_env%z_admm)
176 NULLIFY (ec_env%p_env)
177 NULLIFY (ec_env%vxc_rspace)
178 NULLIFY (ec_env%vtau_rspace)
179 NULLIFY (ec_env%vadmm_rspace)
180 NULLIFY (ec_env%vadmm_tau_rspace)
181 NULLIFY (ec_env%rhoout_r, ec_env%rhoz_r)
182 NULLIFY (ec_env%x_data)
183 ec_env%should_update = .true.
185 ec_env%do_ec_admm = .false.
186 ec_env%do_kpoints = .false.
187 ec_env%do_ec_hfx = .false.
188 ec_env%reuse_hfx = .false.
190 IF (qs_env%energy_correction)
THEN
192 cpassert(
PRESENT(ec_section))
196 IF (logger%para_env%is_source())
THEN
203 i_val=ec_env%ks_solver)
205 i_val=ec_env%energy_functional)
207 i_val=ec_env%factorization)
209 i_val=ec_env%ec_initial_guess)
211 r_val=ec_env%eps_default)
219 i_val=ec_env%mao_max_iter)
221 r_val=ec_env%mao_eps_grad)
223 r_val=ec_env%mao_eps1)
225 i_val=ec_env%mao_iolevel)
228 l_val=ec_env%skip_ec)
231 l_val=ec_env%debug_forces)
233 l_val=ec_env%debug_stress)
235 l_val=ec_env%debug_external)
243 c_val=ec_env%exresp_fn)
245 c_val=ec_env%exresperr_fn)
247 c_val=ec_env%exresult_fn)
249 l_val=ec_env%do_error)
251 c_val=ec_env%error_method)
254 r_val=ec_env%error_cutoff)
256 i_val=ec_env%error_subspace)
258 ec_env%do_skip = .false.
261 IF (etemp > 0.0_dp)
THEN
262 ec_env%smear%do_smear = .true.
264 ec_env%smear%electronic_temperature = etemp
265 ec_env%smear%eps_fermi_dirac = 1.0e-5_dp
266 ec_env%smear%fixed_mag_mom = -100.0_dp
268 ec_env%smear%do_smear = .false.
269 ec_env%smear%electronic_temperature = 0.0_dp
278 CALL get_qs_env(qs_env, do_kpoints=gs_kpoints)
281 ec_env%do_kpoints = gs_kpoints .OR. explicit
282 IF (ec_env%do_kpoints)
THEN
283 IF (.NOT. explicit)
THEN
286 CALL get_qs_env(qs_env, particle_set=particle_set, cell=cell)
290 CALL get_qs_env(qs_env, para_env=para_env, blacs_env=blacs_env)
293 NULLIFY (ec_env%kpoints)
297 CALL get_qs_env(qs_env, qs_kind_set=qs_kind_set, nkind=nkind)
299 SELECT CASE (ec_env%basis)
302 qs_kind => qs_kind_set(ikind)
303 CALL get_qs_kind(qs_kind=qs_kind, basis_set=basis_set, basis_type=
"ORB")
304 IF (
ASSOCIATED(basis_set))
THEN
305 NULLIFY (harris_basis)
306 CALL get_qs_kind(qs_kind=qs_kind, basis_set=harris_basis, basis_type=
"HARRIS")
307 IF (
ASSOCIATED(harris_basis))
THEN
310 NULLIFY (harris_basis)
317 qs_kind => qs_kind_set(ikind)
318 CALL get_qs_kind(qs_kind=qs_kind, basis_set=basis_set, basis_type=
"ORB")
319 IF (
ASSOCIATED(basis_set))
THEN
320 NULLIFY (harris_basis)
321 CALL get_qs_kind(qs_kind=qs_kind, basis_set=harris_basis, basis_type=
"HARRIS")
322 IF (
ASSOCIATED(harris_basis))
THEN
325 NULLIFY (harris_basis)
327 CALL get_qs_env(qs_env, dft_control=dft_control)
328 eps_pgf_orb = dft_control%qs_control%eps_pgf_orb
330 harris_basis%kind_radius = basis_set%kind_radius
336 qs_kind => qs_kind_set(ikind)
337 NULLIFY (harris_basis)
338 CALL get_qs_kind(qs_kind=qs_kind, basis_set=harris_basis, basis_type=
"HARRIS")
339 IF (.NOT.
ASSOCIATED(harris_basis))
THEN
340 cpwarn(
"Harris Basis not defined for all types of atoms.")
344 cpabort(
"Unknown basis set for energy correction (Harris functional)")
347 CALL get_qs_kind_set(qs_kind_set, maxlgto=maxlgto, basis_type=
"HARRIS")
350 CALL get_qs_env(qs_env, dft_control=dft_control)
351 IF (dft_control%qs_control%gapw .OR. dft_control%qs_control%gapw_xc)
THEN
352 eps_pgf_orb = dft_control%qs_control%eps_pgf_orb
354 qs_kind => qs_kind_set(ikind)
355 NULLIFY (harris_basis)
356 CALL get_qs_kind(qs_kind, basis_set=harris_basis, basis_type=
"HARRIS")
357 CALL get_qs_kind(qs_kind, hard_radius=rc, gpw_type_forced=gpw)
358 NULLIFY (harris_soft_basis)
361 dft_control%qs_control%gapw_control%eps_fit, &
363 dft_control%qs_control%gapw_control%force_paw, gpw)
372 ec_env%basis_inconsistent = .false.
373 IF (ec_env%basis ==
"HARRIS")
THEN
375 qs_kind => qs_kind_set(ikind)
377 CALL get_qs_kind(qs_kind=qs_kind, basis_set=basis_set, basis_type=
"ORB")
379 CALL get_qs_kind(qs_kind=qs_kind, basis_set=harris_basis, basis_type=
"HARRIS")
381 IF (basis_set%name /= harris_basis%name)
THEN
382 ec_env%basis_inconsistent = .true.
388 IF (ec_env%energy_functional ==
ec_functional_dc .AND. ec_env%basis_inconsistent)
THEN
389 CALL cp_abort(__location__, &
390 "DC-DFT: Correction and ground state need to use the same basis. "// &
391 "Checked by comparing basis set names only.")
393 IF (ec_env%energy_functional ==
ec_functional_ext .AND. ec_env%basis_inconsistent)
THEN
394 CALL cp_abort(__location__, &
395 "Exteranl Energy: Correction and ground state need to use the same basis. "// &
396 "Checked by comparing basis set names only.")
400 SELECT CASE (ec_env%energy_functional)
402 ec_env%ec_name =
"Harris"
404 ec_env%ec_name =
"DC-DFT"
406 ec_env%ec_name =
"External Energy"
408 cpabort(
"unknown energy correction")
418 ec_env%xc_section => section1
420 ec_env%xc_section => xc_section
423 CALL get_qs_env(qs_env, dft_control=dft_control, rho=rho)
425 dft_control%use_kinetic_energy_density = dft_control%use_kinetic_energy_density .OR. &
428 dft_control%drho_by_collocation = dft_control%drho_by_collocation .OR. &
432 ALLOCATE (dispersion_env)
434 xc_section => ec_env%xc_section
435 CALL get_qs_env(qs_env, atomic_kind_set=atomic_kind_set, para_env=para_env)
446 ec_env%dispersion_env => dispersion_env
453 ec_env%use_ls_solver = .false.
458 IF (ec_env%use_ls_solver)
THEN
459 CALL ec_ls_create(qs_env, ec_env)
465 cpabort(
"Harris functional with Fermi-Dirac smearing needs diagonalization solver.")
468 cpabort(
"Harris functional with K-points needs diagonalization solver.")
473 IF (ec_env%do_kpoints)
THEN
474 CALL get_qs_env(qs_env, dft_control=dft_control)
475 nspins = dft_control%nspins
477 focc = 2.0_dp + real(1 - nspins,
dp)
478 flexible_electron_count = dft_control%relax_multiplicity
479 CALL get_qs_env(qs_env, para_env=para_env, blacs_env=blacs_env)
481 nrow_global=nsgf, ncol_global=nsgf)
483 ALLOCATE (mo_set(nspins))
487 focc, flexible_electron_count)
488 CALL init_mo_set(mo_set(ispin), fm_struct=fm_struct, name=
"MO")
502 CALL timestop(handle)
504 END SUBROUTINE init_ec_env
515 SUBROUTINE ec_ls_create(qs_env, ec_env)
519 CHARACTER(LEN=*),
PARAMETER :: routinen =
'ec_ls_create'
529 CALL timeset(routinen, handle)
531 ALLOCATE (ec_env%ls_env)
532 ls_env => ec_env%ls_env
534 NULLIFY (dft_control, input, ls_env%para_env)
537 dft_control=dft_control, &
539 molecule_set=molecule_set, &
540 particle_set=particle_set, &
541 para_env=ls_env%para_env, &
542 nelectron_spin=ls_env%nelectron_spin)
545 ls_env%nspins = dft_control%nspins
546 ls_env%natoms =
SIZE(particle_set, 1)
547 CALL ls_env%para_env%retain()
550 ALLOCATE (ls_env%ls_mstruct%atom_to_molecule(ls_env%natoms))
551 CALL molecule_of_atom(molecule_set, atom_to_mol=ls_env%ls_mstruct%atom_to_molecule)
553 ls_env%do_transport = .false.
554 ls_env%do_pao = .false.
555 ls_env%ls_mstruct%do_pao = ls_env%do_pao
556 ls_env%do_pexsi = .false.
557 ls_env%has_unit_metric = .false.
565 CALL section_vals_val_get(ec_section,
"MATRIX_CLUSTER_TYPE", i_val=ls_env%ls_mstruct%cluster_type)
568 CALL section_vals_val_get(ec_section,
"REPORT_ALL_SPARSITIES", l_val=ls_env%report_all_sparsities)
578 SELECT CASE (ec_env%ks_solver)
582 SELECT CASE (ls_env%s_inversion_type)
584 ls_env%needs_s_inv = .true.
585 ls_env%use_s_sqrt = .true.
587 ls_env%needs_s_inv = .true.
588 ls_env%use_s_sqrt = .false.
590 ls_env%needs_s_inv = .false.
591 ls_env%use_s_sqrt = .false.
593 cpabort(
"Unknown ls_env%s_inversion_type")
596 ls_env%needs_s_inv = .false.
597 ls_env%use_s_sqrt = .true.
599 cpabort(
"Unknown ec_env%ks_solver")
602 SELECT CASE (ls_env%s_preconditioner_type)
604 ls_env%has_s_preconditioner = .false.
606 ls_env%has_s_preconditioner = .true.
610 ls_env%extrapolation_order = 0
611 ls_env%scf_history%nstore = 0
612 ls_env%scf_history%istore = 0
613 ALLOCATE (ls_env%scf_history%matrix(ls_env%nspins, ls_env%scf_history%nstore))
615 NULLIFY (ls_env%mixing_store)
617 CALL timestop(handle)
619 END SUBROUTINE ec_ls_create
632 CHARACTER(LEN=*),
PARAMETER :: routinen =
'ec_write_input'
634 INTEGER :: handle, unit_nr
638 CALL timeset(routinen, handle)
641 IF (logger%para_env%is_source())
THEN
647 IF (unit_nr > 0)
THEN
649 WRITE (unit_nr,
'(T2,A)') &
650 "!"//repeat(
"-", 29)//
" Energy Correction "//repeat(
"-", 29)//
"!"
653 SELECT CASE (ec_env%energy_functional)
655 WRITE (unit_nr,
'(T2,A,T61,A20)')
"Energy Correction: ",
"HARRIS FUNCTIONAL"
657 WRITE (unit_nr,
'(T2,A,T61,A20)')
"Energy Correction: ",
"DC-DFT"
659 WRITE (unit_nr,
'(T2,A,T61,A20)')
"Energy Correction: ",
"External"
661 WRITE (unit_nr,
'()')
664 WRITE (unit_nr,
'(T2,A,T61,E20.3)')
"eps_default:", ec_env%eps_default
667 SELECT CASE (ec_env%basis)
669 WRITE (unit_nr,
'(T2,A,T61,A20)')
"EC basis: ",
"ORBITAL"
671 WRITE (unit_nr,
'(T2,A,T61,A20)')
"EC basis: ",
"PRIMITIVE"
673 WRITE (unit_nr,
'(T2,A,T61,A20)')
"EC Basis: ",
"HARRIS"
677 IF (ec_env%do_ec_hfx)
THEN
679 WRITE (unit_nr,
'(T2,A,T61,L20)')
"DC-DFT with HFX", ec_env%do_ec_hfx
680 WRITE (unit_nr,
'(T2,A,T61,L20)')
"Reuse HFX integrals", ec_env%reuse_hfx
681 WRITE (unit_nr,
'(T2,A,T61,L20)')
"DC-DFT HFX with ADMM", ec_env%do_ec_admm
685 IF (ec_env%do_kpoints)
THEN
693 SELECT CASE (ec_env%ks_solver)
695 WRITE (unit_nr,
'(T2,A,T61,A20)')
"Algorithm: ",
"DIAGONALIZATION"
697 WRITE (unit_nr,
'(T2,A,T61,A20)')
"Algorithm: ",
"OT DIAGONALIZATION"
699 WRITE (unit_nr,
'(T2,A,T61,A20)')
"Algorithm: ",
"MATRIX_SIGN"
701 WRITE (unit_nr,
'(T2,A,T61,A20)')
"Algorithm: ",
"TRS4"
704 WRITE (unit_nr,
'(T2,A,T61,A20)')
"Algorithm: ",
"TC2"
707 WRITE (unit_nr,
'()')
711 WRITE (unit_nr,
'(T2,A,T61,L20)')
"MAO:", ec_env%mao
712 WRITE (unit_nr,
'(T2,A,T61,L20)')
"MAO_IOLEVEL:", ec_env%mao_iolevel
713 WRITE (unit_nr,
'(T2,A,T61,I20)')
"MAO_MAX_ITER:", ec_env%mao_max_iter
714 WRITE (unit_nr,
'(T2,A,T61,E20.3)')
"MAO_EPS_GRAD:", ec_env%mao_eps_grad
715 WRITE (unit_nr,
'(T2,A,T61,E20.3)')
"MAO_EPS1:", ec_env%mao_eps1
716 WRITE (unit_nr,
'()')
720 IF (.NOT. ec_env%use_ls_solver)
THEN
722 WRITE (unit_nr,
'(T2,A)')
"MO Solver"
723 WRITE (unit_nr,
'()')
725 SELECT CASE (ec_env%ks_solver)
728 SELECT CASE (ec_env%factorization)
730 WRITE (unit_nr,
'(T2,A,T61,A20)')
"Factorization: ",
"CHOLESKY"
739 SELECT CASE (ec_env%ec_initial_guess)
741 WRITE (unit_nr,
'(T2,A,T61,A20)')
"OT Diag initial guess: ",
"ATOMIC"
743 WRITE (unit_nr,
'(T2,A,T61,A20)')
"OT Diag initial guess: ",
"GROUND STATE DM"
747 cpabort(
"Unknown Diagonalization algorithm for Harris functional")
752 WRITE (unit_nr,
'(T2,A)')
"AO Solver"
753 WRITE (unit_nr,
'()')
755 ls_env => ec_env%ls_env
756 WRITE (unit_nr,
'(T2,A,T61,E20.3)')
"eps_filter:", ls_env%eps_filter
757 WRITE (unit_nr,
'(T2,A,T61,L20)')
"fixed chemical potential (mu)", ls_env%fixed_mu
758 WRITE (unit_nr,
'(T2,A,T61,L20)')
"Computing inv(S):", ls_env%needs_s_inv
759 WRITE (unit_nr,
'(T2,A,T61,L20)')
"Computing sqrt(S):", ls_env%use_s_sqrt
760 WRITE (unit_nr,
'(T2,A,T61,L20)')
"Computing S preconditioner ", ls_env%has_s_preconditioner
762 IF (ls_env%use_s_sqrt)
THEN
763 SELECT CASE (ls_env%s_sqrt_method)
765 WRITE (unit_nr,
'(T2,A,T61,A20)')
"S sqrt method:",
"NEWTONSCHULZ"
767 WRITE (unit_nr,
'(T2,A,T61,A20)')
"S sqrt method:",
"PROOT"
769 cpabort(
"Unknown sqrt method.")
771 WRITE (unit_nr,
'(T2,A,T61,I20)')
"S sqrt order:", ls_env%s_sqrt_order
774 SELECT CASE (ls_env%s_preconditioner_type)
776 WRITE (unit_nr,
'(T2,A,T61,A20)')
"S preconditioner type ",
"NONE"
778 WRITE (unit_nr,
'(T2,A,T61,A20)')
"S preconditioner type ",
"ATOMIC"
780 WRITE (unit_nr,
'(T2,A,T61,A20)')
"S preconditioner type ",
"MOLECULAR"
783 SELECT CASE (ls_env%ls_mstruct%cluster_type)
785 WRITE (unit_nr,
'(T2,A,T61,A20)')
"Cluster type", adjustr(
"ATOMIC")
787 WRITE (unit_nr,
'(T2,A,T61,A20)')
"Cluster type", adjustr(
"MOLECULAR")
789 cpabort(
"Unknown cluster type")
796 WRITE (unit_nr,
'(T2,A)') repeat(
"-", 79)
797 WRITE (unit_nr,
'()')
801 CALL timestop(handle)
Define the atomic kind types and their sub types.
subroutine, public remove_basis_from_container(container, inum, basis_type)
...
subroutine, public add_basis_set_to_container(container, basis_set, basis_set_type)
...
subroutine, public allocate_gto_basis_set(gto_basis_set)
...
subroutine, public copy_gto_basis_set(basis_set_in, basis_set_out)
...
subroutine, public create_primitive_basis_set(basis_set, pbasis, lmax)
...
collects all references to literature in CP2K as new algorithms / method are included from literature...
integer, save, public niklasson2014
integer, save, public niklasson2003
Handles all functions related to the CELL.
methods related to the blacs parallel environment
Defines control structures, which contain the parameters and the settings for the DFT-based calculati...
represent the structure of a full matrix
subroutine, public cp_fm_struct_create(fmstruct, para_env, context, nrow_global, ncol_global, nrow_block, ncol_block, descriptor, first_p_pos, local_leading_dimension, template_fmstruct, square_blocks, force_block)
allocates and initializes a full matrix structure
subroutine, public cp_fm_struct_release(fmstruct)
releases a full matrix structure
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
type(cp_logger_type) function, pointer, public cp_get_default_logger()
returns the default logger
Types needed for a linear scaling quickstep SCF run based on the density matrix.
Types needed for a for a Energy Correction.
Energy correction environment setup and handling.
subroutine, public ec_write_input(ec_env)
Print out the energy correction input section.
subroutine, public ec_env_create(qs_env, ec_env, dft_section, ec_section)
Allocates and intitializes ec_env.
Defines the basic variable types.
integer, parameter, public dp
Routines needed for kpoint calculation.
subroutine, public kpoint_initialize_mo_set(kpoint)
...
subroutine, public kpoint_initialize_mos(kpoint, mos, added_mos, for_aux_fit)
Initialize a set of MOs and density matrix for each kpoint (kpoint group).
subroutine, public kpoint_initialize(kpoint, particle_set, cell)
Generate the kpoints and initialize the kpoint environment.
subroutine, public kpoint_env_initialize(kpoint, para_env, blacs_env, with_aux_fit)
Initialize the kpoint environment.
Types and basic routines needed for a kpoint calculation.
subroutine, public write_kpoint_info(kpoint, iounit, dft_section)
Write information on the kpoints to output.
subroutine, public kpoint_create(kpoint)
Create a kpoint environment.
subroutine, public read_kpoint_section(kpoint, kpoint_section, a_vec, cell)
Read the kpoint input section.
Interface to the message passing library MPI.
Define the data structure for the molecule information.
subroutine, public molecule_of_atom(molecule_set, atom_to_mol)
finds for each atom the molecule it belongs to
Provides Cartesian and spherical orbital pointers and indices.
subroutine, public init_orbital_pointers(maxl)
Initialize or update the orbital pointers.
Define the data structure for the particle information.
subroutine, public qs_basis_rotation(qs_env, kpoints, basis_type)
Construct basis set rotation matrices.
Calculation of non local dispersion functionals Some routines adapted from: Copyright (C) 2001-2009 Q...
subroutine, public qs_dispersion_nonloc_init(dispersion_env, para_env)
...
Calculation of dispersion using pair potentials.
subroutine, public qs_dispersion_pairpot_init(atomic_kind_set, qs_kind_set, dispersion_env, pp_section, para_env)
...
Definition of disperson types for DFT calculations.
Set disperson types for DFT calculations.
subroutine, public qs_dispersion_env_set(dispersion_env, xc_section)
...
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, matrix_vhxc, 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.
Calculate the interaction radii for the operator matrix calculation.
subroutine, public init_interaction_radii_orb_basis(orb_basis_set, eps_pgf_orb, eps_pgf_short)
...
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, cneo_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, hund_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, proj_shell_charge, lr_atom, do_mtlr, u_j_loop, ao_coef, init_u_ramping_each_scf, reltmat, ghost, monovalent, floating, name, element_symbol, pao_basis_size, pao_model_file, pao_potentials, pao_descriptors, nelec)
Get attributes of an atomic kind.
subroutine, public get_qs_kind_set(qs_kind_set, all_potential_present, tnadd_potential_present, gth_potential_present, sgp_potential_present, paw_atom_present, dft_plus_u_atom_present, maxcgf, maxsgf, maxco, maxco_proj, maxgtops, maxlgto, maxlprj, maxnset, maxsgf_set, ncgf, npgf, nset, nsgf, nshell, maxpol, maxlppl, maxlppnl, maxppnl, nelectron, maxder, max_ngrid_rad, max_sph_harm, maxg_iso_not0, lmax_rho0, basis_rcut, do_mtlr_present, basis_type, total_zeff_corr, npgf_seg, cneo_potential_present, nkind_q, natom_q)
Get attributes of an atomic kind set.
Definition and initialisation of the mo data type.
subroutine, public init_mo_set(mo_set, fm_pool, fm_ref, fm_struct, name, counter, complex_coeff)
initializes an allocated mo_set. eigenvalues, mo_coeff, occupation_numbers are valid only after this ...
subroutine, public allocate_mo_set(mo_set, nao, nmo, nelectron, n_el_f, maxocc, flexible_electron_count)
Allocates a mo set and partially initializes it (nao,nmo,nelectron, and flexible_electron_count are v...
subroutine, public deallocate_mo_set(mo_set)
Deallocate a wavefunction data structure.
superstucture that hold various representations of the density and keeps track of which ones are vali...
subroutine, public create_soft_basis(orb_basis, soft_basis, eps_fit, rc, paw_atom, paw_type_forced, gpw_r3d_rs_type_forced)
create the soft basis from a GTO basis
Utilities for string manipulations.
elemental subroutine, public uppercase(string)
Convert all lower case characters in a string to upper case.
Exchange and Correlation functional calculations.
logical function, public xc_uses_norm_drho(xc_fun_section, lsd)
...
logical function, public xc_uses_kinetic_energy_density(xc_fun_section, lsd)
...
Provides all information about an atomic kind.
Type defining parameters related to the simulation cell.
represent a blacs multidimensional parallel environment (for the mpi corrispective see cp_paratypes/m...
keeps the information about the structure of a full matrix
type of a logger, at the moment it contains just a print level starting at which level it should be l...
Contains information on the energy correction functional for KG.
stores all the informations relevant to an mpi environment
Provides all information about a quickstep kind.
keeps the density in various representations, keeping track of which ones are valid.