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

This class defines the methods that are available for single-point calculations.

Public Types

using SpecifierPtr = std::unique_ptr<MethodSpecifier>
using SpecifierContainer = std::map<MethodIdentifier, SpecifierPtr>

Public Static Functions

static std::vector<MethodIdentifier> getAvailableMethods()
static MethodIdentifier addMethod(SpecifierPtr &&specifier)
static void removeMethod(const MethodIdentifier &specifier)
static std::string getName(const MethodIdentifier &id)
static bool isLcaoMethod(const MethodIdentifier &id)
static bool isScfMethod(const MethodIdentifier &id)
static bool hasOrthonormalBasis(const MethodIdentifier &id)
static bool hasNonOrthonormalBasis(const MethodIdentifier &id)
static unsigned maximalDerivativeOrder(const MethodIdentifier &id)
static std::unique_ptr<SinglePointMethod> createMethod(const MethodIdentifier &id)

Static function to create a RealTimeMethod.

Parameters
  • methodID: Type of the method to create.

static std::unique_ptr<MethodInitializer> createMethodInitializer(SinglePointMethod *method)

Given a method, creates the corresponding MethodInitializer. Returns nullptr if method is not valid (i.e. of type unknown to this class, or nullptr).

Private Static Functions

static void verifyThatMethodIsRegistered(const MethodIdentifier &id)
static MethodIdentifier getType(SinglePointMethod *method)

Private Static Attributes

SpecifierContainer specifiers_