DOCI-Exact  1.0
doci::PSI_C1_Molecule Class Reference

#include <Molecule.h>

+ Inheritance diagram for doci::PSI_C1_Molecule:
+ Collaboration diagram for doci::PSI_C1_Molecule:

Public Member Functions

 PSI_C1_Molecule (std::string)
 
 PSI_C1_Molecule (const PSI_C1_Molecule &)
 
 PSI_C1_Molecule (PSI_C1_Molecule &&)
 
PSI_C1_Moleculeoperator= (const PSI_C1_Molecule &)
 
PSI_C1_Moleculeoperator= (PSI_C1_Molecule &&)
 
PSI_C1_Moleculeclone () const
 
PSI_C1_Moleculemove ()
 
double getT (int, int) const
 
double getV (int, int, int, int) const
 
void Print () const
 
double HF_Energy () const
 
 PSI_C1_Molecule (std::string)
 
 PSI_C1_Molecule (const PSI_C1_Molecule &)
 
 PSI_C1_Molecule (PSI_C1_Molecule &&)
 
PSI_C1_Moleculeoperator= (const PSI_C1_Molecule &)
 
PSI_C1_Moleculeoperator= (PSI_C1_Molecule &&)
 
PSI_C1_Moleculeclone () const
 
PSI_C1_Moleculemove ()
 
double getT (int, int) const
 
double getV (int, int, int, int) const
 
void Print () const
 
double HF_Energy () const
 
- Public Member Functions inherited from doci::Molecule
virtual ~Molecule ()=default
 
virtual double get_nucl_rep () const
 
virtual unsigned int get_n_sp () const
 
virtual unsigned int get_n_electrons () const
 
virtual ~Molecule ()=default
 
virtual double get_nucl_rep () const
 
virtual unsigned int get_n_sp () const
 
virtual unsigned int get_n_electrons () const
 

Additional Inherited Members

- Protected Attributes inherited from doci::Molecule
unsigned int n_electrons
 number of electrons More...
 
double nucl_rep
 nuclear repulsion (const part to add to the energy) More...
 
unsigned int n_sp
 the size of the single particles space (without spin) More...
 

Detailed Description

We will store the matrix elements generated by our PSI4 plugin in this this class. We don't use any symmetry (aka, C1 symmetry). It needs nice orthonormal matrix elements. Currently, we supply them from a HDF5 file. We use a RHF basis as starting point but you can do anything.

Definition at line 55 of file Molecule.h.

Constructor & Destructor Documentation

PSI_C1_Molecule::PSI_C1_Molecule ( std::string  filename)

Constructor. This reads a HDF5 file with the integrals. It expects following file format: /integrals/OEI => array with One electron integrals /integrals/TEI => array with Two electron integrals /integrals should have following attributes:

  • nelectrons => number of electrons
  • nuclear_repulsion_energy => nuclear repulsion energy
  • sp_dim => size of the single particles basis
    Parameters
    filenamethe HDF5 file to read the OEI and TEI from

Definition at line 50 of file Molecule.cpp.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

PSI_C1_Molecule::PSI_C1_Molecule ( const PSI_C1_Molecule orig)

Copy constructor

Definition at line 124 of file Molecule.cpp.

PSI_C1_Molecule::PSI_C1_Molecule ( PSI_C1_Molecule &&  orig)

Move constructor

Definition at line 137 of file Molecule.cpp.

doci::PSI_C1_Molecule::PSI_C1_Molecule ( std::string  )
doci::PSI_C1_Molecule::PSI_C1_Molecule ( const PSI_C1_Molecule )
doci::PSI_C1_Molecule::PSI_C1_Molecule ( PSI_C1_Molecule &&  )

Member Function Documentation

PSI_C1_Molecule * PSI_C1_Molecule::clone ( ) const
virtual

Clone the current object. Needed because the base class is pure virtual and thus has no copy constructor.

Returns
a clone of this object

Implements doci::Molecule.

Definition at line 177 of file Molecule.cpp.

+ Here is the call graph for this function:

PSI_C1_Molecule* doci::PSI_C1_Molecule::clone ( ) const
virtual

Implements doci::Molecule.

double PSI_C1_Molecule::getT ( int  a,
int  b 
) const
virtual

Get the matrix element \(<a|\hat T|b>\) where T is the one body operator

Parameters
athe first sp index
bthe second sp index
Returns
\(<a|\hat T|b>\)

Implements doci::Molecule.

Definition at line 194 of file Molecule.cpp.

+ Here is the caller graph for this function:

double doci::PSI_C1_Molecule::getT ( int  ,
int   
) const
virtual

Implements doci::Molecule.

double PSI_C1_Molecule::getV ( int  a,
int  b,
int  c,
int  d 
) const
virtual

Get the matrix element \(<ab|\hat V|cd>\) where V is the two body operator

Parameters
athe first sp index
bthe second sp index
cthe thirth sp index
dthe fourth sp index
Returns
\(<ab|\hat V|cd>\)

Implements doci::Molecule.

Definition at line 210 of file Molecule.cpp.

+ Here is the caller graph for this function:

double doci::PSI_C1_Molecule::getV ( int  ,
int  ,
int  ,
int   
) const
virtual

Implements doci::Molecule.

double PSI_C1_Molecule::HF_Energy ( ) const

This will calculate the (restricted) Hartree-Fock energy.

Warning
This will only work if the molecular orbitals are sorted according to energy! Not if they are sorted according to irrep (as PSI does by default).
Returns
the (restricted) Hartree-Fock energy

Definition at line 244 of file Molecule.cpp.

+ Here is the call graph for this function:

double doci::PSI_C1_Molecule::HF_Energy ( ) const
PSI_C1_Molecule * PSI_C1_Molecule::move ( )
virtual

Implements doci::Molecule.

Definition at line 182 of file Molecule.cpp.

+ Here is the call graph for this function:

PSI_C1_Molecule* doci::PSI_C1_Molecule::move ( )
virtual

Implements doci::Molecule.

PSI_C1_Molecule& doci::PSI_C1_Molecule::operator= ( const PSI_C1_Molecule )
PSI_C1_Molecule & PSI_C1_Molecule::operator= ( const PSI_C1_Molecule orig)

Definition at line 147 of file Molecule.cpp.

PSI_C1_Molecule& doci::PSI_C1_Molecule::operator= ( PSI_C1_Molecule &&  )
PSI_C1_Molecule & PSI_C1_Molecule::operator= ( PSI_C1_Molecule &&  orig)

Definition at line 159 of file Molecule.cpp.

void doci::PSI_C1_Molecule::Print ( ) const
void PSI_C1_Molecule::Print ( ) const

Print the molecular integrals. Usefull for input into other codes

Definition at line 221 of file Molecule.cpp.

+ Here is the call graph for this function:


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