occ
Loading...
Searching...
No Matches
occ::qm::Wavefunction Struct Reference

#include <wavefunction.h>

Collaboration diagram for occ::qm::Wavefunction:
[legend]

Public Member Functions

 Wavefunction ()
 Wavefunction (const FchkReader &)
 Wavefunction (const MoldenReader &)
 Wavefunction (const OrcaJSONReader &)
 Wavefunction (const Wavefunction &wfn_a, const Wavefunction &wfn_b)
int multiplicity () const
int charge () const
Vec nuclear_charges () const
Vec nuclear_charges (const IVec &nums) const
int n_alpha () const
int n_beta () const
bool is_restricted () const
void set_molecular_orbitals (const FchkReader &fchk)
void compute_density_matrix ()
void symmetric_orthonormalize_molecular_orbitals (const Mat &overlap)
void apply_transformation (const occ::Mat3 &, const occ::Vec3 &)
void apply_rotation (const occ::Mat3 &)
void apply_translation (const occ::Vec3 &)
occ::Mat3N positions () const
occ::IVec atomic_numbers () const
Vec mulliken_charges () const
Vec lowdin_charges () const
 Löwdin charges, from the diagonal of S^½ P S^½.
Mat mayer_bond_orders () const
 Mayer bond orders B_AB = 2 Σ_{μ∈A,ν∈B} Σ_σ (P^σ S)_μν (P^σ S)_νμ, atoms × atoms with a zero diagonal.
Mat overlap_matrix () const
Vec electron_density (const Mat3N &points, SpinComponent spin=SpinComponent::Total) const
Mat3N electron_density_gradient (const Mat3N &points) const
Vec electron_density_mo (const Mat3N &points, int mo_index) const
Vec mo_amplitude (const Mat3N &points, int mo_index, SpinComponent spin=SpinComponent::Total) const
 Signed amplitude psi_i(r) of MO i (0-based) at each point, in bohr^-3/2.
Mat3N electron_density_mo_gradient (const Mat3N &points, int mo_index) const
Vec electric_potential (const Mat3N &points) const
 ESP at points (bohr).
Vec xtb_electric_potential (const Mat3N &points) const
 Point-multipole ESP from the xTB atomic charges and, when present, the CAMM dipoles and quadrupoles, with GFN2's damping of the dipole and quadrupole terms when the radii are stored.
Mat3N electric_field (const Mat3N &points) const
void save (FchkWriter &)
bool save (const std::string &filename)

Static Public Member Functions

static Wavefunction load (const std::string &)
static bool is_likely_wavefunction_filename (const std::string &)

Public Attributes

std::string method {"SCF"}
int num_electrons {0}
int num_frozen_electrons {0}
AOBasis basis
size_t nbf {0}
std::vector< occ::core::Atom > atoms
MolecularOrbitals mo
Mat T
Mat V
Mat H
Mat J
Mat K
Mat Vecp
Energy energy
bool have_energies {false}
bool have_xdm_parameters {false}
Vec xdm_polarizabilities
Mat xdm_moments
Vec xdm_volumes
Vec xdm_free_volumes
double xdm_energy {0.0}
bool have_xtb_data {false}
double xtb_scc_energy {0.0}
double xtb_repulsion_energy {0.0}
double xtb_dispersion_energy {0.0}
Vec xtb_atomic_charges
Mat3N xtb_atomic_dipoles
Mat xtb_atomic_quadrupoles
Vec xtb_multipole_radii
std::array< double, 2 > xtb_multipole_damping_exponents {3.0, 4.0}
bool xtb_converged {false}
int xtb_n_iterations {0}
bool have_correlation_data {false}
double scf_reference_energy {0.0}
double correlation_energy {0.0}
double mp2_same_spin_energy {0.0}
double mp2_opposite_spin_energy {0.0}
double ccsd_correlation_energy {0.0}
double triples_correction {0.0}
bool converged {true}
 Whether the SCF that produced these orbitals converged.

Constructor & Destructor Documentation

◆ Wavefunction() [1/5]

occ::qm::Wavefunction::Wavefunction ( )
inline

◆ Wavefunction() [2/5]

occ::qm::Wavefunction::Wavefunction ( const FchkReader & )

◆ Wavefunction() [3/5]

occ::qm::Wavefunction::Wavefunction ( const MoldenReader & )

