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
modelto 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.