psi::psimrcc::CCManyBody Class Reference

#include <manybody.h>

Inheritance diagram for psi::psimrcc::CCManyBody:

psi::psimrcc::IDMRPT2 psi::psimrcc::MP2_CCSD

List of all members.

Public Member Functions

 CCManyBody ()
virtual ~CCManyBody ()
void generate_integrals ()
void generate_denominators ()
void compute_reference_energy ()
void make_fock_matrix ()
void make_denominators ()
void print_method (const char *text)

Protected Member Functions

void print_eigensystem (int ndets, double **Heff, double *&eigenvector)
double diagonalize_Heff (int root, int ndets, double **Heff, double *&right_eigenvector, double *&left_eigenvector, bool initial)
void sort_eigensystem (int ndets, double *&real, double *&imaginary, double **&left, double **&right)
double c_H_c (int ndets, double **H, double *&c)
void generate_triples_denominators ()
void generate_d3_ijk (double ***&d3, bool alpha_i, bool alpha_j, bool alpha_k)
void generate_d3_abc (double ***&d3, bool alpha_a, bool alpha_b, bool alpha_c)
void deallocate_triples_denominators ()

Protected Attributes

double * zeroth_order_eigenvector
double * right_eigenvector
double * left_eigenvector
double ** Heff
double ** Heff_mrpt2
double current_energy
double delta_energy
double cas_energy
double old_energy
double huge
double total_time
double norm_amps
double delta_t1_amps
double delta_t2_amps
bool pert_cbs
bool pert_cbs_coupling
TriplesType triples_type
TriplesCouplingType triples_coupling_type
double *** d3_ooo
double *** d3_ooO
double *** d3_oOO
double *** d3_OOO
double *** d3_vvv
double *** d3_vvV
double *** d3_vVV
double *** d3_VVV


Detailed Description

Author:
Francesco Evangelista <frank@ccc.uga.edu>

Constructor & Destructor Documentation

psi::psimrcc::CCManyBody::CCManyBody (  ) 

Allocate the effective Hamiltonian matrices and eigenvectors

Todo:
wrap the current operations in an init() function

psi::psimrcc::CCManyBody::~CCManyBody (  )  [virtual]

Deallocate the effective Hamiltonian matrices and eigenvectors

Todo:
wrap the current operations in an cleanup() function


Member Function Documentation

void psi::psimrcc::CCManyBody::generate_integrals (  ) 

Creates a CCSort object and stores the address in the global pointer sorter

void psi::psimrcc::CCManyBody::generate_denominators (  ) 

Generates the MP denominators

\[ \Delta_{ij...}^{ab...}(\mu) = f_{ii}(\mu) + f_{jj}(\mu) + ... - f_{aa}(\mu) - f_{bb}(\mu) - ... \]

where the excitations that are not allowed in reference $ \mu $ are set to a large value (see huge)

void psi::psimrcc::CCManyBody::compute_reference_energy (  ) 

Computes the energy for each unique reference determinant

double psi::psimrcc::CCManyBody::diagonalize_Heff ( int  root,
int  ndets,
double **  Heff,
double *&  right_eigenvector,
double *&  left_eigenvector,
bool  initial 
) [protected]

This function computes the left and right eigenvalues of a generic real matrix

Parameters:
root selects the root for which the left-eigenvector must be saved
ndets size of the matrix
Heff the $ \mathbf{H}^{\mathrm{eff}} $ matrix stored as a double**
eigenvector the $ \mathbf{c} $ left-eigenvector stored as a double* *
initial a bool used to enable root following. initial = true allows you to select a root while initial = false follows the root that has the largest overlap with the previous eigenvector
Returns:

double psi::psimrcc::CCManyBody::c_H_c ( int  ndets,
double **  H,
double *&  c 
) [protected]

This function computes $ E = \mathbf{c}^{\dagger} \mathbf{H} \mathbf{c} $

Parameters:
ndets size of the $ \mathbf{c} $ vector
H the $ \mathbf{H} $ matrix stored as a double**
c the $ \mathbf{c} $ vector stored as a double*
Returns:
$ E $


The documentation for this class was generated from the following files:

Generated on Mon Dec 21 14:14:50 2009 for PSI by  doxygen 1.5.6