A Module For Solving Quantum Chemistry Systems using Purification.
Compute the density matrix from a Hamiltonian using the PM method. Based on the PM algorithm presented in \cite palser1998canonical
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(out), | optional | :: | energy_value_out | The energy of the system (optional). |
|
real(kind=NTREAL), | intent(out), | optional | :: | chemical_potential_out | The chemical potential (optional). |
|
type(SolverParameters_t), | intent(in), | optional | :: | solver_parameters_in | Parameters for the solver (optional). |
Compute the density matrix from a Hamiltonian using the TRS2 method. Based on the TRS2 algorithm presented in \cite niklasson2002.
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(out), | optional | :: | energy_value_out | The energy of the system (optional). |
|
real(kind=NTREAL), | intent(out), | optional | :: | chemical_potential_out | The chemical potential (optional). |
|
type(SolverParameters_t), | intent(in), | optional | :: | solver_parameters_in | Parameters for the solver (optional). |
Compute the density matrix from a Hamiltonian using the TRS4 method. Based on the TRS4 algorithm presented in \cite niklasson2002
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(out), | optional | :: | energy_value_out | The energy of the system (optional). |
|
real(kind=NTREAL), | intent(out), | optional | :: | chemical_potential_out | The chemical potential (optional). |
|
type(SolverParameters_t), | intent(in), | optional | :: | solver_parameters_in | Parameters for the solver (optional). |
Compute the density matrix from a Hamiltonian using the HPCP method. Based on the algorithm presented in \cite truflandier2016communication.
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(out), | optional | :: | energy_value_out | The energy of the system (optional). |
|
real(kind=NTREAL), | intent(out), | optional | :: | chemical_potential_out | The chemical potential (optional). |
|
type(SolverParameters_t), | intent(in), | optional | :: | solver_parameters_in | Parameters for the solver (optional). |
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). |
Compute the energy-weighted density matrix.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(Matrix_ps), | intent(in) | :: | Hamiltonian | The matrix to compute from. |
||
type(Matrix_ps), | intent(in) | :: | Density | The density matrix. |
||
type(Matrix_ps), | intent(inout) | :: | EnergyDensity | The energy-weighted density matrix. |
||
real(kind=NTREAL), | intent(in), | optional | :: | threshold_in | Threshold for flushing small values (default = 0). |