|
DOCI-Exact
1.0
|
#include <DM2.h>
Public Member Functions | |
| DM2 (unsigned int, unsigned int) | |
| DM2 (const Molecule &) | |
| DM2 (const DM2 &) | |
| DM2 (DM2 &&) | |
| virtual | ~DM2 ()=default |
| DM2 & | operator= (const DM2 &) |
| DM2 & | operator= (DM2 &&) |
| DM2 & | operator= (double) |
| double | operator() (int, int, int, int) const |
| DM2 & | operator+= (const DM2 &) |
| void | WriteToFile (const std::string) const |
| unsigned int | get_n_electrons () const |
| unsigned int | get_n_sp () const |
| void | Build (Permutation &, std::vector< double > &) |
| void | BuildHamiltonian (const Molecule &) |
| double | Dot (const DM2 &) const |
| double | Trace () const |
| std::pair< double, bool > | find_min_angle (int k, int l, double start_angle, std::function< double(int, int)> &T, std::function< double(int, int, int, int)> &V) const |
| double | calc_rotate (int k, int l, double theta, std::function< double(int, int)> &T, std::function< double(int, int, int, int)> &V) const |
| DM2 (unsigned int, unsigned int) | |
| DM2 (const Molecule &) | |
| DM2 (const DM2 &) | |
| DM2 (DM2 &&) | |
| virtual | ~DM2 ()=default |
| DM2 & | operator= (const DM2 &) |
| DM2 & | operator= (DM2 &&) |
| DM2 & | operator= (double) |
| double | operator() (int, int, int, int) const |
| DM2 & | operator+= (const DM2 &) |
| void | WriteToFile (const std::string) const |
| unsigned int | get_n_electrons () const |
| unsigned int | get_n_sp () const |
| void | Build (Permutation &, std::vector< double > &) |
| void | BuildHamiltonian (const Molecule &) |
| double | Dot (const DM2 &) const |
| double | Trace () const |
| std::pair< double, bool > | find_min_angle (int k, int l, double start_angle, std::function< double(int, int)> &T, std::function< double(int, int, int, int)> &V) const |
| double | calc_rotate (int k, int l, double theta, std::function< double(int, int)> &T, std::function< double(int, int, int, int)> &V) const |
Static Public Member Functions | |
| static DM2 | ReadFromFile (const std::string) |
| static DM2 | ReadFromFile (const std::string) |
Friends | |
| std::ostream & | operator<< (std::ostream &, doci::DM2 &) |
| std::ostream & | operator<< (std::ostream &, doci::DM2 &) |
This will store an second order density matrix from a DOCI wavefunction. It only stores the non-zero elements, meaning: a block with dimension of the sp levels and a diagonal that is four fold degenerate.
| DM2::DM2 | ( | unsigned int | n_sp, |
| unsigned int | n | ||
| ) |
| DM2::DM2 | ( | const Molecule & | mol | ) |
|
virtualdefault |
| doci::DM2::DM2 | ( | unsigned | int, |
| unsigned | int | ||
| ) |
| doci::DM2::DM2 | ( | const Molecule & | ) |
| doci::DM2::DM2 | ( | const DM2 & | ) |
| doci::DM2::DM2 | ( | DM2 && | ) |
|
virtualdefault |
| void DM2::Build | ( | Permutation & | perm, |
| std::vector< double > & | eigv | ||
| ) |
Build the second order density matrix from a DOCI wavefunction using the Permutation object and the ground state eigen vector
| perm | the Permutation object to use |
| eigv | the eigenvector to build the DM2 from |
Definition at line 373 of file DM2.cpp.
Here is the call graph for this function:
Here is the caller graph for this function:| void doci::DM2::Build | ( | Permutation & | , |
| std::vector< double > & | |||
| ) |
| void DM2::BuildHamiltonian | ( | const Molecule & | mol | ) |
| void doci::DM2::BuildHamiltonian | ( | const Molecule & | ) |
| double DM2::calc_rotate | ( | int | k, |
| int | l, | ||
| double | theta, | ||
| std::function< double(int, int)> & | T, | ||
| std::function< double(int, int, int, int)> & | V | ||
| ) | const |
Calculate the energy change when you rotate orbital k and l over an angle of theta with the rotation in the full space of the orbitals.
| k | the first orbital |
| l | the second orbital |
| theta | the angle to rotate over |
| T | function that returns the one-particle matrix elements |
| V | function that returns the two-particle matrix elements |
| double doci::DM2::calc_rotate | ( | int | k, |
| int | l, | ||
| double | theta, | ||
| std::function< double(int, int)> & | T, | ||
| std::function< double(int, int, int, int)> & | V | ||
| ) | const |
| double doci::DM2::Dot | ( | const DM2 & | ) | const |
| double DM2::Dot | ( | const DM2 & | x | ) | const |
| std::pair< double, bool > DM2::find_min_angle | ( | int | k, |
| int | l, | ||
| double | start_angle, | ||
| std::function< double(int, int)> & | T, | ||
| std::function< double(int, int, int, int)> & | V | ||
| ) | const |
Find the minimum with Newton-Raphson for the angle of a jacobi rotation between orbitals k and l in the DOCI space.
| k | the first orbital |
| l | the second orbital |
| start_angle | the starting point for the Newton-Raphson (defaults to zero) |
| T | function that returns the one-particle matrix elements |
| V | function that returns the two-particle matrix elements |
| std::pair<double,bool> doci::DM2::find_min_angle | ( | int | k, |
| int | l, | ||
| double | start_angle, | ||
| std::function< double(int, int)> & | T, | ||
| std::function< double(int, int, int, int)> & | V | ||
| ) | const |
| unsigned int DM2::get_n_electrons | ( | ) | const |
| unsigned int doci::DM2::get_n_electrons | ( | ) | const |
| unsigned int DM2::get_n_sp | ( | ) | const |
| unsigned int doci::DM2::get_n_sp | ( | ) | const |
| double DM2::operator() | ( | int | a, |
| int | b, | ||
| int | c, | ||
| int | d | ||
| ) | const |
| double doci::DM2::operator() | ( | int | , |
| int | , | ||
| int | , | ||
| int | |||
| ) | const |
| DM2& doci::DM2::operator= | ( | double | ) |
| DM2 & DM2::operator= | ( | double | val | ) |
|
static |
|
static |
| double DM2::Trace | ( | ) | const |
| double doci::DM2::Trace | ( | ) | const |
| void doci::DM2::WriteToFile | ( | const std::string | ) | const |
| void DM2::WriteToFile | ( | const std::string | filename | ) | const |
|
friend |
|
friend |