(git:d077e66)
Loading...
Searching...
No Matches
qs_ot_kp.F File Reference

Go to the source code of this file.

Modules

module  qs_ot_kp
 Complex k-point orbital transformations, response kernels and local batch execution. Shared real/spectral operations are provided by qs_ot.

Functions/Subroutines

real(kind=dp) function, public qs_ot_kp::qs_ot_antihermitian_spectral_norm (rotation_generator)
 spectral norm of a dense anti-Hermitian rotation generator
pure real(kind=dp) function, public qs_ot_kp::qs_ot_fixed_n_response_mu_shift (weighted_energy_response, local_curvature_sum, fixed_n_curvature_sum)
 chemical-potential response for one fixed-electron-number group
pure subroutine, public qs_ot_kp::qs_ot_fixed_n_energy_gradient (rayleigh_energy, energy_coordinate, response_weight, fixed_n_weight_sum, fixed_n_weighted_residual, gradient)
 fixed-N Mermin gradient in auxiliary-energy coordinates
subroutine, public qs_ot_kp::qs_ot_fixed_n_multigroup_schur_block (rotation_hessian, rayleigh_response, response_weight, response_group, rotation_gradient, energy_gradient, schur_block, coupling_matrix, schur_rhs)
 eliminate spin-resolved auxiliary energies while retaining every fixed-N constraint
subroutine, public qs_ot_kp::qs_ot_symmetric_abs_solve (matrix, rhs, solution, valid, relative_floor)
 apply a positive spectral inverse of a real symmetric response matrix
subroutine, public qs_ot_kp::qs_ot_projected_response_update (reference_hessian, response_correction, coefficients, valid, projected_gradient, relative_floor)
 update a baseline response direction in a small positive physical-response subspace
subroutine, public qs_ot_kp::qs_ot_density_secant_projected_hessian (density_norm_sq, response_work, density_overlap, response_overlap, correction, valid, secant_mode, secant_position)
 form a projected self-adjoint Hxc response from distributed density-space overlaps
subroutine, public qs_ot_kp::qs_ot_density_tangent (rotation_generator, occupation, kpoint_weight, rotation_step, weighted_occupation_step, density_tangent, difference_step)
 finite-chart density tangent for coupled complex rotations and fixed-N occupations
subroutine, public qs_ot_kp::qs_ot_density_secant_orbital_overlaps (overlap_start_current, occupation_start, occupation_current, hamiltonian_step_start, hamiltonian_step_current, density_modes, kpoint_weight, density_norm_sq, response_work, density_overlap, response_overlap, valid)
 project a physical density/Hamiltonian secant between moving orbital subspaces
subroutine, public qs_ot_kp::qs_ot_finite_rotation_response (chc, rotation_generator, occupation, kpoint_weight, rotation_gradient, rotation_hessian, rayleigh_response, difference_step)
 finite complex REF rotation Hessian and Rayleigh-energy response
pure complex(kind=dp) function, public qs_ot_kp::qs_ot_complex_exp_frechet_kernel (e1, e2)
 Frechet divided-difference kernel for exp(-i*evals).
subroutine, public qs_ot_kp::qs_ot_apply_complex_frechet_dbcsr (evals, inner_deriv_re, inner_deriv_im, outer_deriv_re, outer_deriv_im, adjoint)
 apply the complex exponential Frechet kernel to sparse DBCSR Re/Im matrices
subroutine, public qs_ot_kp::qs_ot_get_orbitals_ref_complex (matrix_c, matrix_c_im, matrix_s, matrix_s_im, qs_ot_env, qs_ot_env1)
 update complex REF k-point orbitals and their S(k)C(k) images
subroutine, public qs_ot_kp::qs_ot_get_derivative_ref_complex (matrix_hc, matrix_hc_im, qs_ot_env, matrix_hc_rotation, matrix_hc_rotation_im)
 complex k-point REF derivative dE/dX from H(k)C(k), S(k)C(k), and C(k)
subroutine, public qs_ot_kp::qs_ot_generate_rotation_complex (qs_ot_env)
 computes U=exp(A) for the complex anti-Hermitian generator A=rot_mat_x+i*rot_mat_x_im
subroutine, public qs_ot_kp::qs_ot_rot_mat_derivative_complex (qs_ot_env)
 pull the complex dE/dU covector back to the anti-Hermitian generator using the adjoint Frechet derivative of exp
subroutine, public qs_ot_kp::qs_ot_get_p_complex (matrix_x, matrix_x_im, matrix_sx, matrix_sx_im, qs_ot_env, zero_coordinates)
 compute P=X^H*S*X and the STRICT matrix functions for a complex K-point channel
subroutine, public qs_ot_kp::qs_ot_get_orbitals_complex (matrix_c, matrix_c_im, matrix_s, matrix_s_im, qs_ot_env)
 update complex K-point orbitals with the finite STRICT transformation
subroutine, public qs_ot_kp::qs_ot_project_gradient (qs_ot_env, matrix_gx, matrix_gx_im, use_preconditioner)
 Project a complex STRICT gradient; real minimizer fallbacks use the shared real projection.
subroutine, public qs_ot_kp::qs_ot_prepare_complex_tangent_metric (qs_ot_env, preconditioner_rejected, use_preconditioner)
 Prepare the inverse metric used to project a complex STRICT gradient. An unusable preconditioner is detached before any minimizer history is updated.
subroutine, public qs_ot_kp::qs_ot_prepare_complex_tangent_metric_batch (qs_ot_env)
 Prepare uncached single-rank STRICT metrics in bounded OpenMP batches. Leave unsuccessful channels to the scalar path so preconditioner rejection and history invalidation retain their existing order. Workers use only private dense storage.
subroutine, public qs_ot_kp::qs_ot_get_derivative_complex (matrix_hc, matrix_hc_im, qs_ot_env, matrix_hc_rotation, matrix_hc_rotation_im)
 finite complex STRICT derivative, projected onto C0^H*S*X=0
subroutine, public qs_ot_kp::qs_ot_get_orbitals_local_batch (qs_ot_env, matrix_s, matrix_c, handled, initialize)
 Rebuild single-rank STRICT/IRAC orbitals in bounded batches using cached overlaps. DBCSR packing and writeback are outside OpenMP; workers only use dense data and private scratch.
subroutine, public qs_ot_kp::qs_ot_get_derivative_local_batch (qs_ot_env, matrix_hc, matrix_hc_im, handled, matrix_hc_physical, matrix_hc_physical_im)
 Evaluate independent, single-rank STRICT/IRAC gradients in bounded OpenMP batches. DBCSR packing, filtering and metric preparation stay outside the worker region.