Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | List of all members
psi::sapt::SAPT Class Referenceabstract

#include <sapt.h>

Inheritance diagram for psi::sapt::SAPT:
psi::Wavefunction psi::sapt::SAPT0 psi::sapt::SAPT2 psi::sapt::SAPT2p psi::sapt::SAPT2p3

Public Member Functions

 SAPT (SharedWavefunction Dimer, SharedWavefunction MonomerA, SharedWavefunction MonomerB, Options &options, std::shared_ptr< PSIO > psio)
virtual ~SAPT ()
virtual double compute_energy ()=0
 Compute energy. Subclasses override this function to compute its energy. More...
- Public Member Functions inherited from psi::Wavefunction
 Wavefunction (std::shared_ptr< Molecule > molecule, std::shared_ptr< BasisSet > basis, Options &options)
 Constructor for an entirely new wavefunction with an existing basis. More...
 Wavefunction (std::shared_ptr< Molecule > molecule, std::shared_ptr< BasisSet > basis)
 Constructor for an entirely new wavefunction with an existing basis and global options. More...
 Wavefunction (Options &options)
 Blank constructor for derived classes. More...
void shallow_copy (SharedWavefunction other)
void shallow_copy (const Wavefunction *other)
void deep_copy (SharedWavefunction other)
void deep_copy (const Wavefunction *other)
virtual ~Wavefunction ()
virtual SharedMatrix compute_gradient ()
 Compute gradient. Subclasses override this function to compute the gradient. More...
virtual SharedMatrix compute_hessian ()
 Compute Hessian. Subclasses override this function to compute the Hessian. More...
bool same_a_b_orbs () const
 Is this a restricted wavefunction? More...
bool same_a_b_dens () const
Dimension map_irreps (const Dimension &dimpi)
std::shared_ptr< Moleculemolecule () const
 Returns the molecule object that pertains to this wavefunction. More...
std::shared_ptr< PSIOpsio () const
Optionsoptions () const
std::shared_ptr< IntegralFactoryintegral () const
 An integral factory with basisset() on each center. More...
std::shared_ptr< BasisSetbasisset () const
 Returns the basis set object that pertains to this wavefunction. More...
std::shared_ptr< SOBasisSetsobasisset () const
 Returns the SO basis set object that pertains to this wavefunction. More...
std::shared_ptr< BasisSetget_basisset (std::string label)
 Getters and setters for other basis sets. More...
void set_basisset (std::string label, std::shared_ptr< BasisSet > basis)
bool basisset_exists (std::string label)
std::shared_ptr< MatrixFactorymatrix_factory () const
 Returns the MatrixFactory object that pertains to this wavefunction. More...
std::shared_ptr< Wavefunctionreference_wavefunction () const
 Returns the reference wavefunction. More...
void set_reference_wavefunction (const std::shared_ptr< Wavefunction > wfn)
 Sets the reference wavefunction. More...
bool density_fitted () const
 Returns whether this wavefunction was obtained using density fitting or not. More...
int get_print () const
 Returns the print level. More...
const Dimensiondoccpi () const
 Returns the DOCC per irrep array. More...
const Dimensionsoccpi () const
 Returns the SOCC per irrep array. More...
const Dimensionnsopi () const
 Returns the number of SOs per irrep array. More...
const Dimensionnmopi () const
 Returns the number of MOs per irrep array. More...
const Dimensionnalphapi () const
 Returns the number of alpha electrons per irrep array. More...
const Dimensionnbetapi () const
 Returns the number of beta electrons per irrep array. More...
const Dimensionfrzcpi () const
 Returns the frozen core orbitals per irrep array. More...
const Dimensionfrzvpi () const
 Returns the frozen virtual orbitals per irrep array. More...
void set_doccpi (const Dimension &doccpi)
void set_soccpi (const Dimension &soccpi)
void set_frzvpi (const Dimension &frzvpi)
 Sets the frozen virtual orbitals per irrep array. More...
int nfrzc () const
 Return the number of frozen core orbitals. More...
int nalpha () const
 Return the number of alpha electrons. More...
int nbeta () const
 Return the number of beta electrons. More...
int nso () const
 Returns the number of SOs. More...
int nmo () const
 Returns the number of MOs. More...
