Skip to content

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:

  1. Implicit — via parameter references like {NodeName.output.Field}
  2. Explicit — via the requires field

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