4.1.1. Anatomy of an Input Deck

Every Fuego simulation requires a text input file to define the problem. The input file defines everything about your problem except the mesh itself. You can prepare and edit this file in any text editor of your choosing. Using the Sierra Editor in SAW to prepare this file will provide additional context hints and syntax checking in real-time.

4.1.1.1. Indentation & Capitalization

Indentation is recommended but not required in an Fuego input file. You can indent with tabs or spaces, or choose not to indent things at all - although we highly recommend using indentation (with spaces) to make a consistently readable input file and to avoid errors with commands going in the wrong scope.

Fuego commands are generally not case sensitive, although commands referring to a file (e.g. the mesh file or an Aprepro include file) will be case sensitive.

4.1.1.2. Comments

Anything that starts with a # or a $ will be treated as a comment and ignored. Long lines can be split using \$, like this

# This is a comment
$ and so is this

# This is a single line command split on three lines
List of Blocks = block_1 block_2 block_3 \$
                 block_4 block_5 block_6 \$
                 block_7 block_8

4.1.1.3. Structure

The Fuego input file is structured using nested blocks with Begin and End commands surrounding each block. The outermost block must always be the SIERRA block. Commands directly in this block are referred to as “Domain-level” or “Sierra-level” commands. Other commands must go inside inner blocks, such as “Procedure” or “Fuego Region”, and will be referred to as such. If you put a command in the wrong level, you will get an error when you try to run Fuego.

Begin SIERRA Fuego
  # Domain-level commands:
  # * Fuego materials
  # * Finite element model
  # * Linear solvers

  Begin Procedure FuegoProcedure
    # Procedure-level commands

    Begin Solution Control Description
      # Solution control commands
    End

    Begin Fuego Region myRegion
      # Region-level commands:
      # * Equation(s) to solve
      # * Initial and Boundary conditions
      # * Post-processors
      # * File output specifications
    End
  End
End

There are two types of commands that can go in the input file - block commands and line commands. Block commands start with the Begin keyword and end with the End keyword, and can contain line commands or nested blocks.

Begin My Block Somename
   # line commands
End My Block Somename

The block type and name are optional on the End command, but may improve readability for large blocks

Begin My Block Somename
   # line commands
End

A line command is a command on a single line

X_Velocity = 1.2

Each line command has a specific block or set of blocks where it is valid. Using it outside those blocks will result in an error about an un-recognized command.