int nirrep () const
 Returns the number of irreps. More...
double reference_energy () const
 Returns the reference energy. More...
double efzc () const
 Returns the frozen-core energy. More...
void set_efzc (double efzc)
 Sets the frozen-core energy. More...
SharedMatrix S () const
 Returns the overlap matrix. More...
SharedMatrix H () const
 Returns the core Hamiltonian matrix. More...
SharedMatrix Ca () const
 Returns the alpha electrons MO coefficients. More...
SharedMatrix Cb () const
 Returns the beta electrons MO coefficients. More...
SharedMatrix Fa () const
 Returns the (SO basis) alpha Fock matrix. More...
SharedMatrix Fb () const
 Returns the (SO basis) beta Fock matrix. More...
SharedVector epsilon_a () const
 Returns the alpha orbital energies. More...
SharedVector epsilon_b () const
 Returns the beta orbital energies. More...
SharedMatrix Lagrangian () const
 Returns the SO basis Lagrangian. More...
SharedMatrix aotoso () const
const SharedMatrix Da () const
 Returns the alpha OPDM for the wavefunction. More...
SharedMatrix Db () const
 Returns the beta OPDM for the wavefunction. More...
SharedMatrix Ca_subset (const std::string &basis="SO", const std::string &subset="ALL")
SharedMatrix Cb_subset (const std::string &basis="SO", const std::string &subset="ALL")
OrbitalSpace alpha_orbital_space (const std::string &id, const std::string &basis="SO", const std::string &subset="ALL")
 Creates an OrbitalSpace object containing information about the request alpha orbital space. More...
OrbitalSpace beta_orbital_space (const std::string &id, const std::string &basis="SO", const std::string &subset="ALL")
 Creates an OrbitalSpace object containing information about the request beta orbital space. More...
SharedMatrix Da_subset (const std::string &basis="SO")
SharedMatrix Db_subset (const std::string &basis="SO")
SharedMatrix D_subset_helper (SharedMatrix D, SharedMatrix C, const std::string &basis)
SharedVector epsilon_a_subset (const std::string &basis="SO", const std::string &subset="ALL")
SharedVector epsilon_b_subset (const std::string &basis="SO", const std::string &subset="ALL")
SharedMatrix basis_projection (SharedMatrix Cold, Dimension noccpi, std::shared_ptr< BasisSet > old_basis, std::shared_ptr< BasisSet > new_basis)
SharedMatrix X () const
 Returns the Lagrangian in SO basis for the wavefunction. More...
SharedMatrix gradient () const
 Returns the gradient. More...
void set_gradient (SharedMatrix &grad)
 Set the gradient for the wavefunction. More...
SharedMatrix hessian () const
 Returns the Hessian. More...
void set_hessian (SharedMatrix &hess)
 Set the Hessian for the wavefunction. More...
std::shared_ptr< std::vector
< double > > 
atomic_point_charges () const
 Returns the atomic point charges. More...
SharedVector get_atomic_point_charges () const
 Returns the atomic point charges in Vector form for python output. More...
void set_atomic_point_charges (const std::shared_ptr< std::vector< double >> &apcs)
 Sets the atomic point charges. More...
SharedVector frequencies () const
 Returns the frequencies. More...
void set_frequencies (SharedVector &freqs)
 Set the frequencies for the wavefunction. More...
SharedVector normalmodes () const
 Returns the normalmodes. More...
void set_normalmodes (SharedVector &norms)
 Set the normalmodes for the wavefunction. More...
void set_name (const std::string &name)
 Set the wavefunction name (e.g. "RHF", "ROHF", "UHF", "CCEnergyWavefunction") More...
const std::string & name () const
 Returns the wavefunction name. More...
void set_print (size_t print)
void set_debug (size_t debug)
virtual void save () const
 Save the wavefunction to checkpoint. More...
void set_external_potential (std::shared_ptr< ExternalPotential > external)
double get_variable (const std::string key)
 Get and set variables dictionary. More...
void set_variable (const std::string key, double value)
std::map< std::string, double > variables (void)
SharedMatrix get_array (const std::string key)
 Get and set arrays dictionary. More...
void set_array (const std::string key, SharedMatrix value)
std::map< std::string,
arrays (void)

Protected Member Functions

