Molecule Class Reference

Representation of a molecule as a set of nuclei and total charge. More...

#include <molecule.h>

List of all members.

Public Member Functions

 Molecule ()
void addAtom (ergo_real c, ergo_real x, ergo_real y, ergo_real z)
void clear ()
void setNetCharge (ergo_real netCharge_)
void replaceAtom (int i, const Atom &atom)
void setAtomList (const std::vector< Atom > atomList)
const AtomgetAtomListPtr () const
const AtomgetAtom (int i) const
int getNoOfAtoms () const
ergo_real getNetCharge () const
void getExtremeInternuclearDistancesQuadratic (ergo_real &minDist, ergo_real &maxDist) const
 Compute smallest and largest internuclear distances.
ergo_real getNuclearRepulsionEnergyQuadratic () const
 Compute nuclear repulsion energy.
ergo_real getNuclearElectricFieldEnergy (const Vector3D &electricField) const
 Compute nuclear energy in given electric field.
int getNumberOfElectrons () const
 Compute total number of electrons.
void getNuclearRepulsionEnergyGradientContribQuadratic (ergo_real *resultGradient) const
 Compute gradient of nuclear repulsion energy w.r.t.
int setFromMoleculeFile (const char *fileName, int netCharge, char **basissetFile)
 Loads molecule from a given file name, assuming given net charge.

Private Attributes

std::vector< Atomatoms
ergo_real netCharge
int noOfAtoms

Detailed Description

Representation of a molecule as a set of nuclei and total charge.

It provides I/O methods and basic manipulation routines.


Constructor & Destructor Documentation

Molecule::Molecule (  )  [inline]

Member Function Documentation

void Molecule::addAtom ( ergo_real  c,
ergo_real  x,
ergo_real  y,
ergo_real  z 
) [inline]
void Molecule::clear (  )  [inline]

References netCharge, and noOfAtoms.

Referenced by es_mol_begin().

const Atom& Molecule::getAtom ( int  i  )  const [inline]
const Atom* Molecule::getAtomListPtr (  )  const [inline]
void Molecule::getExtremeInternuclearDistancesQuadratic ( ergo_real minDist,
ergo_real maxDist 
) const

Compute smallest and largest internuclear distances.

References A, atoms, B, get_distance_between_atoms(), and noOfAtoms.

Referenced by SCF_general::SCF_general().

ergo_real Molecule::getNetCharge (  )  const [inline]

References netCharge.

int Molecule::getNoOfAtoms (  )  const [inline]
ergo_real Molecule::getNuclearElectricFieldEnergy ( const Vector3D electricField  )  const

Compute nuclear energy in given electric field.

References A, atoms, Atom::charge, Atom::coords, do_output(), LOG_AREA_MAIN, LOG_CAT_INFO, noOfAtoms, and Vector3D::v.

Referenced by SCF_general::SCF_general().

void Molecule::getNuclearRepulsionEnergyGradientContribQuadratic ( ergo_real resultGradient  )  const

Compute gradient of nuclear repulsion energy w.r.t.

changes in nuclear coordinates. Result is added to resultGradient vector.

References A, atoms, B, Atom::charge, Atom::coords, noOfAtoms, and template_blas_sqrt().

Referenced by compute_V_and_gradient_linear(), and get_gradient_using_explicit_integrals().

ergo_real Molecule::getNuclearRepulsionEnergyQuadratic (  )  const
int Molecule::getNumberOfElectrons (  )  const

Compute total number of electrons.

The result is sum of atomic charges plus netCharge.

References atoms, charge, netCharge, and noOfAtoms.

Referenced by calculation_shared(), dft_get_uxc_mt(), dft_get_xc(), dft_get_xc_mt(), dft_lin_resp_mt(), dft_lin_respao(), es_get_polarisability(), es_getexc(), es_run(), get_energy(), main(), SCF_general::SCF_general(), and test_mol().

void Molecule::replaceAtom ( int  i,
const Atom atom 
) [inline]
void Molecule::setAtomList ( const std::vector< Atom atomList  )  [inline]

References atoms, and noOfAtoms.

int Molecule::setFromMoleculeFile ( const char *  fileName,
int  netCharge,
char **  basissetFile 
)

Loads molecule from a given file name, assuming given net charge.

basissetFile will be set if the file contains basis set and basissetFile is NULL.

References readMoleculeFileInMolFormat(), and readMoleculeFileInXyzFormat().

Referenced by es_mol_read_molecule(), grid_test_scaling(), main(), mol_calculation(), and test_mol().

void Molecule::setNetCharge ( ergo_real  netCharge_  )  [inline]

Member Data Documentation

std::vector<Atom> Molecule::atoms [private]
int Molecule::noOfAtoms [private]

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

Generated on 10 Jul 2018 for ergo by  doxygen 1.6.1