Avogadro::Calc::EnergyManager#

class EnergyManager#

Class to manage registration, searching and creation of force field (energy) calculators.

<avogadro/calc/energymanager.h>

The energy manager is a singleton class that handles the runtime registration, search, creation and eventual destruction of calculators for geometry optimization and molecular dynamics. It can be used to gain a listing of available models, register new models, etc.

Author

Geoffrey R. Hutchison

All energy calculation can take place independent of this code, but for automated registration and look up, this is the preferred API.

Public Functions

bool addModel(EnergyCalculator *model)#

Add the supplied model to the manager, registering its ID and other relevant data for later lookup. The manager assumes ownership of the supplied object.

Returns:

True on success, false on failure.

bool removeModel(const std::string &identifier)#

Remove the model with the identifier identifier from the manager.

Returns:

True on success, false on failure.

EnergyCalculator *model(const std::string &identifier) const#

New instance of the model for the specified identifier. Ownership is passed to the caller.

Parameters:

identifier – The unique identifier of the model.

Returns:

Instance of the model, nullptr if not found. Ownership passes to the caller.

std::set<std::string> identifiers() const#

Get a list of all loaded identifiers

std::set<std::string> identifiersForMolecule(const Core::Molecule &molecule) const#

Get a list of models that work for this molecule.

This is probably the method you want to get a list for a user

std::string recommendedModel(const Core::Molecule &molecule) const#

Get a recommended model for this molecule.

This returns the identifier for a model that works, given the charge, unit cell, spin states, etc.

Returns:

The recommended model identifier

std::string nameForModel(const std::string &identifier) const#

Get the name of the model for the specified identifier.

The name is a user-visible string, and may be translated.

Parameters:

identifier – The unique identifier of the model.

Returns:

The name of the model, or an empty string if not found.

inline std::string error() const#

Get any errors that have been logged when loading models.

Public Static Functions

static EnergyManager &instance()#

Get the singleton instance of the energy manager. This instance should not be deleted.

static bool registerModel(EnergyCalculator *model)#

Register a new model with the manager.

Parameters:

model – An instance of the calculator to manage, the manager assumes ownership of the object passed in.

Returns:

True on success, false on failure.

static bool unregisterModel(const std::string &identifier)#

Unregister a charge model from the manager.

Parameters:

identifier – The identifier for the model to remove.

Returns:

True on success, false on failure.