void zero_disk (int, const char *, int, int)
- Protected Member Functions inherited from psi::Wavefunction
SharedMatrix C_subset_helper (SharedMatrix C, const Dimension &noccpi, SharedVector epsilon, const std::string &basis, const std::string &subset)
 Helpers for C/D/epsilon transformers. More...
SharedMatrix F_subset_helper (SharedMatrix F, SharedMatrix C, const std::string &basis)
SharedVector epsilon_subset_helper (SharedVector epsilon, const Dimension &noccpi, const std::string &basis, const std::string &subset)
std::vector< std::vector< int > > subset_occupation (const Dimension &noccpi, const std::string &subset)

Protected Attributes

std::shared_ptr< BasisSetribasis_
std::shared_ptr< BasisSetelstbasis_
std::shared_ptr< BasisSetzero_
size_t nsoA_
size_t nmoA_
size_t nsoB_
size_t nmoB_
size_t ndf_
size_t noccA_
size_t foccA_
size_t aoccA_
size_t noccB_
size_t foccB_
size_t aoccB_
size_t nvirA_
size_t nvirB_
int NA_
int NB_
int natomsA_
int natomsB_
bool elst_basis_
long int mem_
double exch_scale_alpha_
double enuc_
double eHF_
double schwarz_
double * evalsA_
double * evalsB_
double * diagAA_
double * diagBB_
double ** CA_
double ** CB_
double ** CHFA_
double ** CHFB_
double ** sAB_
double ** vABB_
double ** vBAA_
double ** vAAB_
double ** vBAB_
std::shared_ptr< SAPTDenominatordenom_
size_t nvec_
double ** dAR_
double ** dBS_
- Protected Attributes inherited from psi::Wavefunction
std::string name_
 Name of the wavefunction. More...
std::map< std::string,
std::shared_ptr< BasisSet > > 
 DF/RI/F12/etc basis sets. More...
std::shared_ptr< BasisSetbasisset_
 The ORBITAL basis. More...
std::shared_ptr< SOBasisSetsobasisset_
 Primary basis set for SO integrals. More...
SharedMatrix AO2SO_
 AO2SO conversion matrix (AO in rows, SO in cols) More...
std::shared_ptr< Moleculemolecule_
 Molecule that this wavefunction is run on. More...
 Options object. More...
std::shared_ptr< PSIOpsio_
std::shared_ptr< IntegralFactoryintegral_
 Integral factory. More...
std::shared_ptr< MatrixFactoryfactory_
 Matrix factory for creating standard sized matrices. More...
std::shared_ptr< Wavefunctionreference_wavefunction_
long int memory_
 How much memory you have access to. More...
size_t debug_
 Debug flag. More...
size_t print_
 Print flag. More...
int nalpha_
 Total alpha and beta electrons. More...
int nbeta_
int nfrzc_
 Total frozen core orbitals. More...
Dimension doccpi_
 Number of doubly occupied per irrep. More...
Dimension soccpi_
 Number of singly occupied per irrep. More...
Dimension frzcpi_
 Number of frozen core per irrep. More...
Dimension frzvpi_
 Number of frozen virtuals per irrep. More...
Dimension nalphapi_
 Number of alpha electrons per irrep. More...
Dimension nbetapi_
 Number of beta electrons per irrep. More...
Dimension nsopi_
 Number of so per irrep. More...
Dimension nmopi_
 Number of mo per irrep. More...
bool density_fitted_
 Whether this wavefunction was obtained using density fitting. More...
double energy_
 The energy associated with this wavefunction. More...
double efzc_
 Frozen-core energy associated with this wavefunction. More...
int nso_
 Total number of SOs. More...
int nmo_
 Total number of MOs. More...
int nirrep_
 Number of irreps. More...
SharedMatrix S_
 Overlap matrix. More...
SharedMatrix H_
 Core Hamiltonian matrix. More...
SharedMatrix Ca_
 Alpha MO coefficients. More...
SharedMatrix Cb_
 Beta MO coefficients. More...
SharedMatrix Da_
 Alpha density matrix. More...
SharedMatrix Db_
 Beta density matrix. More...
SharedMatrix Lagrangian_
 Lagrangian matrix. More...
SharedMatrix Fa_
 Alpha Fock matrix. More...
