|
| real(kind=dp) function, public | qs_ot::qs_ot_antihermitian_spectral_norm (rotation_generator) |
| | spectral norm of a dense anti-Hermitian rotation generator
|
| pure real(kind=dp) function, public | qs_ot::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::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
|
| pure subroutine, public | qs_ot::qs_ot_fixed_n_energy_hessian (response_weight, fixed_n_weight_sum, hessian) |
| | dense fixed-N occupation Hessian in auxiliary-energy coordinates
|
| subroutine, public | qs_ot::qs_ot_fixed_n_schur_block (rotation_hessian, rayleigh_response, response_weight, rotation_gradient, energy_gradient, schur_block, coupling_vector, schur_rhs) |
| | local block of the fixed-N rotation/energy Schur complement
|
| subroutine, public | qs_ot::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::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::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
|
| pure subroutine, public | qs_ot::qs_ot_symmetric_sr1_update (matrix, step, response, updated_matrix, valid, relative_tolerance) |
| | add one accepted symmetric response secant to a reference Hessian
|
| subroutine, public | qs_ot::qs_ot_density_secant_hessian (density_step, hamiltonian_step, density_modes, correction, valid, density_norm_sq, response_work) |
| | project a self-adjoint density/Hamiltonian secant onto density-response modes
|
| subroutine, public | qs_ot::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::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::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::qs_ot_fixed_n_projector_frechet (chc, dchc, occupation, kpoint_weight, response_weight, fixed_n_weight_sum, projector_derivative, density_factor) |
| | fixed-N Frechet derivative of a smooth occupation projector
|
| subroutine, public | qs_ot::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::qs_ot_complex_exp_frechet_kernel (e1, e2) |
| | Frechet divided-difference kernel for exp(-i*evals).
|
| subroutine, public | qs_ot::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::qs_ot_new_preconditioner (qs_ot_env, preconditioner) |
| | gets ready to use the preconditioner/ or renew the preconditioner only keeps a pointer to the preconditioner. If you change the preconditioner, you have to call this routine you remain responsible of proper deallocate of your preconditioner (or you can reuse it on the next step of the computation)
|
| subroutine, public | qs_ot::qs_ot_get_orbitals_ref (matrix_c, matrix_s, matrix_x, matrix_sx, matrix_gx_old, matrix_dx, qs_ot_env, qs_ot_env1) |
| | ...
|
| subroutine, public | qs_ot::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::qs_ot_get_derivative_ref (matrix_hc, matrix_x, matrix_sx, matrix_gx, qs_ot_env) |
| | ...
|
| subroutine, public | qs_ot::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::qs_ot_get_p (matrix_x, matrix_sx, qs_ot_env) |
| | computes p=x*S*x and the matrix functionals related matrices
|
| subroutine, public | qs_ot::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::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::qs_ot_get_p_complex (matrix_x, matrix_x_im, matrix_sx, matrix_sx_im, qs_ot_env) |
| | compute P=X^H*S*X and the STRICT matrix functions for a complex K-point channel
|
| subroutine, public | qs_ot::qs_ot_generate_rotation (qs_ot_env) |
| | computes the rotation matrix rot_mat_u that is associated to a given rot_mat_x using rot_mat_u=exp(rot_mat_x)
|
| subroutine, public | qs_ot::qs_ot_rot_mat_derivative (qs_ot_env) |
| | computes the derivative fields with respect to rot_mat_x
|
| subroutine, public | qs_ot::qs_ot_get_orbitals (matrix_c, matrix_x, qs_ot_env) |
| | c=(c0*cos(p^0.5)+x*sin(p^0.5)*p^(-0.5)) x rot_mat_u this assumes that x is already ortho to S*C0, and that p is x*S*x rot_mat_u is an optional rotation matrix
|
| subroutine, public | qs_ot::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::qs_ot_get_derivative (matrix_hc, matrix_x, matrix_sx, matrix_gx, qs_ot_env) |
| | this routines computes dE/dx=dx, with dx ortho to sc0 needs dE/dC=hc,C0,X,SX,p if preconditioned it will not be the derivative, but the lagrangian multiplier is changed so that P*dE/dx is the right derivative (i.e. in the allowed subspace)
|
| subroutine, public | qs_ot::qs_ot_prepare_complex_tangent_metric (qs_ot_env, preconditioner_rejected) |
| | 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::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
|