File AtomsOrbitalsIndexes.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
class AtomsOrbitalsIndexes
#include <AtomsOrbitalsIndexes.h>

Structure containing the information about AO indexes and their corresponding atom indexes. TODO: separate state from construction (addAtom). In principle nextAtom_ and nextAO_ shouldn’t be members of this class.

Public Functions

AtomsOrbitalsIndexes(int nAtoms = 0)
void addAtom(int nAOs)

Add an atom with nAOs atomic orbitals (for setup).

void clear()

Clear the structure.

void setSize(int nAtoms)

Sets the new number of atoms and resizes members. It is advised to call clear() before.

int getNAtoms() const

Get the total number of atoms.

int getNAtomicOrbitals() const

Get the total number of atomic orbitals.

int getNOrbitals(int atomicIndex) const

Get the number of atomic orbitals for a given atom index.

int getFirstOrbitalIndex(int atomicIndex) const

Get the index of the first atomic orbital for a given atom index.

Private Members

int nAtoms_
int nAtomicOrbitals_ = {0}
std::vector<int> firstAOIndexes_
std::vector<int> numberOrbitals_
int nextAtom_ = {0}
int nextAO_ = {0}