*A template system-of-systems modeling approach for
automating the development, deployment, and integration of cooling system models (CSMs) for supercomputing facilities within the ExaDigiT framework.*
**AUTO**mating the **C**reation (i.e., development, deployment, and integration) of **S**ystem **M**odels (AutoCSM).*
AutoCSM is a Python-based framework to assist in CSM developers in accelerating the creation and deployment of system-level thermal-hydraulic CSMs. The intention is for this tool specifically to help standardize digital twin workflows for ExaDigiT. However, this tool can be used independent of ExaDigiT (and even other systems besides CSMs).
As shown in the following figure, AutoCSM is intended to provide a language-agnostic high-level interface to convert system specification information into a containerized system model (e.g., FMU) that can then be consumed by the simulator.
|*AutoCSM API in the broader ExaDigiT procedure.*|
AutoCSM is a Python-based framework to assist system model developers to accelerate the creation and deployment of SMs through standardized workflows and template modeling architectures.
Originally developed for systems with deep hierarchies such as as cooling system models for supercomputing facilities within the ExaDigiT digital twin framework. AutoCSM methods and worfklow can be used for any project where a standard architecture can be defined.
As shown in the following figure, AutoCSM is intended to provide a language-agnostic high-level interface to convert system specification information into a containerized system model (e.g., FMU) that can then be consumed by a simulator.
AutoCSM includes three main components:
- Input specification (JSON)
- Input specification (JSON):
- Model generation
- Model export
Below are examples of the structure of AutoCSM within the context of ExaDigiT.
@@ -40,6 +45,13 @@ AutoCSM includes three main components:
**See [examples](./examples/) folders for more details (e.g., [`modelica/run_auto_csm.py`](examples/modelica/run_auto_csm.py).**
# Advanced:
### Language Method Templates
For each implemented language a library of base templates and classes is requires (see [method](./methods/)). The templates represent the folder structure that will be replicated into the JSON specified layout using the specified architecture (e.g., `nested`). If the default template is not adequate for an application, new templates can be created in the language library and then selected for use from the AutoCSM Python API.
### Architectures
Architecures represent the way the input JSON structure is interpreted and applied to the selected method template. New architectures can be added for any language by adding new methods for the language of interest in Python.
# Citation:
**Paper**: S. Greenwood, V. Kumar, W. Brewer, “Thermo-fluid modeling framework for supercomputer digital twins: Part 2, automated cooling models.” In Proceedings of the 2024 American Modelica Conference, Mansfield, CT, USA, October 2024.