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