ergo
Molecule Class Reference

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

#include <molecule.h>

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. More...
 
ergo_real getNuclearRepulsionEnergyQuadratic () const
 Compute nuclear repulsion energy. More...
 
ergo_real getNuclearElectricFieldEnergy (const Vector3D &electricField) const
 Compute nuclear energy in given electric field. More...
 
int getNumberOfElectrons () const
 Compute total number of electrons. More...
 
void getNuclearRepulsionEnergyGradientContribQuadratic (ergo_real *resultGradient) const
 Compute gradient of nuclear repulsion energy w.r.t. More...
 
int setFromMoleculeFile (const char *fileName, int netCharge, char **basissetFile)
 Loads molecule from a given file name, assuming given net charge. More...
 

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::Molecule ( )
inline

Member Function Documentation

◆ addAtom()

◆ clear()

void Molecule::clear ( )
inline

References netCharge, and noOfAtoms.

Referenced by es_mol_begin().

◆ getAtom()

◆ getAtomListPtr()

◆ getExtremeInternuclearDistancesQuadratic()

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().

◆ getNetCharge()

ergo_real Molecule::getNetCharge ( ) const
inline

References netCharge.

◆ getNoOfAtoms()

◆ getNuclearElectricFieldEnergy()

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().

◆ getNuclearRepulsionEnergyGradientContribQuadratic()

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().

◆ getNuclearRepulsionEnergyQuadratic()

ergo_real Molecule::getNuclearRepulsionEnergyQuadratic ( ) const

◆ getNumberOfElectrons()

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().

◆ replaceAtom()

void Molecule::replaceAtom ( int  i,
const Atom atom 
)
inline

◆ setAtomList()

void Molecule::setAtomList ( const std::vector< Atom atomList)
inline

References atoms, and noOfAtoms.

◆ setFromMoleculeFile()

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 netCharge, readMoleculeFileInMolFormat(), and readMoleculeFileInXyzFormat().

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

◆ setNetCharge()

void Molecule::setNetCharge ( ergo_real  netCharge_)
inline

Member Data Documentation

◆ atoms

◆ netCharge

ergo_real Molecule::netCharge
private

◆ noOfAtoms


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