# The Direct Simulation Layer¶

The 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 :doc: storage/dataclasses <storage/dataclasses> which contain the data generated by the molecular simulations.