A Class For Solving Chemistry Systems Based On Sparse Matrices.
More...
#include <DensityMatrixSolvers.h>
|
| static void | PM (const Matrix_ps &Hamiltonian, const Matrix_ps &InverseSquareRoot, double trace, Matrix_ps &Density, double &energy_value_out, double &chemical_potential_out, const SolverParameters &solver_parameters) |
| |
| static void | TRS2 (const Matrix_ps &Hamiltonian, const Matrix_ps &InverseSquareRoot, double trace, Matrix_ps &Density, double &energy_value_out, double &chemical_potential_out, const SolverParameters &solver_parameters) |
| |
| static void | TRS4 (const Matrix_ps &Hamiltonian, const Matrix_ps &InverseSquareRoot, double trace, Matrix_ps &Density, double &energy_value_out, double &chemical_potential_out, const SolverParameters &solver_parameters) |
| |
| static void | HPCP (const Matrix_ps &Hamiltonian, const Matrix_ps &InverseSquareRoot, double trace, Matrix_ps &Density, double &energy_value_out, double &chemical_potential_out, const SolverParameters &solver_parameters) |
| |
| static void | ScaleAndFold (const Matrix_ps &Hamiltonian, const Matrix_ps &InverseSquareRoot, double trace, Matrix_ps &Density, double homo, double lumo, double &energy_value_out, const SolverParameters &solver_parameters) |
| |
| static void | DenseDensity (const Matrix_ps &Hamiltonian, const Matrix_ps &InverseSquareRoot, double trace, Matrix_ps &Density, double &energy_value_out, double &chemical_potential_out, const SolverParameters &solver_parameters) |
| |
| static void | EnergyDensityMatrix (const Matrix_ps &Hamiltonian, const Matrix_ps &Density, Matrix_ps &EnergyDensity, double threshold=0.0) |
| |
| static void | McWeenyStep (const Matrix_ps &D, Matrix_ps &DOut, double threshold=0.0) |
| |
| static void | McWeenyStep (const Matrix_ps &D, const Matrix_ps &S, Matrix_ps &DOut, double threshold=0.0) |
| |
A Class For Solving Chemistry Systems Based On Sparse Matrices.
◆ DenseDensity()
| void NTPoly::DensityMatrixSolvers::DenseDensity |
( |
const Matrix_ps & |
Hamiltonian, |
|
|
const Matrix_ps & |
InverseSquareRoot, |
|
|
double |
trace, |
|
|
Matrix_ps & |
Density, |
|
|
double & |
energy_value_out, |
|
|
double & |
chemical_potential_out, |
|
|
const SolverParameters & |
solver_parameters |
|
) |
| |
|
static |
Compute the density matrix using a dense solver.
- Parameters
-
| Hamiltonian | the matrix to compute the corresponding density from. |
| InverseSquareRoot | of the overlap matrix. |
| trace | of the density matrix (usually the number of electrons). |
| Density | the density matrix computed by this routine. |
| energy_value_out | the energy of the system (optional). |
| chemical_potential_out | the chemical potential calculated. |
| solver_parameters | parameters for the solver |
◆ EnergyDensityMatrix()
| void NTPoly::DensityMatrixSolvers::EnergyDensityMatrix |
( |
const Matrix_ps & |
Hamiltonian, |
|
|
const Matrix_ps & |
Density, |
|
|
Matrix_ps & |
EnergyDensity, |
|
|
double |
threshold = 0.0 |
|
) |
| |
|
static |
Compute the energy-weighted density matrix.
- Parameters
-
| Hamiltonian | the matrix to compute from. |
| Density | the density matrix. |
| EnergyDensity | the energy-weighted density matrix to compute. |
| threshold | for flushing small values to zero. |
◆ HPCP()
| void NTPoly::DensityMatrixSolvers::HPCP |
( |
const Matrix_ps & |
Hamiltonian, |
|
|
const Matrix_ps & |
InverseSquareRoot, |
|
|
double |
trace, |
|
|
Matrix_ps & |
Density, |
|
|
double & |
energy_value_out, |
|
|
double & |
chemical_potential_out, |
|
|
const SolverParameters & |
solver_parameters |
|
) |
| |
|
static |
Compute the density matrix from a Hamiltonian using the HPCP method. Based on the algorithm presented in: [6]
- Parameters
-
| Hamiltonian | the matrix to compute the corresponding density from. |
| InverseSquareRoot | of the overlap matrix. |
| trace | of the density matrix (usually the number of electrons). |
| Density | the density matrix computed by this routine. |
| energy_value_out | the energy of the system (optional). |
| chemical_potential_out | the chemical potential calculated. |
| solver_parameters | parameters for the solver |
◆ McWeenyStep() [1/2]
Take one McWeeny Step DOut = 3*DSD - 2*DSDSD
- Parameters
-
| D | the density matrix. |
| S | the overlap matrix. |
| DOut | a more purified matrix. |
| threshold | for flushing small values to zero. |
◆ McWeenyStep() [2/2]
| void NTPoly::DensityMatrixSolvers::McWeenyStep |
( |
const Matrix_ps & |
D, |
|
|
Matrix_ps & |
DOut, |
|
|
double |
threshold = 0.0 |
|
) |
| |
|
static |
Take one McWeeny Step DOut = 3*DD - 2*DDD
- Parameters
-
| D | the density matrix. |
| DOut | a more purified matrix. |
| threshold | for flushing small values to zero. |
◆ PM()
| void NTPoly::DensityMatrixSolvers::PM |
( |
const Matrix_ps & |
Hamiltonian, |
|
|
const Matrix_ps & |
InverseSquareRoot, |
|
|
double |
trace, |
|
|
Matrix_ps & |
Density, |
|
|
double & |
energy_value_out, |
|
|
double & |
chemical_potential_out, |
|
|
const SolverParameters & |
solver_parameters |
|
) |
| |
|
static |
Compute the density matrix from a Hamiltonian using the PM method. Based on the PM algorithm presented in [4]
- Parameters
-
| Hamiltonian | the matrix to compute the corresponding density from. |
| InverseSquareRoot | of the overlap matrix. |
| trace | of the density matrix (usually the number of electrons). |
| Density | the density matrix computed by this routine. |
| energy_value_out | the energy of the system (optional). |
| chemical_potential_out | the chemical potential calculated. |
| solver_parameters | parameters for the solver |
◆ ScaleAndFold()
| void NTPoly::DensityMatrixSolvers::ScaleAndFold |
( |
const Matrix_ps & |
Hamiltonian, |
|
|
const Matrix_ps & |
InverseSquareRoot, |
|
|
double |
trace, |
|
|
Matrix_ps & |
Density, |
|
|
double |
homo, |
|
|
double |
lumo, |
|
|
double & |
energy_value_out, |
|
|
const SolverParameters & |
solver_parameters |
|
) |
| |
|
static |
Compute the density matrix from a Hamiltonian using the Scale and Fold method. Based on the method of [5] . 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.
- Parameters
-
| Hamiltonian | the matrix to compute the corresponding density from. |
| InverseSquareRoot | of the overlap matrix. |
| trace | of the density matrix (usually the number of electrons). |
| Density | the density matrix computed by this routine. |
| homo | A conservative estimate of the highest occupied eigenvalue. |
| lumo | A conservative estimate of the lowest unoccupied eigenvalue. |
| energy_value_out | the energy of the system (optional). |
| solver_parameters | parameters for the solver |
◆ TRS2()
| void NTPoly::DensityMatrixSolvers::TRS2 |
( |
const Matrix_ps & |
Hamiltonian, |
|
|
const Matrix_ps & |
InverseSquareRoot, |
|
|
double |
trace, |
|
|
Matrix_ps & |
Density, |
|
|
double & |
energy_value_out, |
|
|
double & |
chemical_potential_out, |
|
|
const SolverParameters & |
solver_parameters |
|
) |
| |
|
static |
Compute the density matrix from a Hamiltonian using the TRS2 method. Based on the TRS2 algorithm presented in: [3].
- Parameters
-
| Hamiltonian | the matrix to compute the corresponding density from. |
| InverseSquareRoot | of the overlap matrix. |
| trace | of the density matrix (usually the number of electrons). |
| Density | the density matrix computed by this routine. |
| energy_value_out | the energy of the system (optional). |
| chemical_potential_out | the chemical potential calculated. |
| solver_parameters | parameters for the solver |
◆ TRS4()
| void NTPoly::DensityMatrixSolvers::TRS4 |
( |
const Matrix_ps & |
Hamiltonian, |
|
|
const Matrix_ps & |
InverseSquareRoot, |
|
|
double |
trace, |
|
|
Matrix_ps & |
Density, |
|
|
double & |
energy_value_out, |
|
|
double & |
chemical_potential_out, |
|
|
const SolverParameters & |
solver_parameters |
|
) |
| |
|
static |
Compute the density matrix from a Hamiltonian using the TRS4 method. Based on the TRS4 algorithm presented in: [3] .
- Parameters
-
| Hamiltonian | the matrix to compute the corresponding density from. |
| InverseSquareRoot | of the overlap matrix. |
| trace | of the density matrix (usually the number of electrons). |
| Density | the density matrix computed by this routine. |
| energy_value_out | the energy of the system (optional). |
| chemical_potential_out | the chemical potential calculated. |
| solver_parameters | parameters for the solver |
The documentation for this class was generated from the following files:
- /Users/wddawson/Desktop/NTPoly/Source/CPlusPlus/DensityMatrixSolvers.h
- /Users/wddawson/Desktop/NTPoly/Source/CPlusPlus/DensityMatrixSolvers.cc