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) | :: | Hamiltonian | The matrix to compute the corresponding density from |
||
type(Matrix_ps), | intent(in) | :: | InverseSquareRoot | The inverse square root of the overlap matrix. |
||
integer, | intent(in) | :: | nel | The number of electrons. |
||
type(Matrix_ps), | intent(inout) | :: | Density | 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). |