Commit 17ea243d authored by Greenwood, Scott's avatar Greenwood, Scott
Browse files

update readme

parent 37de8c4d
Loading
Loading
Loading
Loading
+43 −9
Original line number Diff line number Diff line
@@ -23,9 +23,52 @@ Below are examples of the structure of AutoCSM within the context of ExaDigiT.
|:--:| 
|*Internal to AutoCSM API procedure for ExaDigiT cooling system model creation.*|

## Quick Start
1. Clone the repository.
2. Install dependencies: `pip install numpy matplotlib pandas fmpy`
3. Import the AutoCSM class.
4. (Optional) Create the language-specific architecture.
5. Create the language-specific model.
6. Create the FMU and simulate.

**!! See [examples](./examples/) folders for more details (e.g., [`modelica/run_auto_csm.py`](examples/modelica/run_autocsm.py).**

## Workflow Overview

Each step is independent — you can run only the steps you need. For example, if you already have a Modelica project structure, skip `create_architecture` and start with `create_model`.

```
User JSON spec ──► AutoCSM API ──► Language Method ──► Outputs

                    ┌───────────────────┤
                    ▼                   ▼
              create_architecture   create_model
              (folder structure)   (Simulator.mo)

                    ┌───────────────────┤
                    ▼                   ▼
              create_setup         create_fmu
              (setup.mos)         (Simulator.fmu)
```

## Requirements
- Python 3+

### For FMU creation

| Dependency | Version | Purpose |
|-----------|---------|---------|
| [Dymola](https://www.3ds.com/products/catia/dymola) | 2025+ | Modelica compiler |
| Dymola Python interface | (bundled with Dymola) | FMU export API |

The Dymola Python interface is typically located at:
`<DYMOLA_INSTALL>/Modelica/Library/python_interface/dymola-VERSION.whl`

Install it with:
```bash
pip install <DYMOLA_INSTALL>/Modelica/Library/python_interface/dymola-VERSION.whl
```

### Implemented languages
- Modelica
    - Dymola
@@ -36,15 +79,6 @@ Below are examples of the structure of AutoCSM within the context of ExaDigiT.
### Implemented architectures
- [Nested hierarchy](https://en.wikipedia.org/wiki/Hierarchy#:~:text=A%20nested%20hierarchy%20or%20inclusion,way%20to%20the%20outer%20doll.)

## To Run
1. Clone the repository.
2. Import the AutoCSM class.
3. (Optional) Create the language-specific architecture.
4. Create the language-specific model.
5. Create the FMU and simulate.

**See [examples](./examples/) folders for more details (e.g., [`modelica/run_auto_csm.py`](examples/modelica/run_autocsm.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.