Compute the density matrix from a Hamiltonian using the Scale and Fold method. Based on the method of \cite rubensson2011nonmonotonic . Note that for this method, you must provide the value of the homo and lumo gap. It is not necessary for these to be accurate, but give a conservative value.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(Matrix_ps), | intent(in) | :: | H |
The matrix to compute the corresponding density from |
||
type(Matrix_ps), | intent(in) | :: | ISQ |
The inverse square root of the overlap matrix. |
||
real(kind=NTREAL), | intent(in) | :: | trace |
The trace of the density matrix (usually the number of electrons) |
||
type(Matrix_ps), | intent(inout) | :: | K |
The density matrix computed by this routine. |
||
real(kind=NTREAL), | intent(in) | :: | homo |
A conservative estimate of the highest occupied eigenvalue. |
||
real(kind=NTREAL), | intent(in) | :: | lumo |
A conservative estimate of the lowest unoccupied eigenvalue. |
||
real(kind=NTREAL), | intent(out), | optional | :: | energy_value_out |
The energy of the system (optional). |
|
type(SolverParameters_t), | intent(in), | optional | :: | solver_parameters_in |
Parameters for the solver (optional). |