◆ Wavefunction() [4/5]

occ::qm::Wavefunction::Wavefunction ( const OrcaJSONReader & )

◆ Wavefunction() [5/5]

occ::qm::Wavefunction::Wavefunction ( const Wavefunction & wfn_a,
const Wavefunction & wfn_b )

Member Function Documentation

◆ apply_rotation()

void occ::qm::Wavefunction::apply_rotation ( const occ::Mat3 & )

◆ apply_transformation()

void occ::qm::Wavefunction::apply_transformation ( const occ::Mat3 & ,
const occ::Vec3 &  )

◆ apply_translation()

void occ::qm::Wavefunction::apply_translation ( const occ::Vec3 & )

◆ atomic_numbers()

occ::IVec occ::qm::Wavefunction::atomic_numbers ( ) const

◆ charge()

int occ::qm::Wavefunction::charge ( ) const
inline

◆ compute_density_matrix()

void occ::qm::Wavefunction::compute_density_matrix ( )

◆ electric_field()

Mat3N occ::qm::Wavefunction::electric_field ( const Mat3N & points) const

◆ electric_potential()

Vec occ::qm::Wavefunction::electric_potential ( const Mat3N & points) const

ESP at points (bohr).

For a GFN2-xTB wavefunction this is GFN2's own electrostatic model, see xtb_electric_potential.

◆ electron_density()

Vec occ::qm::Wavefunction::electron_density ( const Mat3N & points,
SpinComponent spin = SpinComponent::Total ) const

◆ electron_density_gradient()

Mat3N occ::qm::Wavefunction::electron_density_gradient ( const Mat3N & points) const

◆ electron_density_mo()

Vec occ::qm::Wavefunction::electron_density_mo ( const Mat3N & points,
int mo_index ) const

◆ electron_density_mo_gradient()

Mat3N occ::qm::Wavefunction::electron_density_mo_gradient ( const Mat3N & points,
int mo_index ) const

◆ is_likely_wavefunction_filename()

bool occ::qm::Wavefunction::is_likely_wavefunction_filename ( const std::string & )
static

◆ is_restricted()

bool occ::qm::Wavefunction::is_restricted ( ) const
inline

◆ load()

Wavefunction occ::qm::Wavefunction::load ( const std::string & )
static

◆ lowdin_charges()

Vec occ::qm::Wavefunction::lowdin_charges ( ) const

Löwdin charges, from the diagonal of S^½ P S^½.

◆ mayer_bond_orders()

Mat occ::qm::Wavefunction::mayer_bond_orders ( ) const

Mayer bond orders B_AB = 2 Σ_{μ∈A,ν∈B} Σ_σ (P^σ S)_μν (P^σ S)_νμ, atoms × atoms with a zero diagonal.

Restricted and unrestricted only.

◆ mo_amplitude()

Vec occ::qm::Wavefunction::mo_amplitude ( const Mat3N & points,
int mo_index,
SpinComponent spin = SpinComponent::Total ) const

Signed amplitude psi_i(r) of MO i (0-based) at each point, in bohr^-3/2.

The overall sign of an orbital is arbitrary. For unrestricted wavefunctions spin must be Alpha or Beta.

◆ mulliken_charges()

Vec occ::qm::Wavefunction::mulliken_charges ( ) const

◆ multiplicity()

int occ::qm::Wavefunction::multiplicity ( ) const
inline

◆ n_alpha()

int occ::qm::Wavefunction::n_alpha ( ) const
inline

◆ n_beta()

int occ::qm::Wavefunction::n_beta ( ) const
inline

◆ nuclear_charges() [1/2]

Vec occ::qm::Wavefunction::nuclear_charges ( ) const
inline

◆ nuclear_charges() [2/2]

Vec occ::qm::Wavefunction::nuclear_charges ( const IVec & nums) const
inline

◆ overlap_matrix()

Mat occ::qm::Wavefunction::overlap_matrix ( ) const

◆ positions()

occ::Mat3N occ::qm::Wavefunction::positions ( ) const

◆ save() [1/2]

bool occ::qm::Wavefunction::save ( const std::string & filename)

◆ save() [2/2]

void occ::qm::Wavefunction::save ( FchkWriter & )

◆ set_molecular_orbitals()

void occ::qm::Wavefunction::set_molecular_orbitals ( const FchkReader & fchk)

