(git:98357aa)
Loading...
Searching...
No Matches
floquet_utils.F File Reference

Go to the source code of this file.

Modules

module  floquet_utils
 Helper routines for the Floquet-Bloch band-structure calculation (floquet_main).
 

Functions/Subroutines

subroutine, public floquet_utils::build_floquet_matrix (bs_env, floquet_env, floquet_matrix)
 Builds the Floquet-Bloch Hamiltonian H_F(k) for a single k-point and spin channel from the band data currently held in floquet_env.
 
subroutine, public floquet_utils::distribute_floquet_kp_data (para_env, para_env_sub, ispin, ikp, e_k, de_dk, dipole, floquet_env)
 Make this k-point/spin's band data available to every rank of the owning subgroup.
 
subroutine, public floquet_utils::compute_e_k_de_dk_dipole (qs_env, bs_env, e_k, de_dk, dipole)
 Precompute, on the global communicator, the band quantities needed to assemble the Floquet-Bloch Hamiltonian for all DOS k-points (all spins), distributed across ranks.
 
subroutine, public floquet_utils::make_floquet_subgroups (qs_env, bs_env, para_env_sub, blacs_env_sub, group_distribution, ngroups)
 Split the para_env into subgroups so that the Floquet Hamiltonian is distributed across the ranks of each subgroup. Also creates the subgroup BLACS context.
 
subroutine, public floquet_utils::floquet_sector_weights (floquet_env, cfm_eigenvectors)
 Central and boundary-sector weights of every Floquet eigenvector, stored into floquet_envw0 and floquet_envwE.
 
subroutine, public floquet_utils::check_floquet_convergence (bs_env, floquet_env)
 Checks that MAX_FLOQUET_INDEX is large enough and the Floquet Hamiltonian was truncated far enough away from the central sector to leave it unperturbed.
 
subroutine, public floquet_utils::calculate_floquet_observables (bs_env, para_env_sub, ispin, ikp, floquet_env)
 Calculate all Floquet observables for one k-point and spin: the DOS (a_k), the m=0 bands, the quasi-energies, and store in floquet_env.
 
subroutine, public floquet_utils::write_floquet_header (bs_env)
 Print the Floquet header with the input parameters and a short description of the output.
 
subroutine, public floquet_utils::write_floquet_results (bs_env, floquet_env)
 Sum the accumulated results across MPI ranks and write the m=0 band structure, the quasi-energies and the Floquet DOS to their files.