@clint.r.nicely – it appears that you’re reusing the boundary condition names (`Hold_BC`

), these should be unique:

```
Hold_BC: {
type: "fixed",
variable: "displacement",
components: [ "y" ],
function: "constant_1",
set: "Hold",
magnitude: 0.0,
penalty: 1e20,
},
Hold_BC: {
type: "fixed",
variable: "displacement",
components: [ "z" ],
function: "constant_1",
set: "Hold",
magnitude: 0.0,
penalty: 1e20,
},
Hold_BC: {
type: "fixed",
variable: "displacement",
components: [ "z" ],
function: "constant_1",
set: "z-symmetry",
magnitude: 0.0,
penalty: 1e20,
}
```

etc.

The way you can think of the JSON5 input format is that it’s *similar* in structure to codes like Sandia’s Sierra codes.

```
Hold_BC: {
type: "fixed",
variable: "displacement",
components: [ "z" ],
function: "constant_1",
set: "Hold",
magnitude: 0.0,
penalty: 1e20,
},
```

roughly would translate into SIERRA as:

```
BEGIN BOUNDARY CONDITION Hold_BC
TYPE = fixed
VARIABLE= displacement
SET = Hold
COMPONENTS = Z
FUNCTION = constant_1
MAGNITUDE = 0.0
PENALTY = 1e20
END
```

With the point being that `Hold_BC`

is the unique name for the boundary condition.