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