SimulationLayer is a calculation layer which employs molecular simulation to estimate data sets of physical
properties. It inherits the
WorkflowCalculationLayer base layer, and primarily makes use of the built-in
workflow engine to perform the required calculations.
The simulation layer is expected to almost always be able to estimate any properties requested of it (with exceptions being where a workflow schema has not yet been defined for a class of properties, or where an unexpected error occurs), and can be thought of as a safe ‘fallback’ layer when no other calculation approach are able to estimate particular properties.
It is expected that workflow schemas passed to the simulation layer should be able to estimate the gradients of the observable they aim to calculate, as well as specify a set of storage/dataclasses which contain the data generated by the molecular simulations.
The simulation layer makes the same set of metadata available to its workflows as the parent workflow layer.