orbital transformations
More...
|
subroutine, public | 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_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_get_derivative_ref (matrix_hc, matrix_x, matrix_sx, matrix_gx, qs_ot_env) |
| ...
|
|
subroutine, public | 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_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_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)
|
|
orbital transformations
- History
- Added Taylor expansion based computation of the matrix functions (01.2004) added additional rotation variables for non-equivalent occupied orbs (08.2004)
- Author
- Joost VandeVondele (06.2002)
◆ qs_ot_new_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)
- Parameters
-
qs_ot_env | ... |
preconditioner | ... |
Definition at line 72 of file qs_ot.F.
◆ qs_ot_get_orbitals_ref()
subroutine, public qs_ot::qs_ot_get_orbitals_ref |
( |
type(dbcsr_type), pointer |
matrix_c, |
|
|
type(dbcsr_type), pointer |
matrix_s, |
|
|
type(dbcsr_type), pointer |
matrix_x, |
|
|
type(dbcsr_type), pointer |
matrix_sx, |
|
|
type(dbcsr_type), pointer |
matrix_gx_old, |
|
|
type(dbcsr_type), pointer |
matrix_dx, |
|
|
type(qs_ot_type) |
qs_ot_env, |
|
|
type(qs_ot_type) |
qs_ot_env1 |
|
) |
| |
...
- Parameters
-
matrix_c | ... |
matrix_s | ... |
matrix_x | ... |
matrix_sx | ... |
matrix_gx_old | ... |
matrix_dx | ... |
qs_ot_env | ... |
qs_ot_env1 | ... |
Definition at line 514 of file qs_ot.F.
◆ qs_ot_get_derivative_ref()
...
- Parameters
-
matrix_hc | ... |
matrix_x | ... |
matrix_sx | ... |
matrix_gx | ... |
qs_ot_env | ... |
Definition at line 699 of file qs_ot.F.
◆ qs_ot_get_p()
computes p=x*S*x and the matrix functionals related matrices
- Parameters
-
matrix_x | ... |
matrix_sx | ... |
qs_ot_env | ... |
Definition at line 747 of file qs_ot.F.
◆ qs_ot_get_orbitals()
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
- Parameters
-
matrix_c | ... |
matrix_x | ... |
qs_ot_env | ... |
Definition at line 1019 of file qs_ot.F.
◆ qs_ot_get_derivative()
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)
- Parameters
-
matrix_hc | ... |
matrix_x | ... |
matrix_sx | ... |
matrix_gx | ... |
qs_ot_env | ... |
Definition at line 1072 of file qs_ot.F.