{
  "$defs": {
    "CoordinateSystem": {
      "description": "Elmer's ``Coordinate System``.",
      "enum": [
        "Cartesian",
        "Cylindric",
        "Cylindric Symmetric",
        "Axi Symmetric",
        "Polar"
      ],
      "title": "CoordinateSystem",
      "type": "string"
    },
    "SimulationType": {
      "description": "Elmer's ``Simulation Type``.",
      "enum": [
        "Steady state",
        "Transient",
        "Scanning"
      ],
      "title": "SimulationType",
      "type": "string"
    },
    "TimesteppingMethod": {
      "description": "Elmer's ``Timestepping Method`` (paired with ``BDF Order`` for BDF).",
      "enum": [
        "BDF",
        "Newmark",
        "Runge-Kutta"
      ],
      "title": "TimesteppingMethod",
      "type": "string"
    }
  },
  "description": "The Elmer ``Simulation`` block. Defaults are a 3D Cartesian steady-state run, used for magnetostatics and steady thermal.",
  "properties": {
    "extra_keywords": {
      "additionalProperties": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "integer"
          },
          {
            "type": "number"
          },
          {
            "type": "boolean"
          }
        ]
      },
      "description": "Escape hatch: verbatim sif keyword/value pairs merged (last, so they win) into [`to_elmer`][] \u2014 any Elmer\nkeyword the typed fields don't model yet stays authorable without subclassing.",
      "title": "Extra Keywords",
      "type": "object"
    },
    "max_output_level": {
      "default": 5,
      "description": "Verbosity of ElmerSolver's console output (0-quiet \u2026 higher-noisier).",
      "title": "Max Output Level",
      "type": "integer"
    },
    "coordinate_system": {
      "$ref": "#/$defs/CoordinateSystem",
      "default": "Cartesian",
      "description": "The simulation coordinate system."
    },
    "coordinate_mapping": {
      "default": "1 2 3",
      "description": "Axis permutation for the coordinate system.",
      "title": "Coordinate Mapping",
      "type": "string"
    },
    "simulation_type": {
      "$ref": "#/$defs/SimulationType",
      "default": "Steady state",
      "description": "Steady-state, transient, or scanning run."
    },
    "steady_state_max_iterations": {
      "default": 1,
      "description": "Max steady-state (coupled-system) iterations.",
      "title": "Steady State Max Iterations",
      "type": "integer"
    },
    "output_intervals": {
      "default": 1,
      "description": "Write results every N steps.",
      "title": "Output Intervals",
      "type": "integer"
    },
    "timestepping_method": {
      "$ref": "#/$defs/TimesteppingMethod",
      "default": "BDF",
      "description": "Time integration scheme."
    },
    "bdf_order": {
      "default": 1,
      "description": "Order of the BDF timestepping method.",
      "title": "Bdf Order",
      "type": "integer"
    },
    "solver_input_file": {
      "default": "case.sif",
      "description": "Name of the generated .sif.",
      "title": "Solver Input File",
      "type": "string"
    },
    "post_file": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "ParaView/VTU post-processing output file; None (the default) leaves VTU output to the ResultOutputSolver \u2014\nsetting both trips Elmer's AddVtuOutputSolverHack and its log spam.",
      "title": "Post File"
    },
    "output_file": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "ElmerSolver restart/result file; None (the default) skips it \u2014 nothing downstream reads it and it grows to\nmulti-GB on large solves. Set a name only when a restart is wanted.",
      "title": "Output File"
    }
  },
  "title": "SimulationSettings",
  "type": "object"
}
