File ThermochemistryCalculator.h¶
-
namespace
Scine
This header file contains functions that allow for common notation for common things that can be done at a different degree of derivatives.
This header contains alias definitions defining which classes to use for the different degrees of derivatives.
-
namespace
Utils
Enums
-
struct
ThermochemicalContainer
¶ - #include <ThermochemistryCalculator.h>
Struct containing the single thermochemical properties of interest.
Public Functions
-
ThermochemicalContainer
operator+
(const ThermochemicalContainer &rhs) const¶
-
ThermochemicalContainer
operator*
(double factor) const¶ Overloaded multiplication for unit conversion.
-
ThermochemicalContainer
-
struct
ThermochemicalComponentsContainer
¶ - #include <ThermochemistryCalculator.h>
Struct containing the vibrational, rotational, translational and the overall thermochemical components.
Public Functions
-
ThermochemicalComponentsContainer
operator*
(double factor) const¶ Overloaded multiplication for unit conversion.
Public Members
-
ThermochemicalContainer
vibrationalComponent
= {}¶
-
ThermochemicalContainer
rotationalComponent
= {}¶
-
ThermochemicalContainer
translationalComponent
= {}¶
-
ThermochemicalContainer
electronicComponent
= {}¶
-
ThermochemicalContainer
overall
= {}¶
-
ThermochemicalComponentsContainer
-
class
ThermochemistryCalculator
This class calculates and stores the most important thermochemical data.
The class calculates important thermochemical descriptors, as the Zero Point Vibrational Energy, the standard enthalpy of formation, the system entropy, the heat capacity and the Gibbs’ free energy from the results of a vibrational analysis.
By default a temperature of 298.15 K and a molecular symmetry number of one are assumed. They can be adapted via the functions setTemperature() and setMolecularSymmetryNumber(), respectively. Using an incorrect symmetry number results into a wrong rotational entropy.
Public Functions
-
ThermochemistryCalculator
(ElementTypeCollection elements)¶
-
ThermochemistryCalculator
(NormalModesContainer normalModesContainer, Geometry::PrincipalMomentsOfInertia principalMomentsOfInertia, ElementTypeCollection elements, int spinMulitplicity, double electronicEnergy)¶
-
ThermochemistryCalculator
(const HessianMatrix &hessian, ElementTypeCollection elements, const PositionCollection &positions, int spinMultiplicity, double electronicEnergy)¶
-
~ThermochemistryCalculator
()¶
-
void
setTemperature
(double temperature) Setter for the temperature at which the thermochemical calculation is performed.
-
void
setZPVEInclusion
(ZPVEInclusion inclusion) In NDDO semiempirical methods, the ZPVE is already included in the electronic energy due to the way they are parametrized.
In the thermochemical calculation it must then not be included again.
- Parameters
inclusion
: notIncluded is the standard way, alreadyIncluded is in case of the NDDO semiempirical methods.
-
ThermochemicalComponentsContainer
calculate
()¶
-
void
setMolecularSymmetryNumber
(int sigma) Sets the symmetry sigma factor.
- Parameters
sigma
: The symmetry factor related to the point group symmetry of the molecule. Examples: Cn,v/h : n Dn,v/h : 2*n C_inf,v : 1 C_inf,h : 2 S_n : n/2 T : 12 O : 24 I : 60
Protected Functions
-
std::vector<double>
getWavenumbers
() const¶
Protected Attributes
-
Geometry::PrincipalMomentsOfInertia
principalMomentsOfInertia_
¶
-
ElementTypeCollection
elements_
¶
-
double
temperature_
= {298.15}¶
-
int
spinMultiplicity_
= {1}¶
-
double
electronicEnergy_
= {0}¶
-
int
sigma_
= {1}¶
-
ZPVEInclusion
zpveIncluded
= {ZPVEInclusion::notIncluded}¶
Private Functions
-
ThermochemicalContainer
calculateVibrationalPart
(double temperature) const¶
-
ThermochemicalContainer
calculateRotationalPart
(double temperature) const¶
-
ThermochemicalContainer
calculateTranslationalPart
(double temperature) const¶
-
ThermochemicalContainer
calculateElectronicPart
(double temperature) const¶
-
void
calculateSigmaForLinearMolecule
()¶
Private Members
-
NormalModesContainer
normalModesContainer_
= {}¶
-
-
struct
-
namespace