DensityMatrixSolversModule Module

A Module For Solving Quantum Chemistry Systems using Purification.



Contents


Subroutines

public subroutine PM(Hamiltonian, InverseSquareRoot, nel, Density, energy_value_out, chemical_potential_out, solver_parameters_in)

Compute the density matrix from a Hamiltonian using the PM method.

Arguments

Type IntentOptional AttributesName
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).

public subroutine TRS2(Hamiltonian, InverseSquareRoot, nel, Density, energy_value_out, chemical_potential_out, solver_parameters_in)

Compute the density matrix from a Hamiltonian using the TRS2 method.

Arguments

Type IntentOptional AttributesName
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).

public subroutine TRS4(Hamiltonian, InverseSquareRoot, nel, Density, energy_value_out, chemical_potential_out, solver_parameters_in)

Compute the density matrix from a Hamiltonian using the TRS4 method.

Arguments

Type IntentOptional AttributesName
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).

public subroutine HPCP(Hamiltonian, InverseSquareRoot, nel, Density, energy_value_out, chemical_potential_out, solver_parameters_in)

Compute the density matrix from a Hamiltonian using the HPCP method.

Arguments

Type IntentOptional AttributesName
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).

public subroutine DenseSolver(Hamiltonian, InverseSquareRoot, nel, Density, energy_value_out, chemical_potential_out, solver_parameters_in)

Compute the density matrix of a system using the eigendecomposition.

Arguments

Type IntentOptional AttributesName
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).

public subroutine EnergyDensityMatrix(Hamiltonian, Density, EnergyDensity, threshold_in)

Compute the energy-weighted density matrix.

Arguments

Type IntentOptional AttributesName
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).