SharedMatrix Fb_
 Beta Fock matrix. More...
SharedVector epsilon_a_
 Alpha orbital eneriges. More...
SharedVector epsilon_b_
 Beta orbital energies. More...
SharedMatrix gradient_
 If a gradient is available it will be here: More...
SharedMatrix hessian_
 If a Hessian is available it will be here: More...
std::shared_ptr< std::vector
< double > > 
 If atomic point charges are available they will be here. More...
SharedVector frequencies_
 If frequencies are available, they will be here: More...
SharedVector normalmodes_
 If normal modes are available, they will be here: More...
bool same_a_b_dens_
 Same orbs or dens. More...
bool same_a_b_orbs_
< ExternalPotential
std::map< std::string, double > variables_
std::map< std::string,

Private Member Functions

void initialize (SharedWavefunction MonomerA, SharedWavefunction MonomerB)
void get_denom ()

Additional Inherited Members

- Static Public Member Functions inherited from psi::Wavefunction
static void initialize_singletons ()

Constructor & Destructor Documentation

psi::sapt::SAPT::SAPT ( SharedWavefunction  Dimer,
SharedWavefunction  MonomerA,
SharedWavefunction  MonomerB,
Options options,
std::shared_ptr< PSIO psio 
psi::sapt::SAPT::~SAPT ( )

Member Function Documentation

virtual double psi::sapt::SAPT::compute_energy ( )
pure virtual

Compute energy. Subclasses override this function to compute its energy.

Reimplemented from psi::Wavefunction.

Implemented in psi::sapt::SAPT2, psi::sapt::SAPT0, psi::sapt::SAPT2p, and psi::sapt::SAPT2p3.

void psi::sapt::SAPT::get_denom ( )
void psi::sapt::SAPT::initialize ( SharedWavefunction  MonomerA,
SharedWavefunction  MonomerB 
void psi::sapt::SAPT::zero_disk ( int  file,
const char *  array,
int  rows,
int  columns 

Member Data Documentation

size_t psi::sapt::SAPT::aoccA_
size_t psi::sapt::SAPT::aoccB_
double** psi::sapt::SAPT::CA_
double** psi::sapt::SAPT::CB_
double** psi::sapt::SAPT::CHFA_
double** psi::sapt::SAPT::CHFB_
double** psi::sapt::SAPT::dAR_
double** psi::sapt::SAPT::dBS_
std::shared_ptr<SAPTDenominator> psi::sapt::SAPT::denom_
double* psi::sapt::SAPT::diagAA_
double* psi::sapt::SAPT::diagBB_
double psi::sapt::SAPT::eHF_
bool psi::sapt::SAPT::elst_basis_
std::shared_ptr<BasisSet> psi::sapt::SAPT::elstbasis_
double psi::sapt::SAPT::enuc_
double* psi::sapt::SAPT::evalsA_
double* psi::sapt::SAPT::evalsB_
double psi::sapt::SAPT::exch_scale_alpha_
size_t psi::sapt::SAPT::foccA_
size_t psi::sapt::SAPT::foccB_
long int psi::sapt::SAPT::mem_
int psi::sapt::SAPT::NA_
int psi::sapt::SAPT::natomsA_
int psi::sapt::SAPT::natomsB_
int psi::sapt::SAPT::NB_
size_t psi::sapt::SAPT::ndf_
size_t psi::sapt::SAPT::nmoA_
size_t psi::sapt::SAPT::nmoB_
size_t psi::sapt::SAPT::noccA_
size_t psi::sapt::SAPT::noccB_
size_t psi::sapt::SAPT::nsoA_
size_t psi::sapt::SAPT::nsoB_
size_t psi::sapt::SAPT::nvec_
size_t psi::sapt::SAPT::nvirA_
size_t psi::sapt::SAPT::nvirB_
std::shared_ptr<BasisSet> psi::sapt::SAPT::ribasis_
double** psi::sapt::SAPT::sAB_
double psi::sapt::SAPT::schwarz_
double** psi::sapt::SAPT::vAAB_
double** psi::sapt::SAPT::vABB_
double** psi::sapt::SAPT::vBAA_
double** psi::sapt::SAPT::vBAB_
std::shared_ptr<BasisSet> psi::sapt::SAPT::zero_

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