#include <OrbitalTransform.h>
Definition at line 16 of file OrbitalTransform.h.
virtual simanneal::OrbitalTransform::~OrbitalTransform |
( |
| ) |
|
|
virtualdefault |
void OrbitalTransform::buildOneBodyMatrixElements |
( |
| ) |
|
This method fills the OneBodyMatrixElements array with the 1-body matrix elements so we can rotate them
Definition at line 138 of file OrbitalTransform.cpp.
void OrbitalTransform::CheckDeviationFromUnitary |
( |
| ) |
const |
void OrbitalTransform::DoJacobiRotation |
( |
CheMPS2::Hamiltonian & |
ham_rot, |
|
|
int |
k, |
|
|
int |
l, |
|
|
double |
theta |
|
) |
| |
Update ham_rot in place with a jacobi rotation between orbital k and l over an angle of theta. k and l should be in the same irrep.
- Parameters
-
ham_rot | The Hamiltonian to update |
k | the first orbital |
l | the second orbital |
theta | the angle to rotation over |
- Returns
- an rotated Hamiltonian
Definition at line 288 of file OrbitalTransform.cpp.
double OrbitalTransform::get_norb |
( |
int |
irrep | ) |
const |
UnitaryMatrix& simanneal::OrbitalTransform::get_unitary |
( |
| ) |
const |
|
inline |
void OrbitalTransform::rotate_old_to_new |
( |
std::unique_ptr< double[]> * |
matrix | ) |
|
|
private |
Calculates the rotation of the 1-body matrix T' = Q * T * Q^T It uses the OneBodyMatrixElements array as start and endpoint point and uses the Qmatrixwork as temp storage
Definition at line 180 of file OrbitalTransform.cpp.
double OrbitalTransform::TmatRotated |
( |
const int |
index1, |
|
|
const int |
index2 |
|
) |
| const |
void OrbitalTransform::update_unitary |
( |
double * |
step | ) |
|
void OrbitalTransform::update_unitary |
( |
const UnitaryMatrix & |
X, |
|
|
bool |
replace = false |
|
) |
| |
Update the unitary matrix with exp(X). In X you should store an anti-symmetric real matrix.
- Parameters
-
X | the anti-symmetric real matrix |
replace | replace or multiply? By default do exp(X)*U |
Definition at line 273 of file OrbitalTransform.cpp.
The rotation to perfrom on _hamorig to get the current hamiltonian.
Definition at line 48 of file OrbitalTransform.h.
OptIndex simanneal::OrbitalTransform::index |
|
private |
std::unique_ptr<double []> simanneal::OrbitalTransform::mem1 |
|
private |
std::unique_ptr<double []> simanneal::OrbitalTransform::mem2 |
|
private |
int simanneal::OrbitalTransform::numberOfIrreps |
|
private |
std::vector< std::unique_ptr<double []> > simanneal::OrbitalTransform::OneBodyMatrixElements |
|
private |
std::vector< std::unique_ptr<double []> > simanneal::OrbitalTransform::QmatrixWork |
|
private |
Some memory to do the one body work, allocated when needed.
Definition at line 57 of file OrbitalTransform.h.
The documentation for this class was generated from the following files: