# propertyestimator.protocols.utils.generate_base_simulation_protocols

`propertyestimator.protocols.utils.``generate_base_simulation_protocols`(analysis_protocol, workflow_options, id_suffix='', conditional_group=None)

  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.