File AtomicSecondDerivativeCollection.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 SecondDerivative = AutomaticDifferentiation::Second3D
class AtomicSecondDerivativeCollection
#include <AtomicSecondDerivativeCollection.h>

Container class for second derivatives.

Mainly an override of std::vector<SecondDerivative>. Generally used for storing the gradients of a molecular structure.

Public Types

using container = std::vector<SecondDerivative>
using iterator = container::iterator
using const_iterator = container::const_iterator
using reference = container::reference
using const_reference = container::const_reference

Public Functions

AtomicSecondDerivativeCollection(int N = 0, SecondDerivative d = SecondDerivative())

Constructor for this container class.

AtomicSecondDerivativeCollection::iterator begin()
AtomicSecondDerivativeCollection::const_iterator begin() const
AtomicSecondDerivativeCollection::iterator end()
AtomicSecondDerivativeCollection::const_iterator end() const
void clear()

Clearing the vector that holds the Second3D objects.

void resize(int n)

Wrapper around standard resizing function for vector that holds the Second3D objects.

void push_back(const SecondDerivative &d)

Wrapper around push back function for vector of Second3D objects.

void push_back(SecondDerivative &&d)

Wrapper around push back function for vector of Second3D objects.

This time the Second3d object is given as an rvalue reference.

AtomicSecondDerivativeCollection::reference operator[](int i)
AtomicSecondDerivativeCollection::const_reference operator[](int i) const
AtomicSecondDerivativeCollection::reference at(int i)
AtomicSecondDerivativeCollection::const_reference at(int i) const
AtomicSecondDerivativeCollection::iterator erase(iterator position)
bool empty() const

Returns true if the vector that holds the Second3D objects is empty.

int size() const

Returns the size of the vector holding the Second3D objects (dimension of the container).

const AtomicSecondDerivativeCollection &operator*=(double f)

Multiplication assignment operator (for example for unit conversion).

const AtomicSecondDerivativeCollection &operator/=(double f)

Division assignment operator (for example for unit conversion).

const AtomicSecondDerivativeCollection &operator+=(const AtomicSecondDerivativeCollection &dc)

Add another AtomicSecondDerivativeCollection.

AtomicSecondDerivativeCollection operator*(double f) const

Multiplication operator (for example for unit conversion).

AtomicSecondDerivativeCollection operator/(double f) const

Division operator (for example for unit conversion).

void setZero()

Reset all the derivatives to zero.

Private Members

container derivativeVector_