File PropertyList.h¶
- Copyright
This code is licensed under the 3-clause BSD license.
Copyright ETH Zurich, Laboratory for Physical Chemistry, Reiher Group.
See LICENSE.txt for details.
-
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 Typedefs
-
using
PropertyTypeTuple= std::tuple<double, GradientCollection, HessianMatrix, Dipole, DipoleGradient, DipoleMatrix, DipoleMatrix, DensityMatrix, Eigen::MatrixXd, SpinAdaptedMatrix, Eigen::MatrixXd, MolecularOrbitals, SingleParticleEnergies, LcaoUtils::ElectronicOccupation, ThermochemicalComponentsContainer, SpinAdaptedElectronicTransitionResult, AtomsOrbitalsIndexes, std::vector<double>, BondOrderCollection, std::string, bool, std::string>¶
Enums
-
enum
Property¶ The properties contained are assigned a bit. This can be switched on or off to flag the presence or absence of the property.
Values:
-
Energy= (1 << 0)¶
-
Gradients= (1 << 1)¶
-
Hessian= (1 << 2)¶
-
Dipole= (1 << 3)
-
DipoleGradient= (1 << 4)
-
DipoleMatrixAO= (1 << 5)¶
-
DipoleMatrixMO= (1 << 6)¶
-
DensityMatrix= (1 << 7)
-
OneElectronMatrix= (1 << 8)¶
-
TwoElectronMatrix= (1 << 9)¶
-
OverlapMatrix= (1 << 10)¶
-
CoefficientMatrix= (1 << 11)¶
-
OrbitalEnergies= (1 << 12)¶
-
ElectronicOccupation= (1 << 13)¶
-
Thermochemistry= (1 << 14)¶
-
ExcitedStates= (1 << 15)¶
-
AOtoAtomMapping= (1 << 16)¶
-
AtomicCharges= (1 << 17)¶
-
BondOrderMatrix= (1 << 18)¶
-
Description= (1 << 19)¶
-
SuccessfulCalculation= (1 << 20)¶
-
ProgramName= (1 << 21)¶
-
Functions
Variables
-
constexpr std::array<Property, std::tuple_size<PropertyTypeTuple>::value> Scine::Utils::allProperties{{Property::Energy, Property::Gradients, Property::Hessian, Property::Dipole, Property::DipoleGradient, Property::DipoleMatrixAO, Property::DipoleMatrixMO, Property::DensityMatrix, Property::OneElectronMatrix, Property::TwoElectronMatrix, Property::OverlapMatrix, Property::CoefficientMatrix, Property::OrbitalEnergies, Property::ElectronicOccupation, Property::Thermochemistry, Property::ExcitedStates, Property::AOtoAtomMapping, Property::AtomicCharges, Property::BondOrderMatrix, Property::Description, Property::SuccessfulCalculation, Property::ProgramName}}
-
constexpr std::array<const char *, std::tuple_size<PropertyTypeTuple>::value>
allPropertyNames{"energy", , , , , , , , , , , , , , , , , , , , , }¶
-
template<Property
property>
structPropertyType¶ Public Types
-
template<>
usingtype= std::tuple_element_t<getPropertyIndex(property), PropertyTypeTuple>¶
Public Static Attributes
-
constexpr const char *
name= propertyTypeName(property)¶
-
template<>
-
class
PropertyList - #include <PropertyList.h>
This class defines a list of properties that can be calculated in a single-point calculation.
Public Functions
-
PropertyList() Initializes the property enum to be empty, i.e. all switched off.
-
PropertyList(Property p) Constructor from properties; not explicit to allow for automatic conversion.
-
bool
containsSubSet(const PropertyList &pl) const Checks for the presence of a PropertyList given as argument as subset of the current object.
-
void
addProperty(const Property v) Switches on the bits that are switched on in the argument Property v
-
-
using
-
namespace