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

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)
OneElectronMatrix = (1 << 7)
TwoElectronMatrix = (1 << 8)
BondOrderMatrix = (1 << 9)

Functions

constexpr Property operator|(Property v1, Property v2)

Returns a Property object that is the superset of the two properties given as argument.

Allow combination of properties.

constexpr bool operator&(Property v1, Property v2)

Returns a Property object that is the subset of the two properties given as argument.

Allow to check if there is a flag overlap.

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

Private Members

Property properties_