Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

C4 diagrams #770

Merged
merged 5 commits into from
Nov 10, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 39 additions & 0 deletions docs/assets/c4_component_ribasim.mmd
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
flowchart TB
modeler([Modeler]):::user

api["Ribasim Python\n[python]"]:::system
modeler-->|prepare model|api

subgraph ribasimBoundary[Ribasim]
ribasim["Ribasim.jl\n[julia]"]:::system
libribasim["libribasim\n[julia + python + BMI]"]:::system
cli["Ribasim CLI\n[julia]"]:::system
cli-->ribasim
libribasim-->ribasim
end
modeler-->|start|cli
modeler-->|coupled simulation|libribasim

subgraph qgisBoundary[QGIS]
QGIS[QGIS Application]:::system_ext
qgisPlugin["Ribasim QGIS plugin\n[python]"]:::system
QGIS-->qgisPlugin
end
modeler-->|prepare model|qgisBoundary

model[("input model data\n[toml + geopackage + arrow]")]:::system
qgisPlugin-->|read/write|model
api-->|read/write|model
ribasim-->|simulate|model

output[("simulation output\n[arrow]")]:::system
ribasim-->|write|output

class qgisBoundary,ribasimBoundary boundary

%% class definitions for C4 model
classDef default stroke-width:1px,stroke:white,color:white
classDef system fill:#1168bd
classDef user fill:#08427b
classDef system_ext fill:#999999
classDef boundary fill:transparent,stroke-dasharray:5 5,stroke:black,color:black
32 changes: 32 additions & 0 deletions docs/assets/c4_system.mmd
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
flowchart TB
modeler([Modeler]):::user

api["Ribasim Python\n[python]"]:::system
modeler-->|prepare model|api

ribasim["Ribasim\n[julia]"]:::system
modeler-->|start|ribasim

subgraph qgisBoundary[QGIS]
QGIS[QGIS Application]:::system_ext
qgisPlugin["Ribasim QGIS plugin\n[python]"]:::system
QGIS-->qgisPlugin
end
modeler-->|prepare model|qgisBoundary

model[("input model data\n[toml + geopackage + arrow]")]:::system
qgisPlugin-->|read/write|model
api-->|read/write|model
ribasim-->|simulate|model

output[("simulation results\n[arrow]")]:::system
ribasim-->|write|output

class qgisBoundary boundary

%% class definitions for C4 model
classDef default stroke-width:1px,stroke:white,color:white
classDef system fill:#1168bd
classDef user fill:#08427b
classDef system_ext fill:#999999
classDef boundary fill:transparent,stroke-dasharray:5 5,stroke:black,color:black
5 changes: 5 additions & 0 deletions docs/core/index.qmd
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,8 @@ The core is implemented in the [Julia programming language](https://julialang.or
can be found in the [Ribasim repository](https://github.com/Deltares/Ribasim) under the
`core/` folder. For developers we also advise to read the
[developer documentation](../contribute/core.qmd).

```{mermaid}
%%| file: ../assets/c4_component_ribasim.mmd
%%| fig-cap: "Component overview of Ribasim"
```
5 changes: 5 additions & 0 deletions docs/index.qmd
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,11 @@ Currently only Windows builds for `ribasim_cli.zip` are available.

See [Usage](core/usage.qmd) for more information.

```{mermaid}
%%| file: assets/c4_system.mmd
%%| fig-cap: "System overview of Ribasim"
```

# Status

The initial focus is on being able to
Expand Down