Go to the source code of this file.
|
module | qs_ot |
| orbital transformations
|
|
|
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)
|
|