Implementation of Use Case 3#

The UC3 system provides a comprehensive interface for running Fluent software, allowing users to customize settings on a Marketplace frontend using an AiiDAlab instance. This document will guide you through the UC3 implementation process and its components.

The unique UUID (Universally Unique Identifier) generated for each request establishes a communication channel between the user and the HPC system, ensuring compliance with licensing agreements. The system operates with JSON format for both input and output files, located at /home/aiidawork/<UUID> in the Digital Ocean droplet instance. AiiDA orchestrates the workflow, data, and calculations within the system.

UC3 system implementation diagram

UC3 system implementation diagram. A user sets parameters through an AiiDAlab instance on the marketplace frontend. The frontend generates an input file with user settings and a UUID for the job. Input data is sent to a Digital Ocean droplet via ssh. The user provides the UUID to a SINTEF controller, who initiates the job while adhering to licensing. A SINTEF bash script (_submit.sh) uses the UUID to fetch inputs, run Fluent, and return results via ssh. The wait_watch.sh script, activated by AiiDA, monitors progress and retrieves output. AiiDA manages the UC3 workflow, data, and calculations. JSON files are in the /home/aiidawork/ on the droplet instance.

System Components#

The UC3 system comprises four main components:

  1. Client-facing frontend on Marketplace: The AiiDAlab instance allows for user input, and a dummy AiiDA calculation job generates an input file and monitors output results.

  2. Data server (Digital Ocean droplet): This server stores input files and outputs. Communication with the frontend happens via ssh. JSON input and output files are placed at /home/aiidawork/<UUID> in the droplet instance. The wait_watch.sh script, invoked by AiiDA, monitors calculation progress and retrieves the output file upon generation.

  3. HPC cluster (SINTEF): Fluent calculations are executed based on user inputs provided in the input files generated by the frontend. Essential scripts and tools used on the HPC side include:

    • _submit.sh: Submits the job to the HPC cluster, runs Fluent calculations, and handles file transfers.

    • flame_spray_launcher.sh: Launches the job for the flame spray application.

    • uc3wrapper.py: Generates a Fluent input file based on user inputs.

    • uc3_parser.py: Parses Fluent calculation results into the output JSON file.

  4. Human controller: A SINTEF employee who initiates calculations to comply with licensing agreements. Users manually send the UUID via email to the controller to start the job on the SINTEF side.

Input File Format#

The input file for the UC3 system is in JSON format, containing the following keys and corresponding user inputs (for application 1):

{
  "ATSBcons": "<ATSB Concentration (mol/l)>",
  "Precurfr": "<Precursor Volume Flow Rate (ml/min)>",
  "Dispfr": "<Dispersion Volume Flow Rate (l/min)>",
  "Pilotch4fr": "<Pilot Methane Volume Flow Rate (l/min)>",
  "Piloto2fr": "<Pilot Oxygen Volume Flow Rate (l/min)>"
}

Output File Format#

The output file from the UC3 system is also in JSON format. It includes the following data (for application 1):

{
  "area_flux": "<area_flux value>",
  "volume_flux": "<volume_flux value>",
  "particle_size": "<particle_size value>"
}

These parameters provide essential information for analyzing and optimizing the spray characteristics of flame spray processes.