81#include "./base/base_uses.f90"
87 CHARACTER(len=*),
PARAMETER,
PRIVATE :: moduleN =
'ec_environment'
110 cpassert(.NOT.
ASSOCIATED(ec_env))
112 CALL init_ec_env(qs_env, ec_env, dft_section, ec_section)
126 SUBROUTINE init_ec_env(qs_env, ec_env, dft_section, ec_section)
132 CHARACTER(LEN=*),
PARAMETER :: routinen =
'init_ec_env'
134 INTEGER :: handle, ikind, ispin, maxlgto, nel(2), &
135 nkind, nsgf, nspins, unit_nr
136 LOGICAL :: explicit, gpw, gs_kpoints, paw_atom
137 REAL(kind=
dp) :: eps_pgf_orb, etemp, &
138 flexible_electron_count, focc, n_el_f, &
151 TYPE(
qs_kind_type),
DIMENSION(:),
POINTER :: qs_kind_set
155 pp_section, section1, section2, &
156 xc_fun_section, xc_section
158 CALL timeset(routinen, handle)
160 NULLIFY (atomic_kind_set, dispersion_env, ec_env%ls_env, para_env)
161 NULLIFY (ec_env%sab_orb, ec_env%sac_ae, ec_env%sac_ppl, ec_env%sap_ppnl)
162 NULLIFY (ec_env%matrix_ks, ec_env%matrix_h, ec_env%matrix_s)
163 NULLIFY (ec_env%matrix_t, ec_env%matrix_p, ec_env%matrix_w)
164 NULLIFY (ec_env%task_list)
165 NULLIFY (ec_env%mao_coef)
166 NULLIFY (ec_env%force)
167 NULLIFY (ec_env%dispersion_env)
168 NULLIFY (ec_env%xc_section)
169 NULLIFY (ec_env%matrix_z)
170 NULLIFY (ec_env%matrix_hz)
171 NULLIFY (ec_env%matrix_wz)
172 NULLIFY (ec_env%z_admm)
173 NULLIFY (ec_env%p_env)
174 NULLIFY (ec_env%vxc_rspace)
175 NULLIFY (ec_env%vtau_rspace)
176 NULLIFY (ec_env%vadmm_rspace)
177 NULLIFY (ec_env%vadmm_tau_rspace)
178 NULLIFY (ec_env%rhoout_r, ec_env%rhoz_r)
179 NULLIFY (ec_env%x_data)
180 ec_env%should_update = .true.
182 ec_env%do_ec_admm = .false.
183 ec_env%do_kpoints = .false.
184 ec_env%do_ec_hfx = .false.
185 ec_env%reuse_hfx = .false.
187 IF (qs_env%energy_correction)
THEN
189 cpassert(
PRESENT(ec_section))
195 i_val=ec_env%ks_solver)
197 i_val=ec_env%energy_functional)
199 i_val=ec_env%factorization)
201 i_val=ec_env%ec_initial_guess)
203 r_val=ec_env%eps_default)
211 i_val=ec_env%mao_max_iter)
213 r_val=ec_env%mao_eps_grad)
215 r_val=ec_env%mao_eps1)
217 i_val=ec_env%mao_iolevel)
220 l_val=ec_env%skip_ec)
223 l_val=ec_env%debug_forces)
225 l_val=ec_env%debug_stress)
227 l_val=ec_env%debug_external)
235 c_val=ec_env%exresp_fn)
237 c_val=ec_env%exresperr_fn)
239 c_val=ec_env%exresult_fn)
241 l_val=ec_env%do_error)
243 c_val=ec_env%error_method)
246 r_val=ec_env%error_cutoff)
248 i_val=ec_env%error_subspace)
250 ec_env%do_skip = .false.
253 IF (etemp > 0.0_dp)
THEN
254 ec_env%smear%do_smear = .true.
256 ec_env%smear%electronic_temperature = etemp
257 ec_env%smear%eps_fermi_dirac = 1.0e-5_dp
258 ec_env%smear%fixed_mag_mom = -100.0_dp
260 ec_env%smear%do_smear = .false.
261 ec_env%smear%electronic_temperature = 0.0_dp
270 CALL get_qs_env(qs_env, do_kpoints=gs_kpoints)
273 ec_env%do_kpoints = gs_kpoints .OR. explicit
274 IF (ec_env%do_kpoints)
THEN
275 IF (.NOT. explicit)
THEN
278 CALL get_qs_env(qs_env, particle_set=particle_set, cell=cell)
282 CALL get_qs_env(qs_env, para_env=para_env, blacs_env=blacs_env)
285 NULLIFY (ec_env%kpoints)
289 CALL get_qs_env(qs_env, qs_kind_set=qs_kind_set, nkind=nkind)
291 SELECT CASE (ec_env%basis)
294 qs_kind => qs_kind_set(ikind)
295 CALL get_qs_kind(qs_kind=qs_kind, basis_set=basis_set, basis_type=
"ORB")
296 IF (
ASSOCIATED(basis_set))
THEN
297 NULLIFY (harris_basis)
298 CALL get_qs_kind(qs_kind=qs_kind, basis_set=harris_basis, basis_type=
"HARRIS")
299 IF (
ASSOCIATED(harris_basis))
THEN
302 NULLIFY (harris_basis)
309 qs_kind => qs_kind_set(ikind)
310 CALL get_qs_kind(qs_kind=qs_kind, basis_set=basis_set, basis_type=
"ORB")
311 IF (
ASSOCIATED(basis_set))
THEN
312 NULLIFY (harris_basis)
313 CALL get_qs_kind(qs_kind=qs_kind, basis_set=harris_basis, basis_type=
"HARRIS")
314 IF (
ASSOCIATED(harris_basis))
THEN
317 NULLIFY (harris_basis)
319 CALL get_qs_env(qs_env, dft_control=dft_control)
320 eps_pgf_orb = dft_control%qs_control%eps_pgf_orb
322 harris_basis%kind_radius = basis_set%kind_radius
328 qs_kind => qs_kind_set(ikind)
329 NULLIFY (harris_basis)
330 CALL get_qs_kind(qs_kind=qs_kind, basis_set=harris_basis, basis_type=
"HARRIS")
331 IF (.NOT.
ASSOCIATED(harris_basis))
THEN
332 cpwarn(
"Harris Basis not defined for all types of atoms.")
336 cpabort(
"Unknown basis set for energy correction (Harris functional)")
339 CALL get_qs_kind_set(qs_kind_set, maxlgto=maxlgto, basis_type=
"HARRIS")
342 CALL get_qs_env(qs_env, dft_control=dft_control)
343 IF (dft_control%qs_control%gapw .OR. dft_control%qs_control%gapw_xc)
THEN
344 eps_pgf_orb = dft_control%qs_control%eps_pgf_orb
346 qs_kind => qs_kind_set(ikind)
347 NULLIFY (harris_basis)
348 CALL get_qs_kind(qs_kind, basis_set=harris_basis, basis_type=
"HARRIS")
349 CALL get_qs_kind(qs_kind, hard_radius=rc, gpw_type_forced=gpw)
350 NULLIFY (harris_soft_basis)
353 dft_control%qs_control%gapw_control%eps_fit, &
355 dft_control%qs_control%gapw_control%force_paw, gpw)
364 ec_env%basis_inconsistent = .false.
365 IF (ec_env%basis ==
"HARRIS")
THEN
367 qs_kind => qs_kind_set(ikind)
369 CALL get_qs_kind(qs_kind=qs_kind, basis_set=basis_set, basis_type=
"ORB")
371 CALL get_qs_kind(qs_kind=qs_kind, basis_set=harris_basis, basis_type=
"HARRIS")
373 IF (basis_set%name /= harris_basis%name)
THEN
374 ec_env%basis_inconsistent = .true.
380 IF (ec_env%energy_functional ==
ec_functional_dc .AND. ec_env%basis_inconsistent)
THEN
381 CALL cp_abort(__location__, &
382 "DC-DFT: Correction and ground state need to use the same basis. "// &
383 "Checked by comparing basis set names only.")
385 IF (ec_env%energy_functional ==
ec_functional_ext .AND. ec_env%basis_inconsistent)
THEN
386 CALL cp_abort(__location__, &
387 "Exteranl Energy: Correction and ground state need to use the same basis. "// &
388 "Checked by comparing basis set names only.")
392 SELECT CASE (ec_env%energy_functional)
394 ec_env%ec_name =
"Harris"
396 ec_env%ec_name =
"DC-DFT"
398 ec_env%ec_name =
"External Energy"
400 cpabort(
"unknown energy correction")
410 ec_env%xc_section => section1
412 ec_env%xc_section => xc_section
415 CALL get_qs_env(qs_env, dft_control=dft_control, rho=rho)
417 dft_control%use_kinetic_energy_density = dft_control%use_kinetic_energy_density .OR. &
420 dft_control%drho_by_collocation = dft_control%drho_by_collocation .OR. &
424 ALLOCATE (dispersion_env)
426 xc_section => ec_env%xc_section
427 CALL get_qs_env(qs_env, atomic_kind_set=atomic_kind_set, para_env=para_env)
434 cpabort(
"nl-vdW functionals not available for EC calculations")
439 ec_env%dispersion_env => dispersion_env
446 ec_env%use_ls_solver = .false.
451 IF (ec_env%use_ls_solver)
THEN
452 CALL ec_ls_create(qs_env, ec_env)
458 cpabort(
"Harris functional with Fermi-Dirac smearing needs diagonalization solver.")
461 cpabort(
"Harris functional with K-points needs diagonalization solver.")
466 IF (ec_env%do_kpoints)
THEN
467 CALL get_qs_env(qs_env, dft_control=dft_control)
468 nspins = dft_control%nspins
470 focc = 2.0_dp + real(1 - nspins,
dp)
471 flexible_electron_count = dft_control%relax_multiplicity
472 CALL get_qs_env(qs_env, para_env=para_env, blacs_env=blacs_env)
474 nrow_global=nsgf, ncol_global=nsgf)
476 ALLOCATE (mo_set(nspins))
480 focc, flexible_electron_count)
481 CALL init_mo_set(mo_set(ispin), fm_struct=fm_struct, name=
"MO")
495 CALL timestop(handle)
497 END SUBROUTINE init_ec_env
508 SUBROUTINE ec_ls_create(qs_env, ec_env)
512 CHARACTER(LEN=*),
PARAMETER :: routinen =
'ec_ls_create'
522 CALL timeset(routinen, handle)
524 ALLOCATE (ec_env%ls_env)
525 ls_env => ec_env%ls_env
527 NULLIFY (dft_control, input, ls_env%para_env)
530 dft_control=dft_control, &
532 molecule_set=molecule_set, &
533 particle_set=particle_set, &
534 para_env=ls_env%para_env, &
535 nelectron_spin=ls_env%nelectron_spin)
538 ls_env%nspins = dft_control%nspins
539 ls_env%natoms =
SIZE(particle_set, 1)
540 CALL ls_env%para_env%retain()
543 ALLOCATE (ls_env%ls_mstruct%atom_to_molecule(ls_env%natoms))
544 CALL molecule_of_atom(molecule_set, atom_to_mol=ls_env%ls_mstruct%atom_to_molecule)
546 ls_env%do_transport = .false.
547 ls_env%do_pao = .false.
548 ls_env%ls_mstruct%do_pao = ls_env%do_pao
549 ls_env%do_pexsi = .false.
550 ls_env%has_unit_metric = .false.
558 CALL section_vals_val_get(ec_section,
"MATRIX_CLUSTER_TYPE", i_val=ls_env%ls_mstruct%cluster_type)
561 CALL section_vals_val_get(ec_section,
"REPORT_ALL_SPARSITIES", l_val=ls_env%report_all_sparsities)
571 SELECT CASE (ec_env%ks_solver)
575 SELECT CASE (ls_env%s_inversion_type)
577 ls_env%needs_s_inv = .true.
578 ls_env%use_s_sqrt = .true.
580 ls_env%needs_s_inv = .true.
581 ls_env%use_s_sqrt = .false.
583 ls_env%needs_s_inv = .false.
584 ls_env%use_s_sqrt = .false.
589 ls_env%needs_s_inv = .false.
590 ls_env%use_s_sqrt = .true.
595 SELECT CASE (ls_env%s_preconditioner_type)
597 ls_env%has_s_preconditioner = .false.
599 ls_env%has_s_preconditioner = .true.
603 ls_env%extrapolation_order = 0
604 ls_env%scf_history%nstore = 0
605 ls_env%scf_history%istore = 0
606 ALLOCATE (ls_env%scf_history%matrix(ls_env%nspins, ls_env%scf_history%nstore))
608 NULLIFY (ls_env%mixing_store)
610 CALL timestop(handle)
612 END SUBROUTINE ec_ls_create
625 CHARACTER(LEN=*),
PARAMETER :: routinen =
'ec_write_input'
627 INTEGER :: handle, unit_nr
630 CALL timeset(routinen, handle)
634 IF (unit_nr > 0)
THEN
636 WRITE (unit_nr,
'(T2,A)') &
637 "!"//repeat(
"-", 29)//
" Energy Correction "//repeat(
"-", 29)//
"!"
640 SELECT CASE (ec_env%energy_functional)
642 WRITE (unit_nr,
'(T2,A,T61,A20)')
"Energy Correction: ",
"HARRIS FUNCTIONAL"
644 WRITE (unit_nr,
'(T2,A,T61,A20)')
"Energy Correction: ",
"DC-DFT"
646 WRITE (unit_nr,
'(T2,A,T61,A20)')
"Energy Correction: ",
"External"
648 WRITE (unit_nr,
'()')
651 WRITE (unit_nr,
'(T2,A,T61,E20.3)')
"eps_default:", ec_env%eps_default
654 SELECT CASE (ec_env%basis)
656 WRITE (unit_nr,
'(T2,A,T61,A20)')
"EC basis: ",
"ORBITAL"
658 WRITE (unit_nr,
'(T2,A,T61,A20)')
"EC basis: ",
"PRIMITIVE"
660 WRITE (unit_nr,
'(T2,A,T61,A20)')
"EC Basis: ",
"HARRIS"
664 IF (ec_env%do_ec_hfx)
THEN
666 WRITE (unit_nr,
'(T2,A,T61,L20)')
"DC-DFT with HFX", ec_env%do_ec_hfx
667 WRITE (unit_nr,
'(T2,A,T61,L20)')
"Reuse HFX integrals", ec_env%reuse_hfx
668 WRITE (unit_nr,
'(T2,A,T61,L20)')
"DC-DFT HFX with ADMM", ec_env%do_ec_admm
672 IF (ec_env%do_kpoints)
THEN
680 SELECT CASE (ec_env%ks_solver)
682 WRITE (unit_nr,
'(T2,A,T61,A20)')
"Algorithm: ",
"DIAGONALIZATION"
684 WRITE (unit_nr,
'(T2,A,T61,A20)')
"Algorithm: ",
"OT DIAGONALIZATION"
686 WRITE (unit_nr,
'(T2,A,T61,A20)')
"Algorithm: ",
"MATRIX_SIGN"
688 WRITE (unit_nr,
'(T2,A,T61,A20)')
"Algorithm: ",
"TRS4"
691 WRITE (unit_nr,
'(T2,A,T61,A20)')
"Algorithm: ",
"TC2"
694 WRITE (unit_nr,
'()')
698 WRITE (unit_nr,
'(T2,A,T61,L20)')
"MAO:", ec_env%mao
699 WRITE (unit_nr,
'(T2,A,T61,L20)')
"MAO_IOLEVEL:", ec_env%mao_iolevel
700 WRITE (unit_nr,
'(T2,A,T61,I20)')
"MAO_MAX_ITER:", ec_env%mao_max_iter
701 WRITE (unit_nr,
'(T2,A,T61,E20.3)')
"MAO_EPS_GRAD:", ec_env%mao_eps_grad
702 WRITE (unit_nr,
'(T2,A,T61,E20.3)')
"MAO_EPS1:", ec_env%mao_eps1
703 WRITE (unit_nr,
'()')
707 IF (.NOT. ec_env%use_ls_solver)
THEN
709 WRITE (unit_nr,
'(T2,A)')
"MO Solver"
710 WRITE (unit_nr,
'()')
712 SELECT CASE (ec_env%ks_solver)
715 SELECT CASE (ec_env%factorization)
717 WRITE (unit_nr,
'(T2,A,T61,A20)')
"Factorization: ",
"CHOLESKY"
726 SELECT CASE (ec_env%ec_initial_guess)
728 WRITE (unit_nr,
'(T2,A,T61,A20)')
"OT Diag initial guess: ",
"ATOMIC"
730 WRITE (unit_nr,
'(T2,A,T61,A20)')
"OT Diag initial guess: ",
"GROUND STATE DM"
734 cpabort(
"Unknown Diagonalization algorithm for Harris functional")
739 WRITE (unit_nr,
'(T2,A)')
"AO Solver"
740 WRITE (unit_nr,
'()')
742 ls_env => ec_env%ls_env
743 WRITE (unit_nr,
'(T2,A,T61,E20.3)')
"eps_filter:", ls_env%eps_filter
744 WRITE (unit_nr,
'(T2,A,T61,L20)')
"fixed chemical potential (mu)", ls_env%fixed_mu
745 WRITE (unit_nr,
'(T2,A,T61,L20)')
"Computing inv(S):", ls_env%needs_s_inv
746 WRITE (unit_nr,
'(T2,A,T61,L20)')
"Computing sqrt(S):", ls_env%use_s_sqrt
747 WRITE (unit_nr,
'(T2,A,T61,L20)')
"Computing S preconditioner ", ls_env%has_s_preconditioner
749 IF (ls_env%use_s_sqrt)
THEN
750 SELECT CASE (ls_env%s_sqrt_method)
752 WRITE (unit_nr,
'(T2,A,T61,A20)')
"S sqrt method:",
"NEWTONSCHULZ"
754 WRITE (unit_nr,
'(T2,A,T61,A20)')
"S sqrt method:",
"PROOT"
756 cpabort(
"Unknown sqrt method.")
758 WRITE (unit_nr,
'(T2,A,T61,I20)')
"S sqrt order:", ls_env%s_sqrt_order
761 SELECT CASE (ls_env%s_preconditioner_type)
763 WRITE (unit_nr,
'(T2,A,T61,A20)')
"S preconditioner type ",
"NONE"
765 WRITE (unit_nr,
'(T2,A,T61,A20)')
"S preconditioner type ",
"ATOMIC"
767 WRITE (unit_nr,
'(T2,A,T61,A20)')
"S preconditioner type ",
"MOLECULAR"
770 SELECT CASE (ls_env%ls_mstruct%cluster_type)
772 WRITE (unit_nr,
'(T2,A,T61,A20)')
"Cluster type", adjustr(
"ATOMIC")
774 WRITE (unit_nr,
'(T2,A,T61,A20)')
"Cluster type", adjustr(
"MOLECULAR")
776 cpabort(
"Unknown cluster type")
783 WRITE (unit_nr,
'(T2,A)') repeat(
"-", 79)
784 WRITE (unit_nr,
'()')
788 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
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 read_kpoint_section(kpoint, kpoint_section, a_vec)
Read the kpoint input section.
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.
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 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.
subroutine, public init_mo_set(mo_set, fm_pool, fm_ref, fm_struct, name)
initializes an allocated mo_set. eigenvalues, mo_coeff, occupation_numbers are valid only after this ...
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
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.