(git:e8f5963)
Loading...
Searching...
No Matches
post_scf_bandstructure_methods.F
Go to the documentation of this file.
1!--------------------------------------------------------------------------------------------------!
2! CP2K: A general program to perform molecular dynamics simulations !
3! Copyright 2000-2026 CP2K developers group <https://cp2k.org> !
4! !
5! SPDX-License-Identifier: GPL-2.0-or-later !
6!--------------------------------------------------------------------------------------------------!
7
9 USE floquet_main, ONLY: floquet
10 USE gw_main, ONLY: gw
14 soc
16 USE qs_scf, ONLY: scf
17#include "./base/base_uses.f90"
18
19 IMPLICIT NONE
20
21 PRIVATE
22
23 CHARACTER(len=*), PARAMETER, PRIVATE :: moduleN = 'post_scf_bandstructure_methods'
24
26
27CONTAINS
28
29! **************************************************************************************************
30!> \brief Perform post-SCF band structure calculations from higher level methods
31!> \param qs_env Quickstep environment
32!> \param post_scf_bandstructure_section ...
33!> \par History
34!> * 07.2023 created [Jan Wilhelm]
35! **************************************************************************************************
36 SUBROUTINE post_scf_bandstructure(qs_env, post_scf_bandstructure_section)
37 TYPE(qs_environment_type), POINTER :: qs_env
38 TYPE(section_vals_type), POINTER :: post_scf_bandstructure_section
39
40 CHARACTER(LEN=*), PARAMETER :: routinen = 'post_scf_bandstructure'
41
42 INTEGER :: handle
43
44 CALL timeset(routinen, handle)
45
46 ! general setup of post SCF bandstructure calculation
47 CALL create_and_init_bs_env(qs_env, qs_env%bs_env, post_scf_bandstructure_section)
48
49 ! shifts of eigenvalues/bandstructure due to spin-orbit coupling from pseudopotentials
50 IF (qs_env%bs_env%do_soc) THEN
51 CALL soc(qs_env, qs_env%bs_env)
52 END IF
53
54 ! GW calculation for eigenvalues/bandstructure for molecules and periodic systems
55 IF (qs_env%bs_env%do_gw) THEN
56 CALL gw(qs_env, qs_env%bs_env, post_scf_bandstructure_section)
57 END IF
58
59 ! density of states (DOS), projected DOS, local DOS for DFT, DFT+SOC, G0W0, G0W0+SOC
60 CALL eval_bandstructure_properties(qs_env, qs_env%bs_env)
61
62 ! Floquet Hamiltonian Diagonalization and calculation of Floquet Density of States
63 IF (qs_env%bs_env%do_floquet) THEN
64 CALL floquet(qs_env, qs_env%bs_env)
65 END IF
66
67 CALL timestop(handle)
68
69 END SUBROUTINE post_scf_bandstructure
70
Floquet stuff.
subroutine, public floquet(qs_env, bs_env)
...
subroutine, public gw(qs_env, bs_env, post_scf_bandstructure_section)
Perform GW band structure calculation.
Definition gw_main.F:48
objects that represent the structure of input sections and the data contained in an input section
subroutine, public post_scf_bandstructure(qs_env, post_scf_bandstructure_section)
Perform post-SCF band structure calculations from higher level methods.
subroutine, public eval_bandstructure_properties(qs_env, bs_env)
...
subroutine, public soc(qs_env, bs_env)
...
subroutine, public create_and_init_bs_env(qs_env, bs_env, post_scf_bandstructure_section)
...
Routines for the Quickstep SCF run.
Definition qs_scf.F:47
subroutine, public scf(qs_env, has_converged, total_scf_steps)
perform an scf procedure in the given qs_env
Definition qs_scf.F:206