Node Reference¶
Nodes are the fundamental building blocks of Hermes workflows. Each node performs a specific task and can receive inputs from and provide outputs to other nodes.
Node JSON Structure¶
Every node in a workflow has this basic structure:
{
"NodeName": {
"Execution": {
"input_parameters": {
"param1": "value1",
"param2": "value2"
}
},
"type": "category.NodeType",
"requires": ["OtherNode"]
}
}
| Field | Description |
|---|---|
Execution.input_parameters |
Parameters that configure the node's behavior |
type |
Node type identifier (e.g., general.CopyDirectory) |
requires |
Optional explicit dependencies on other nodes |
GUI |
Optional FreeCAD GUI configuration |
Dependencies¶
Dependencies between nodes are resolved in two ways:
- Implicit — via parameter references like
{NodeName.output.Field} - Explicit — via the
requiresfield
Node Categories¶
General Nodes¶
Basic file operations, code execution, and template processing.
| Node | Type | Description |
|---|---|---|
| CopyDirectory | general.CopyDirectory |
Copy entire directory trees |
| CopyFile | general.CopyFile |
Copy individual files |
| RunOsCommand | general.RunOsCommand |
Execute shell commands |
| RunPythonCode | general.RunPythonCode |
Execute Python code |
| JinjaTransform | general.JinjaTransform |
Process Jinja2 templates |
| FilesWriter | general.FilesWriter |
Write files with generated content |
| Parameters | general.Parameters |
Define simulation parameters |
OpenFOAM Nodes¶
Specialized nodes for OpenFOAM CFD simulation setup.
| Category | Nodes | Description |
|---|---|---|
| Mesh | BlockMesh, SnappyHexMesh | Mesh generation |
| System | ControlDict, FvSchemes, FvSolution | Solver configuration |
| Constant | Transport, Turbulence, Physical properties | Physical properties |
| Dispersion | KinematicCloudProperties | Particle dispersion |
| BC | Boundary Conditions | Field boundary conditions |