digraph G { rankdir = LR; edge[arrowhead = vee; arrowtail = vee; arrowsize = 0.8]; #compound = true; subgraph anisotropy { subgraph cluster_cae { label = <Pipeline>; #graph [ranksep=1]; node [shape = box; style = rounded]; geometry [ label=<
CAD geometry
- Salome
- OpenCascade
> ]; mesh [ label=<
Meshing
- Salome
- Netgen
> ]; solving [ label=<
Solving
- OpenFoam
> ]; database [ label=<
Database
- Sqlite
>; width = 1; shape = cylinder; ]; postprocess [ label=<
Post-processing
>; ]; ml [ label=<
Machine learning
>; color = goldenrod; ]; geometry -> mesh -> solving -> postprocess -> ml [weight = 10]; { edge[dir = both; arrowhead = box; arrowtail = box]; database -> geometry; database -> mesh; database -> solving; database -> postprocess; { rank = same; mesh; database } } { edge[dir = normal; color = goldenrod] ml -> geometry; ml -> mesh; ml -> solving; { rank = same; mesh; ml } } } subgraph cluster_caeN { label = <Pipeline>; empty1 [label = "..."; shape = plaintext; width = 1]; } subgraph cluster_caeN2 { label = <Pipeline2>; empty2 [label = "..."; shape = plaintext; width = 1]; } } }