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

## Default Metadata

The simulation layer makes the same set of metadata available to its workflows as the parent workflow layer.