propertyestimator.protocols.utils.generate_base_simulation_protocols

propertyestimator.protocols.utils.generate_base_simulation_protocols(analysis_protocol, workflow_options, id_suffix='', conditional_group=None)[source]

Constructs a set of protocols which, when combined in a workflow schema, may be executed to run a single simulation to estimate a particular property. The observable of interest to extract from the simulation is determined by the passed in analysis_protocol.

The protocols returned will:

  1. Build a set of liquid coordinates for the property substance using packmol.

  2. Assign a set of smirnoff force field parameters to the system.

  3. Perform an energy minimisation on the system.

  4. Run a short NPT equilibration simulation for 100000 steps using a timestep of 2fs.

  5. Within a conditional group (up to a maximum of 100 times):

    5a) Run a longer NPT production simulation for 1000000 steps using a timestep of 2fs

    5b) Extract the average value of an observable and it’s uncertainty.

    5c) If a convergence mode is set by the options, check if the target uncertainty has been met.

    If not, repeat steps 5a), 5b) and 5c).

  6. Extract uncorrelated configurations from a generated production simulation.

  7. Extract uncorrelated statistics from a generated production simulation.

Parameters
  • analysis_protocol (AveragePropertyProtocol) – The protocol which will extract the observable of interest from the generated simulation data.

  • workflow_options (WorkflowOptions) – The options being used to generate a workflow.

  • id_suffix (str) – A string suffix to append to each of the protocol ids.

  • conditional_group (ProtocolGroup, optional) – A custom group to wrap the main simulation / extraction protocols within. It is up to the caller of this method to manually add the convergence conditions to this group. If None, a default group with uncertainty convergence conditions is automatically constructed.

Returns

  • BaseSimulationProtocols – A named tuple of the generated protocols.

  • ProtocolPath – A reference to the final value of the estimated observable and its uncertainty (an EstimatedQuantity).

  • WorkflowSimulationDataToStore – An object which describes the default data from a simulation to store, such as the uncorrelated statistics and configurations.