(git:ed6f26b)
Loading...
Searching...
No Matches
qs_ot.F File Reference

Go to the source code of this file.

Modules

module  qs_ot
 orbital transformations
 

Functions/Subroutines

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_derivative_ref (matrix_hc, matrix_x, matrix_sx, matrix_gx, qs_ot_env)
 ...
 
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_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_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)