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)
442 cpabort(
"nl-vdW functionals not available for EC calculations")
447 ec_env%dispersion_env => dispersion_env
454 ec_env%use_ls_solver = .false.
459 IF (ec_env%use_ls_solver)
THEN
460 CALL ec_ls_create(qs_env, ec_env)
466 cpabort(
"Harris functional with Fermi-Dirac smearing needs diagonalization solver.")
469 cpabort(
"Harris functional with K-points needs diagonalization solver.")
474 IF (ec_env%do_kpoints)
THEN
475 CALL get_qs_env(qs_env, dft_control=dft_control)
476 nspins = dft_control%nspins
478 focc = 2.0_dp + real(1 - nspins,
dp)
479 flexible_electron_count = dft_control%relax_multiplicity
480 CALL get_qs_env(qs_env, para_env=para_env, blacs_env=blacs_env)
482 nrow_global=nsgf, ncol_global=nsgf)
484 ALLOCATE (mo_set(nspins))
488 focc, flexible_electron_count)
489 CALL init_mo_set(mo_set(ispin), fm_struct=fm_struct, name=
"MO")
503 CALL timestop(handle)
505 END SUBROUTINE init_ec_env
516 SUBROUTINE ec_ls_create(qs_env, ec_env)
520 CHARACTER(LEN=*),
PARAMETER :: routinen =
'ec_ls_create'
530 CALL timeset(routinen, handle)
532 ALLOCATE (ec_env%ls_env)
533 ls_env => ec_env%ls_env
535 NULLIFY (dft_control, input, ls_env%para_env)
538 dft_control=dft_control, &
540 molecule_set=molecule_set, &
541 particle_set=particle_set, &
542 para_env=ls_env%para_env, &
543 nelectron_spin=ls_env%nelectron_spin)
546 ls_env%nspins = dft_control%nspins
547 ls_env%natoms =
SIZE(particle_set, 1)
548 CALL ls_env%para_env%retain()
551 ALLOCATE (ls_env%ls_mstruct%atom_to_molecule(ls_env%natoms))
552 CALL molecule_of_atom(molecule_set, atom_to_mol=ls_env%ls_mstruct%atom_to_molecule)
554 ls_env%do_transport = .false.
555 ls_env%do_pao = .false.
556 ls_env%ls_mstruct%do_pao = ls_env%do_pao
557 ls_env%do_pexsi = .false.
558 ls_env%has_unit_metric = .false.
566 CALL section_vals_val_get(ec_section,
"MATRIX_CLUSTER_TYPE", i_val=ls_env%ls_mstruct%cluster_type)
569 CALL section_vals_val_get(ec_section,
"REPORT_ALL_SPARSITIES", l_val=ls_env%report_all_sparsities)
579 SELECT CASE (ec_env%ks_solver)
583 SELECT CASE (ls_env%s_inversion_type)
585 ls_env%needs_s_inv = .true.
586 ls_env%use_s_sqrt = .true.
588 ls_env%needs_s_inv = .true.
589 ls_env%use_s_sqrt = .false.
591 ls_env%needs_s_inv = .false.
592 ls_env%use_s_sqrt = .false.
597 ls_env%needs_s_inv = .false.
598 ls_env%use_s_sqrt = .true.
603 SELECT CASE (ls_env%s_preconditioner_type)
605 ls_env%has_s_preconditioner = .false.
607 ls_env%has_s_preconditioner = .true.
611 ls_env%extrapolation_order = 0
612 ls_env%scf_history%nstore = 0
613 ls_env%scf_history%istore = 0
614 ALLOCATE (ls_env%scf_history%matrix(ls_env%nspins, ls_env%scf_history%nstore))
616 NULLIFY (ls_env%mixing_store)
618 CALL timestop(handle)
620 END SUBROUTINE ec_ls_create
633 CHARACTER(LEN=*),
PARAMETER :: routinen =
'ec_write_input'
635 INTEGER :: handle, unit_nr
639 CALL timeset(routinen, handle)
642 IF (logger%para_env%is_source())
THEN
648 IF (unit_nr > 0)
THEN
650 WRITE (unit_nr,
'(T2,A)') &
651 "!"//repeat(
"-", 29)//
" Energy Correction "//repeat(
"-", 29)//
"!"
654 SELECT CASE (ec_env%energy_functional)
656 WRITE (unit_nr,
'(T2,A,T61,A20)')
"Energy Correction: ",
"HARRIS FUNCTIONAL"
658 WRITE (unit_nr,
'(T2,A,T61,A20)')
"Energy Correction: ",
"DC-DFT"
660 WRITE (unit_nr,
'(T2,A,T61,A20)')
"Energy Correction: ",
"External"
662 WRITE (unit_nr,
'()')
665 WRITE (unit_nr,
'(T2,A,T61,E20.3)')
"eps_default:", ec_env%eps_default
668 SELECT CASE (ec_env%basis)
670 WRITE (unit_nr,
'(T2,A,T61,A20)')
"EC basis: ",
"ORBITAL"
672 WRITE (unit_nr,
'(T2,A,T61,A20)')
"EC basis: ",
"PRIMITIVE"
674 WRITE (unit_nr,
'(T2,A,T61,A20)')
"EC Basis: ",
"HARRIS"
678 IF (ec_env%do_ec_hfx)
THEN
680 WRITE (unit_nr,
'(T2,A,T61,L20)')
"DC-DFT with HFX", ec_env%do_ec_hfx
681 WRITE (unit_nr,
'(T2,A,T61,L20)')
"Reuse HFX integrals", ec_env%reuse_hfx
682 WRITE (unit_nr,
'(T2,A,T61,L20)')
"DC-DFT HFX with ADMM", ec_env%do_ec_admm
686 IF (ec_env%do_kpoints)
THEN
694 SELECT CASE (ec_env%ks_solver)
696 WRITE (unit_nr,
'(T2,A,T61,A20)')
"Algorithm: ",
"DIAGONALIZATION"
698 WRITE (unit_nr,
'(T2,A,T61,A20)')
"Algorithm: ",
"OT DIAGONALIZATION"
700 WRITE (unit_nr,
'(T2,A,T61,A20)')
"Algorithm: ",
"MATRIX_SIGN"
702 WRITE (unit_nr,
'(T2,A,T61,A20)')
"Algorithm: ",
"TRS4"
705 WRITE (unit_nr,
'(T2,A,T61,A20)')
"Algorithm: ",
"TC2"
708 WRITE (unit_nr,
'()')
712 WRITE (unit_nr,
'(T2,A,T61,L20)')
"MAO:", ec_env%mao
713 WRITE (unit_nr,
'(T2,A,T61,L20)')
"MAO_IOLEVEL:", ec_env%mao_iolevel
714 WRITE (unit_nr,
'(T2,A,T61,I20)')
"MAO_MAX_ITER:", ec_env%mao_max_iter
715 WRITE (unit_nr,
'(T2,A,T61,E20.3)')
"MAO_EPS_GRAD:", ec_env%mao_eps_grad
716 WRITE (unit_nr,
'(T2,A,T61,E20.3)')
"MAO_EPS1:", ec_env%mao_eps1
717 WRITE (unit_nr,
'()')
721 IF (.NOT. ec_env%use_ls_solver)
THEN
723 WRITE (unit_nr,
'(T2,A)')
"MO Solver"
724 WRITE (unit_nr,
'()')
726 SELECT CASE (ec_env%ks_solver)
729 SELECT CASE (ec_env%factorization)
731 WRITE (unit_nr,
'(T2,A,T61,A20)')
"Factorization: ",
"CHOLESKY"
740 SELECT CASE (ec_env%ec_initial_guess)
742 WRITE (unit_nr,
'(T2,A,T61,A20)')
"OT Diag initial guess: ",
"ATOMIC"
744 WRITE (unit_nr,
'(T2,A,T61,A20)')
"OT Diag initial guess: ",
"GROUND STATE DM"
748 cpabort(
"Unknown Diagonalization algorithm for Harris functional")
753 WRITE (unit_nr,
'(T2,A)')
"AO Solver"
754 WRITE (unit_nr,
'()')
756 ls_env => ec_env%ls_env
757 WRITE (unit_nr,
'(T2,A,T61,E20.3)')
"eps_filter:", ls_env%eps_filter
758 WRITE (unit_nr,
'(T2,A,T61,L20)')
"fixed chemical potential (mu)", ls_env%fixed_mu
759 WRITE (unit_nr,
'(T2,A,T61,L20)')
"Computing inv(S):", ls_env%needs_s_inv
760 WRITE (unit_nr,
'(T2,A,T61,L20)')
"Computing sqrt(S):", ls_env%use_s_sqrt
761 WRITE (unit_nr,
'(T2,A,T61,L20)')
"Computing S preconditioner ", ls_env%has_s_preconditioner
763 IF (ls_env%use_s_sqrt)
THEN
764 SELECT CASE (ls_env%s_sqrt_method)
766 WRITE (unit_nr,
'(T2,A,T61,A20)')
"S sqrt method:",
"NEWTONSCHULZ"
768 WRITE (unit_nr,
'(T2,A,T61,A20)')
"S sqrt method:",
"PROOT"
770 cpabort(
"Unknown sqrt method.")
772 WRITE (unit_nr,
'(T2,A,T61,I20)')
"S sqrt order:", ls_env%s_sqrt_order
775 SELECT CASE (ls_env%s_preconditioner_type)
777 WRITE (unit_nr,
'(T2,A,T61,A20)')
"S preconditioner type ",
"NONE"
779 WRITE (unit_nr,
'(T2,A,T61,A20)')
"S preconditioner type ",
"ATOMIC"
781 WRITE (unit_nr,
'(T2,A,T61,A20)')
"S preconditioner type ",
"MOLECULAR"
784 SELECT CASE (ls_env%ls_mstruct%cluster_type)
786 WRITE (unit_nr,
'(T2,A,T61,A20)')
"Cluster type", adjustr(
"ATOMIC")
788 WRITE (unit_nr,
'(T2,A,T61,A20)')
"Cluster type", adjustr(
"MOLECULAR")
790 cpabort(
"Unknown cluster type")
797 WRITE (unit_nr,
'(T2,A)') repeat(
"-", 79)
798 WRITE (unit_nr,
'()')
802 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, 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, 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, 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, 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)
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.