How to customise a simulation ============================= This tutorial takes you through the steps required to run a customised simulation using the SDP resource model. Ensure you have followed the :doc:`installation instructions <../installation>` and successfully run the simulation with default settings before continuing. Customising the inputs ---------------------- Ensure you have read the following sections on the input formats before making any changes: - :doc:`Hardware configuration file <../usage/inputs/configuration/hardware_configuration>` - :doc:`Scheduling block types configuration file <../usage/inputs/configuration/scheduling_block_types_configuration>` - :doc:`Pipeline configuration file <../usage/inputs/configuration/pipeline_configuration>` - :doc:`Observing schedule file <../usage/inputs/configuration/observing_schedule>` 1. Create a new JSON file containing the observing schedule you want to simulate. For example: .. code-block:: none { "scheduling_blocks": [ "Calibrated Visibilities", "Continuum Shallow", "Beam Monitoring", "Continuum Deep", "Continuum Shallow", "Continuum Deep", "Maintenance", "Spectral Deep" ] } 2. Place the JSON file in the ``/data/schedules`` directory. 3. If you need to edit or add scheduling block types, edit these in the JSON file at ``/data/config/scheduling_block_type.json``. For example you can add a new scheduling block type: .. code-block:: python ... { "new_scheduling_block_type": { "description": "New scheduling block type", "short_name": "NST", "sampling_weight": 1.0, "scheduling_block_instance_time_hrs": 1.0, "integration_time_hrs": 10.0, "pipeline_steps": ["ICAL", "CIMG"], "raw_vis_gb": 10.0, "processed_vis_gb": 20.0, "data_retention_hrs": 24.0, } } ... Any scheduling block type that is in the observing schedule file must be in this JSON file with all key value pairs. 4. If you need to specify a new pipeline configuration, add it to the JSON file at ``/data/config/pipeline.json``. For example: .. code-block:: python ... { "name": "new_pipeline", "steps": [ { "description": "New pipeline step", "node_hours_mean": 1000.0, "pct_parallelism_min": 80.0, "data_product_storage_gb": 1000.0, } ], } ... Any pipeline that is in the scheduling block types configuration file must be in this JSON file with all key value pairs. 5. If you need to specify a new hardware configuration, add it to the JSON file at ``/data/config/hardware.json``. For example: .. code-block:: python ... { "name": "new_configuration", "capacity_storage_pb": 10, "performance_storage_tb": 50, "compute_nodes": 100, "data_product_storage_pb": 1, } ... Running the simulation ---------------------- Follow the :doc:`instructions for running the simulation <../usage/run_simulation>` using your preferred interface.