◆ symmetric_orthonormalize_molecular_orbitals()

void occ::qm::Wavefunction::symmetric_orthonormalize_molecular_orbitals ( const Mat & overlap)

◆ xtb_electric_potential()

Vec occ::qm::Wavefunction::xtb_electric_potential ( const Mat3N & points) const

Point-multipole ESP from the xTB atomic charges and, when present, the CAMM dipoles and quadrupoles, with GFN2's damping of the dipole and quadrupole terms when the radii are stored.

Requires have_xtb_data.

Member Data Documentation

◆ atoms

std::vector<occ::core::Atom> occ::qm::Wavefunction::atoms

◆ basis

AOBasis occ::qm::Wavefunction::basis

◆ ccsd_correlation_energy

double occ::qm::Wavefunction::ccsd_correlation_energy {0.0}

◆ converged

bool occ::qm::Wavefunction::converged {true}

Whether the SCF that produced these orbitals converged.

Anything derived from an unconverged density is meaningless.

◆ correlation_energy

double occ::qm::Wavefunction::correlation_energy {0.0}

◆ energy

Energy occ::qm::Wavefunction::energy

◆ H

Mat occ::qm::Wavefunction::H

◆ have_correlation_data

bool occ::qm::Wavefunction::have_correlation_data {false}

◆ have_energies

bool occ::qm::Wavefunction::have_energies {false}

◆ have_xdm_parameters

bool occ::qm::Wavefunction::have_xdm_parameters {false}

◆ have_xtb_data

bool occ::qm::Wavefunction::have_xtb_data {false}

◆ J

Mat occ::qm::Wavefunction::J

◆ K

Mat occ::qm::Wavefunction::K

◆ method

std::string occ::qm::Wavefunction::method {"SCF"}

◆ mo

MolecularOrbitals occ::qm::Wavefunction::mo

◆ mp2_opposite_spin_energy

double occ::qm::Wavefunction::mp2_opposite_spin_energy {0.0}

◆ mp2_same_spin_energy

double occ::qm::Wavefunction::mp2_same_spin_energy {0.0}

◆ nbf

size_t occ::qm::Wavefunction::nbf {0}

◆ num_electrons

int occ::qm::Wavefunction::num_electrons {0}

◆ num_frozen_electrons

int occ::qm::Wavefunction::num_frozen_electrons {0}

◆ scf_reference_energy

double occ::qm::Wavefunction::scf_reference_energy {0.0}

◆ T

Mat occ::qm::Wavefunction::T

◆ triples_correction

double occ::qm::Wavefunction::triples_correction {0.0}

◆ V

Mat occ::qm::Wavefunction::V

◆ Vecp

Mat occ::qm::Wavefunction::Vecp

◆ xdm_energy

double occ::qm::Wavefunction::xdm_energy {0.0}

◆ xdm_free_volumes

Vec occ::qm::Wavefunction::xdm_free_volumes

◆ xdm_moments

Mat occ::qm::Wavefunction::xdm_moments

◆ xdm_polarizabilities

Vec occ::qm::Wavefunction::xdm_polarizabilities

◆ xdm_volumes

Vec occ::qm::Wavefunction::xdm_volumes

◆ xtb_atomic_charges

Vec occ::qm::Wavefunction::xtb_atomic_charges

◆ xtb_atomic_dipoles

Mat3N occ::qm::Wavefunction::xtb_atomic_dipoles

◆ xtb_atomic_quadrupoles

Mat occ::qm::Wavefunction::xtb_atomic_quadrupoles

◆ xtb_converged

bool occ::qm::Wavefunction::xtb_converged {false}

◆ xtb_dispersion_energy

double occ::qm::Wavefunction::xtb_dispersion_energy {0.0}

◆ xtb_multipole_damping_exponents

std::array<double, 2> occ::qm::Wavefunction::xtb_multipole_damping_exponents {3.0, 4.0}

◆ xtb_multipole_radii

Vec occ::qm::Wavefunction::xtb_multipole_radii

◆ xtb_n_iterations

int occ::qm::Wavefunction::xtb_n_iterations {0}

◆ xtb_repulsion_energy

double occ::qm::Wavefunction::xtb_repulsion_energy {0.0}

◆ xtb_scc_energy

double occ::qm::Wavefunction::xtb_scc_energy {0.0}

The documentation for this struct was generated from the following file: