Input file reference

Norma is driven by a single YAML input file, passed on the command line:

bin/norma input.yaml

This reference documents every section and key of that file. It covers the full-order solid-mechanics capabilities; the reduced-order (Operator Inference) model types are documented with the norma-opinf companion package and are out of scope here.

Two kinds of input file

Every input file declares its type:

  • type: single — a single-domain simulation. Contains the mesh, model, time integrator, solver, and conditions. This is the common case and the basis for everything else.
  • type: multi — a multidomain (Schwarz-coupled) simulation. A short controller file that lists subdomain files and governs the coupling. Each subdomain is itself a type: single file. See Multidomain and Schwarz coupling.

Structure of a single-domain file

A single-domain input has the following top-level sections:

SectionRequiredPurpose
typeyessingle or multi
input mesh file, output mesh fileyesMesh and output
modelyesphysics and material assignment — Model, Materials
time integratoryestime-stepping scheme — Time integrators
solveryessolution algorithm — Solvers
boundary conditionsnoBoundary conditions
initial conditionsnoInitial conditions
Exodus output interval, CSV output interval, CSV write sidesetsnooutput cadence — Mesh and output
restart, swapsnorestart and mesh swapping — Multidomain and Schwarz coupling

A complete minimal example

An explicit dynamic simulation of a cantilever with a fixed end and an initial displacement profile:

type: single
input mesh file: cantilever.g
output mesh file: cantilever.e
model:
  type: solid mechanics
  material:
    blocks:
      cantilever: steel
    steel:
      model: linear elastic
      elastic modulus: 6.895e+09
      Poisson's ratio: 0.25
      density: 2768.0
time integrator:
  type: central difference
  initial time: 0.0
  final time: 3.0e-6
  CFL: 0.2
  γ: 0.5
initial conditions:
  displacement:
    - node set: nsall
      component: y
      function: "0.393701 * x * x"
boundary conditions:
  Dirichlet:
    - node set: nsx-
      component: x
      function: "0.0"
    - node set: nsx-
      component: y
      function: "0.0"
    - node set: nsx-
      component: z
      function: "0.0"
solver:
  type: explicit solver
  step: explicit

Reference pages

Conventions

  • Keys are literal and case-sensitive, including Unicode keys (β, γ) and punctuation (Poisson's ratio, Lamé's first constant).
  • Values that vary in space or time are function expressions in t, x, y, z.
  • Every reference page links to a canonical file under examples/ that exercises the feature.

Keyword validation

Every loaded input file is checked against the set of keys Norma actually reads. A key that no parser recognizes — a misspelling, a stale key from an older input format, or a key placed in the wrong section — produces a warning with a suggestion:

[WARNING] Input file 'cuboid-1.yaml': unknown key "adjoint paring" in
          Schwarz impedance nonoverlap boundary condition 1.
          Did you mean "adjoint pairing"?

Unknown keys warn rather than abort, and the run proceeds with the unknown key ignored, exactly as before. Missing required keys and invalid values remain hard errors reported by the section that reads them.