{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://catalog.lintel.tools/schemas/schemastore/endurica/latest.json",
  "x-lintel": {
    "source": "https://enduricastorage.blob.core.windows.net/public/endurica-cl-schema.json",
    "sourceSha256": "3c45da7bbb2c2ac17309bcf2e36d836271fa9f236ae811e1af6d2a93da762e1d",
    "fileMatch": [
      "*.ki.json"
    ],
    "parsers": [
      "json"
    ]
  },
  "type": "object",
  "properties": {
    "header": {
      "title": "Header",
      "description": "Text section used to document the analysis.",
      "oneOf": [
        {
          "type": "string"
        },
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      ]
    },
    "settings": {
      "title": "Settings Section",
      "description": "Settings that control different aspects of the analysis.",
      "type": "object",
      "properties": {
        "history_subset": {
          "type": "object",
          "properties": {
            "type": {
              "type": "string",
              "enum": [
                "default"
              ]
            },
            "labels": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "materials": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "additionalProperties": false
        },
        "ced_integration": {
          "type": "object",
          "properties": {
            "type": {
              "type": "string",
              "enum": [
                "fixed"
              ]
            },
            "steps": {
              "type": "number",
              "minimum": 1,
              "multipleOf": 1
            }
          },
          "additionalProperties": false
        },
        "crack_plane_discretization": {
          "type": "object",
          "oneOf": [
            {
              "properties": {
                "type": {
                  "type": "string",
                  "enum": [
                    "tri3d"
                  ]
                },
                "nmesh": {
                  "type": "number",
                  "minimum": 1,
                  "maximum": 10,
                  "multipleOf": 1
                }
              },
              "additionalProperties": false,
              "type": "object"
            },
            {
              "properties": {
                "type": {
                  "type": "string",
                  "enum": [
                    "user"
                  ]
                },
                "planes": {
                  "description": "List of [x,y,z] unit vectors defining the crack planes to use in the analysis.",
                  "type": "array",
                  "items": {
                    "type": "array",
                    "maxItems": 3,
                    "minItems": 3,
                    "prefixItems": [
                      {
                        "type": "number",
                        "maximum": 1.0
                      },
                      {
                        "type": "number",
                        "maximum": 1.0
                      },
                      {
                        "type": "number",
                        "maximum": 1.0
                      }
                    ]
                  },
                  "minItems": 1
                }
              },
              "additionalProperties": false,
              "type": "object"
            }
          ]
        },
        "microsphere_discretization": {
          "type": "object",
          "properties": {
            "type": {
              "type": "string",
              "enum": [
                "tri3d"
              ]
            },
            "nmesh": {
              "type": "number",
              "minimum": 1,
              "maximum": 10,
              "multipleOf": 1
            }
          },
          "additionalProperties": false
        }
      },
      "additionalProperties": false
    },
    "material_analysis": {
      "title": "Material Analysis Definitions",
      "description": "Material analysis definitions that will be performed for each material definition.",
      "type": "object",
      "properties": {
        "ageing_crack_growth_rate": {
          "type": "object",
          "description": "Crack growth rate curves at varying ages.",
          "properties": {
            "n_age": {
              "type": "number",
              "multipleOf": 1,
              "minimum": 2
            },
            "n_T": {
              "type": "number",
              "multipleOf": 1,
              "minimum": 2
            },
            "age_min": {
              "type": "number",
              "minimum": 0
            },
            "age_max": {
              "type": "number",
              "exclusiveMinimum": 0.0
            },
            "T_min": {
              "type": "number"
            },
            "T_max": {
              "type": "number"
            }
          },
          "required": [
            "age_max"
          ],
          "additionalProperties": false
        },
        "ageing_strain_life": {
          "type": "object",
          "description": "Strain-life curves at varying ages.",
          "properties": {
            "n_age": {
              "type": "number",
              "multipleOf": 1,
              "minimum": 2
            },
            "n_strain": {
              "type": "number",
              "multipleOf": 1,
              "minimum": 2
            },
            "age_min": {
              "type": "number",
              "minimum": 0.0
            },
            "age_max": {
              "type": "number",
              "exclusiveMinimum": 0.0
            },
            "strain_min": {
              "type": "number",
              "exclusiveMinimum": 0.0
            },
            "strain_max": {
              "type": "number",
              "exclusiveMinimum": 0.0
            }
          },
          "required": [
            "age_max",
            "strain_min",
            "strain_max"
          ],
          "additionalProperties": false
        },
        "crack_growth_rate": {
          "type": "object",
          "description": "Crack growth rate curves at varying R ratios.",
          "properties": {
            "n_R": {
              "type": "number",
              "multipleOf": 1,
              "minimum": 2
            },
            "n_T": {
              "type": "number",
              "multipleOf": 1,
              "minimum": 2
            },
            "R_min": {
              "type": "number",
              "minimum": 0.0,
              "maximum": 1.0
            },
            "R_max": {
              "type": "number",
              "minimum": 0.0,
              "maximum": 1.0
            },
            "T_min": {
              "type": "number",
              "exclusiveMinimum": 0.0
            },
            "T_max": {
              "type": "number",
              "exclusiveMinimum": 0.0
            }
          },
          "additionalProperties": false
        },
        "haigh_diagram": {
          "type": "object",
          "description": "Haigh diagram output.",
          "properties": {
            "n": {
              "type": "number",
              "multipleOf": 1.0,
              "minimum": 2
            },
            "strain_mean_max": {
              "type": "number"
            },
            "strain_amplitude_max": {
              "type": "number"
            }
          },
          "additionalProperties": false
        },
        "stress_strain": {
          "type": "object",
          "description": "Stress-Strain curves for different modes of deformation.",
          "properties": {
            "n_points": {
              "type": "number",
              "multipleOf": 1,
              "minimum": 2
            },
            "n_unloads": {
              "type": "number",
              "multipleOf": 1,
              "minimum": 2
            },
            "strain_min": {
              "type": "number"
            },
            "strain_max": {
              "type": "number"
            },
            "volume_strain_min": {
              "type": "number"
            },
            "volume_strain_max": {
              "type": "number"
            }
          },
          "additionalProperties": false
        },
        "hysteresis_frequency_sweep": {
          "type": "object",
          "description": "Hysteresis frequency sweep.",
          "properties": {
            "n_points": {
              "type": "number",
              "multipleOf": 1,
              "minimum": 2
            },
            "frequency_min": {
              "type": "number",
              "exclusiveMinimum": 0.0
            },
            "frequency_max": {
              "type": "number",
              "exclusiveMinimum": 0.0
            },
            "temperature": {
              "type": "number"
            },
            "deformation_mode": {
              "type": "string",
              "enum": [
                "simple_tension",
                "planar_tension",
                "simple_shear"
              ]
            },
            "strain_amplitude": {
              "type": "number"
            }
          },
          "additionalProperties": false
        },
        "hysteresis_strain_sweep": {
          "type": "object",
          "description": "Hysteresis strain sweep.",
          "properties": {
            "n_points": {
              "type": "number",
              "multipleOf": 1,
              "minimum": 2
            },
            "strain_amplitude_min": {
              "type": "number",
              "exclusiveMinimum": 0.0
            },
            "strain_amplitude_max": {
              "type": "number",
              "exclusiveMinimum": 0.0
            },
            "temperature": {
              "type": "number"
            },
            "deformation_mode": {
              "type": "string",
              "enum": [
                "simple_tension",
                "planar_tension",
                "simple_shear"
              ]
            },
            "frequency": {
              "type": "number"
            }
          },
          "additionalProperties": false
        }
      },
      "additionalProperties": false
    },
    "outputs": {
      "title": "Output Requests",
      "description": "List of output requests for the analysis.",
      "type": "array",
      "items": {
        "oneOf": [
          {
            "type": "string",
            "enum": [
              "adiabatic_time_limit",
              "age",
              "block_cycle",
              "cauchy_stress",
              "cavitation",
              "ced",
              "ced_cycle_count",
              "ced_sphere",
              "crack_growth",
              "crack_size_calibration",
              "engineering_strain",
              "engineering_stress",
              "factor_of_safety",
              "factor_of_safety_ced",
              "factor_of_safety_sphere",
              "history_compression",
              "hysteresis",
              "life",
              "life_sphere",
              "logarithmic_strain",
              "principal_cauchy_stress",
              "principal_engineering_strain",
              "principal_engineering_stress",
              "principal_logarithmic_strain",
              "residual_strength",
              "sed",
              "stiffness_ratio",
              "stiffness_ratio_ageing",
              "stiffness_ratio_cyclic",
              "thermal_runaway",
              "volume_adjustment",
              "wrinkling"
            ]
          },
          {
            "type": "object",
            "oneOf": [
              {
                "properties": {
                  "name": {
                    "enum": [
                      "adiabatic_time_limit"
                    ]
                  }
                },
                "additionalProperties": false,
                "type": "object"
              },
              {
                "properties": {
                  "name": {
                    "enum": [
                      "age"
                    ]
                  }
                },
                "additionalProperties": false,
                "type": "object"
              },
              {
                "properties": {
                  "name": {
                    "enum": [
                      "block_cycle"
                    ]
                  },
                  "n_ced": {
                    "type": "number",
                    "minimum": 1,
                    "multipleOf": 1
                  },
                  "n_r_ratio": {
                    "type": "number",
                    "minimum": 1,
                    "multipleOf": 1
                  }
                },
                "additionalProperties": false,
                "type": "object"
              },
              {
                "properties": {
                  "name": {
                    "enum": [
                      "cauchy_stress"
                    ]
                  }
                },
                "additionalProperties": false,
                "type": "object"
              },
              {
                "properties": {
                  "name": {
                    "enum": [
                      "cavitation"
                    ]
                  }
                },
                "additionalProperties": false,
                "type": "object"
              },
              {
                "properties": {
                  "name": {
                    "enum": [
                      "ced"
                    ]
                  }
                },
                "additionalProperties": false,
                "type": "object"
              },
              {
                "properties": {
                  "name": {
                    "enum": [
                      "ced_cycle_cout"
                    ]
                  }
                },
                "additionalProperties": false,
                "type": "object"
              },
              {
                "properties": {
                  "name": {
                    "enum": [
                      "ced_sphere"
                    ]
                  }
                },
                "additionalProperties": false,
                "type": "object"
              },
              {
                "properties": {
                  "name": {
                    "enum": [
                      "crack_growth"
                    ]
                  }
                },
                "additionalProperties": false,
                "type": "object"
              },
              {
                "properties": {
                  "name": {
                    "enum": [
                      "crack_size_calibration"
                    ]
                  },
                  "c0_min": {
                    "type": "number"
                  },
                  "n_points": {
                    "type": "number",
                    "minimum": 1,
                    "multipleOf": 1
                  },
                  "target_life": {
                    "type": "number"
                  }
                },
                "additionalProperties": false,
                "type": "object"
              },
              {
                "properties": {
                  "name": {
                    "enum": [
                      "engineering_strain"
                    ]
                  }
                },
                "additionalProperties": false,
                "type": "object"
              },
              {
                "properties": {
                  "name": {
                    "enum": [
                      "engineering_stress"
                    ]
                  }
                },
                "additionalProperties": false,
                "type": "object"
              },
              {
                "properties": {
                  "name": {
                    "enum": [
                      "factor_of_safety"
                    ]
                  }
                },
                "additionalProperties": false,
                "type": "object"
              },
              {
                "properties": {
                  "name": {
                    "enum": [
                      "factor_of_safety_ced"
                    ]
                  }
                },
                "additionalProperties": false,
                "type": "object"
              },
              {
                "properties": {
                  "name": {
                    "enum": [
                      "factor_of_safety_sphere"
                    ]
                  }
                },
                "additionalProperties": false,
                "type": "object"
              },
              {
                "properties": {
                  "name": {
                    "enum": [
                      "history_compression"
                    ]
                  },
                  "keep": {
                    "type": "number",
                    "minimum": 0.0,
                    "maximum": 1.0
                  },
                  "n_ced": {
                    "type": "number",
                    "minimum": 1,
                    "multipleOf": 1
                  },
                  "n_r_ratio": {
                    "type": "number",
                    "minimum": 1,
                    "multipleOf": 1
                  }
                },
                "additionalProperties": false,
                "type": "object"
              },
              {
                "properties": {
                  "name": {
                    "enum": [
                      "hysteresis"
                    ]
                  }
                },
                "additionalProperties": false,
                "type": "object"
              },
              {
                "properties": {
                  "name": {
                    "enum": [
                      "life"
                    ]
                  }
                },
                "additionalProperties": false,
                "type": "object"
              },
              {
                "properties": {
                  "name": {
                    "enum": [
                      "life_sphere"
                    ]
                  }
                },
                "additionalProperties": false,
                "type": "object"
              },
              {
                "properties": {
                  "name": {
                    "enum": [
                      "logarithmic_strain"
                    ]
                  }
                },
                "additionalProperties": false,
                "type": "object"
              },
              {
                "properties": {
                  "name": {
                    "enum": [
                      "principal_cauchy_stress"
                    ]
                  }
                },
                "additionalProperties": false,
                "type": "object"
              },
              {
                "properties": {
                  "name": {
                    "enum": [
                      "principal_engineering_strain"
                    ]
                  }
                },
                "additionalProperties": false,
                "type": "object"
              },
              {
                "properties": {
                  "name": {
                    "enum": [
                      "principal_engineering_stress"
                    ]
                  }
                },
                "additionalProperties": false,
                "type": "object"
              },
              {
                "properties": {
                  "name": {
                    "enum": [
                      "principal_logarithmic_strain"
                    ]
                  }
                },
                "additionalProperties": false,
                "type": "object"
              },
              {
                "properties": {
                  "name": {
                    "enum": [
                      "residual_strength"
                    ]
                  }
                },
                "additionalProperties": false,
                "type": "object"
              },
              {
                "properties": {
                  "name": {
                    "enum": [
                      "sed"
                    ]
                  }
                },
                "additionalProperties": false,
                "type": "object"
              },
              {
                "properties": {
                  "name": {
                    "enum": [
                      "stiffness_ratio"
                    ]
                  }
                },
                "additionalProperties": false,
                "type": "object"
              },
              {
                "properties": {
                  "name": {
                    "enum": [
                      "stiffness_ratio_ageing"
                    ]
                  }
                },
                "additionalProperties": false,
                "type": "object"
              },
              {
                "properties": {
                  "name": {
                    "enum": [
                      "stiffness_ratio_cyclic"
                    ]
                  }
                },
                "additionalProperties": false,
                "type": "object"
              },
              {
                "properties": {
                  "name": {
                    "enum": [
                      "thermal_runaway"
                    ]
                  }
                },
                "additionalProperties": false,
                "type": "object"
              },
              {
                "properties": {
                  "name": {
                    "enum": [
                      "volume_adjustment"
                    ]
                  }
                },
                "additionalProperties": false,
                "type": "object"
              },
              {
                "properties": {
                  "name": {
                    "enum": [
                      "wrinkling"
                    ]
                  }
                },
                "additionalProperties": false,
                "type": "object"
              }
            ],
            "properties": {
              "name": {
                "type": "string"
              }
            }
          }
        ]
      },
      "uniqueItems": true
    },
    "materials": {
      "title": "Material Section",
      "description": "List of material definitions.",
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "c0": {
            "type": "number",
            "exclusiveMinimum": 0.0,
            "$ref": "#/$defs/length"
          },
          "cf": {
            "type": "number",
            "exclusiveMinimum": 0.0,
            "$ref": "#/$defs/length"
          },
          "elasticity": {
            "type": "object",
            "oneOf": [
              {
                "properties": {
                  "type": {
                    "enum": [
                      "arrudaboyce"
                    ]
                  },
                  "shear_modulus": {
                    "$ref": "#/$defs/pressure"
                  },
                  "limit_stretch": {
                    "$ref": "#/$defs/unitless"
                  },
                  "D1": {
                    "$ref": "#/$defs/1_over_pressure"
                  },
                  "bulk_modulus": {
                    "$ref": "#/$defs/pressure"
                  },
                  "temperatures": {
                    "$ref": "#/$defs/temperature"
                  }
                },
                "additionalProperties": false,
                "type": "object"
              },
              {
                "properties": {
                  "type": {
                    "enum": [
                      "hyperfoam"
                    ]
                  },
                  "mu1": {
                    "$ref": "#/$defs/pressure"
                  },
                  "mu2": {
                    "$ref": "#/$defs/pressure"
                  },
                  "mu3": {
                    "$ref": "#/$defs/pressure"
                  },
                  "mu4": {
                    "$ref": "#/$defs/pressure"
                  },
                  "mu5": {
                    "$ref": "#/$defs/pressure"
                  },
                  "mu6": {
                    "$ref": "#/$defs/pressure"
                  },
                  "alpha1": {
                    "$ref": "#/$defs/unitless"
                  },
                  "alpha2": {
                    "$ref": "#/$defs/unitless"
                  },
                  "alpha3": {
                    "$ref": "#/$defs/unitless"
                  },
                  "alpha4": {
                    "$ref": "#/$defs/unitless"
                  },
                  "alpha5": {
                    "$ref": "#/$defs/unitless"
                  },
                  "alpha6": {
                    "$ref": "#/$defs/unitless"
                  },
                  "nu1": {
                    "$ref": "#/$defs/unitless"
                  },
                  "nu2": {
                    "$ref": "#/$defs/unitless"
                  },
                  "nu3": {
                    "$ref": "#/$defs/unitless"
                  },
                  "nu4": {
                    "$ref": "#/$defs/unitless"
                  },
                  "nu5": {
                    "$ref": "#/$defs/unitless"
                  },
                  "nu6": {
                    "$ref": "#/$defs/unitless"
                  },
                  "temperatures": {
                    "$ref": "#/$defs/temperature"
                  }
                },
                "additionalProperties": false,
                "type": "object"
              },
              {
                "properties": {
                  "type": {
                    "enum": [
                      "mooneyrivlin"
                    ]
                  },
                  "C10": {
                    "$ref": "#/$defs/pressure"
                  },
                  "C01": {
                    "$ref": "#/$defs/pressure"
                  },
                  "D1": {
                    "$ref": "#/$defs/1_over_pressure"
                  },
                  "bulk_modulus": {
                    "$ref": "#/$defs/pressure"
                  },
                  "temperatures": {
                    "$ref": "#/$defs/temperature"
                  }
                },
                "additionalProperties": false,
                "type": "object"
              },
              {
                "properties": {
                  "type": {
                    "enum": [
                      "neohookean"
                    ]
                  },
                  "C10": {
                    "$ref": "#/$defs/pressure"
                  },
                  "D1": {
                    "$ref": "#/$defs/1_over_pressure"
                  },
                  "bulk_modulus": {
                    "$ref": "#/$defs/pressure"
                  },
                  "temperatures": {
                    "$ref": "#/$defs/temperature"
                  }
                },
                "additionalProperties": false,
                "type": "object"
              },
              {
                "properties": {
                  "type": {
                    "enum": [
                      "ogden"
                    ]
                  },
                  "mu1": {
                    "$ref": "#/$defs/pressure"
                  },
                  "mu2": {
                    "$ref": "#/$defs/pressure"
                  },
                  "mu3": {
                    "$ref": "#/$defs/pressure"
                  },
                  "mu4": {
                    "$ref": "#/$defs/pressure"
                  },
                  "mu5": {
                    "$ref": "#/$defs/pressure"
                  },
                  "mu6": {
                    "$ref": "#/$defs/pressure"
                  },
                  "alpha1": {
                    "$ref": "#/$defs/unitless"
                  },
                  "alpha2": {
                    "$ref": "#/$defs/unitless"
                  },
                  "alpha3": {
                    "$ref": "#/$defs/unitless"
                  },
                  "alpha4": {
                    "$ref": "#/$defs/unitless"
                  },
                  "alpha5": {
                    "$ref": "#/$defs/unitless"
                  },
                  "alpha6": {
                    "$ref": "#/$defs/unitless"
                  },
                  "D1": {
                    "$ref": "#/$defs/1_over_pressure"
                  },
                  "D2": {
                    "$ref": "#/$defs/1_over_pressure"
                  },
                  "D3": {
                    "$ref": "#/$defs/1_over_pressure"
                  },
                  "D4": {
                    "$ref": "#/$defs/1_over_pressure"
                  },
                  "D5": {
                    "$ref": "#/$defs/1_over_pressure"
                  },
                  "D6": {
                    "$ref": "#/$defs/1_over_pressure"
                  },
                  "temperatures": {
                    "$ref": "#/$defs/temperature"
                  }
                },
                "additionalProperties": false,
                "type": "object"
              },
              {
                "properties": {
                  "type": {
                    "enum": [
                      "ogden2"
                    ]
                  },
                  "mu1": {
                    "$ref": "#/$defs/pressure"
                  },
                  "mu2": {
                    "$ref": "#/$defs/pressure"
                  },
                  "mu3": {
                    "$ref": "#/$defs/pressure"
                  },
                  "mu4": {
                    "$ref": "#/$defs/pressure"
                  },
                  "mu5": {
                    "$ref": "#/$defs/pressure"
                  },
                  "mu6": {
                    "$ref": "#/$defs/pressure"
                  },
                  "alpha1": {
                    "$ref": "#/$defs/unitless"
                  },
                  "alpha2": {
                    "$ref": "#/$defs/unitless"
                  },
                  "alpha3": {
                    "$ref": "#/$defs/unitless"
                  },
                  "alpha4": {
                    "$ref": "#/$defs/unitless"
                  },
                  "alpha5": {
                    "$ref": "#/$defs/unitless"
                  },
                  "alpha6": {
                    "$ref": "#/$defs/unitless"
                  },
                  "D1": {
                    "$ref": "#/$defs/1_over_pressure"
                  },
                  "D2": {
                    "$ref": "#/$defs/1_over_pressure"
                  },
                  "D3": {
                    "$ref": "#/$defs/1_over_pressure"
                  },
                  "D4": {
                    "$ref": "#/$defs/1_over_pressure"
                  },
                  "D5": {
                    "$ref": "#/$defs/1_over_pressure"
                  },
                  "D6": {
                    "$ref": "#/$defs/1_over_pressure"
                  },
                  "temperatures": {
                    "$ref": "#/$defs/temperature"
                  }
                },
                "additionalProperties": false,
                "type": "object"
              },
              {
                "properties": {
                  "type": {
                    "enum": [
                      "reducedpolynomial"
                    ]
                  },
                  "C10": {
                    "$ref": "#/$defs/pressure"
                  },
                  "C20": {
                    "$ref": "#/$defs/pressure"
                  },
                  "C30": {
                    "$ref": "#/$defs/pressure"
                  },
                  "C40": {
                    "$ref": "#/$defs/pressure"
                  },
                  "C50": {
                    "$ref": "#/$defs/pressure"
                  },
                  "C60": {
                    "$ref": "#/$defs/pressure"
                  },
                  "D1": {
                    "$ref": "#/$defs/1_over_pressure"
                  },
                  "D2": {
                    "$ref": "#/$defs/1_over_pressure"
                  },
                  "D3": {
                    "$ref": "#/$defs/1_over_pressure"
                  },
                  "D4": {
                    "$ref": "#/$defs/1_over_pressure"
                  },
                  "D5": {
                    "$ref": "#/$defs/1_over_pressure"
                  },
                  "D6": {
                    "$ref": "#/$defs/1_over_pressure"
                  },
                  "temperatures": {
                    "$ref": "#/$defs/temperature"
                  }
                },
                "additionalProperties": false,
                "type": "object"
              },
              {
                "properties": {
                  "type": {
                    "enum": [
                      "uhyper"
                    ]
                  },
                  "prop1": {},
                  "prop2": {},
                  "prop3": {},
                  "prop4": {},
                  "prop5": {},
                  "prop6": {},
                  "prop7": {},
                  "prop8": {}
                },
                "additionalProperties": false,
                "type": "object"
              },
              {
                "properties": {
                  "type": {
                    "enum": [
                      "vanderwaals"
                    ]
                  },
                  "shear_modulus": {
                    "$ref": "#/$defs/pressure"
                  },
                  "limit_stretch": {
                    "$ref": "#/$defs/unitless"
                  },
                  "alpha": {
                    "$ref": "#/$defs/unitless"
                  },
                  "beta": {
                    "$ref": "#/$defs/unitless"
                  },
                  "D1": {
                    "$ref": "#/$defs/1_over_pressure"
                  },
                  "bulk_modulus": {
                    "$ref": "#/$defs/pressure"
                  },
                  "temperatures": {
                    "$ref": "#/$defs/temperature"
                  }
                },
                "additionalProperties": false,
                "type": "object"
              }
            ]
          },
          "mullins": {
            "type": "object",
            "oneOf": [
              {
                "properties": {
                  "type": {
                    "enum": [
                      "ogdenroxburgh"
                    ]
                  },
                  "r": {
                    "$ref": "#/$defs/unitless"
                  },
                  "m": {
                    "$ref": "#/$defs/pressure"
                  },
                  "beta": {
                    "$ref": "#/$defs/unitless"
                  }
                },
                "additionalProperties": false,
                "type": "object"
              }
            ]
          },
          "crack_growth_rate": {
            "type": "object",
            "oneOf": [
              {
                "properties": {
                  "type": {
                    "enum": [
                      "thomas"
                    ]
                  },
                  "rc": {
                    "$ref": "#/$defs/length_over_cycle"
                  },
                  "Tcritical": {
                    "$ref": "#/$defs/energyReleaseRate"
                  },
                  "F0": {
                    "$ref": "#/$defs/unitless"
                  },
                  "temp_coef": {
                    "$ref": "#/$defs/temperatureCoefficient"
                  },
                  "temp_ref": {
                    "$ref": "#/$defs/temperature"
                  },
                  "temperatures": {
                    "$ref": "#/$defs/temperature"
                  }
                },
                "additionalProperties": false,
                "type": "object"
              },
              {
                "properties": {
                  "type": {
                    "enum": [
                      "lakelindley"
                    ]
                  },
                  "rc": {
                    "$ref": "#/$defs/length_over_cycle"
                  },
                  "Tcritical": {
                    "$ref": "#/$defs/energyReleaseRate"
                  },
                  "F0": {
                    "$ref": "#/$defs/unitless"
                  },
                  "threshold": {
                    "$ref": "#/$defs/energyReleaseRate"
                  },
                  "transition": {
                    "$ref": "#/$defs/energyReleaseRate"
                  },
                  "temp_coef": {
                    "$ref": "#/$defs/temperatureCoefficient"
                  },
                  "temp_ref": {
                    "$ref": "#/$defs/temperature"
                  },
                  "temperatures": {
                    "$ref": "#/$defs/temperature"
                  }
                },
                "additionalProperties": false,
                "type": "object"
              },
              {
                "properties": {
                  "type": {
                    "enum": [
                      "tabular"
                    ]
                  },
                  "table": {
                    "description": "List of [T,dcdn] points. Units: ([energy_release_rate], [length]/[cycle]) e.g. (J/m^2, m/cycle), (kJ/m^2, mm/cycle), (in*lb/in^2, in/cycle)",
                    "type": "array",
                    "items": {
                      "type": "array",
                      "maxItems": 2,
                      "minItems": 2,
                      "prefixItems": [
                        {
                          "type": "number",
                          "minimum": 0.0
                        },
                        {
                          "type": "number",
                          "minimum": 0.0
                        }
                      ]
                    },
                    "minItems": 2
                  },
                  "temp_coef": {
                    "$ref": "#/$defs/temperatureCoefficient"
                  },
                  "temp_ref": {
                    "$ref": "#/$defs/temperature"
                  }
                },
                "additionalProperties": false,
                "type": "object"
              },
              {
                "properties": {
                  "type": {
                    "enum": [
                      "fatigue_limit_only"
                    ]
                  },
                  "threshold": {
                    "$ref": "#/$defs/energyReleaseRate"
                  },
                  "temperatures": {
                    "$ref": "#/$defs/temperature"
                  }
                },
                "additionalProperties": false,
                "type": "object"
              }
            ]
          },
          "nonrelaxing": {
            "type": "object",
            "oneOf": [
              {
                "properties": {
                  "type": {
                    "enum": [
                      "paris"
                    ]
                  }
                },
                "additionalProperties": false,
                "type": "object"
              },
              {
                "properties": {
                  "type": {
                    "enum": [
                      "xR_tabular"
                    ]
                  },
                  "table": {
                    "description": "List of [x,R] points",
                    "type": "array",
                    "items": {
                      "type": "array",
                      "maxItems": 2,
                      "minItems": 2,
                      "prefixItems": [
                        {
                          "type": "number",
                          "minimum": 0.0,
                          "maximum": 1.0
                        },
                        {
                          "type": "number",
                          "minimum": 0.0,
                          "maximum": 1.0
                        }
                      ]
                    }
                  }
                },
                "additionalProperties": false,
                "type": "object"
              },
              {
                "properties": {
                  "type": {
                    "enum": [
                      "lindley73"
                    ]
                  }
                },
                "additionalProperties": false,
                "type": "object"
              },
              {
                "properties": {
                  "type": {
                    "enum": [
                      "marsfatemi"
                    ]
                  },
                  "F1": {
                    "$ref": "#/$defs/unitless"
                  },
                  "F2": {
                    "$ref": "#/$defs/unitless"
                  },
                  "F3": {
                    "$ref": "#/$defs/unitless"
                  },
                  "Fexp": {
                    "$ref": "#/$defs/unitless"
                  },
                  "temperatures": {
                    "$ref": "#/$defs/temperature"
                  }
                },
                "additionalProperties": false,
                "type": "object"
              }
            ]
          },
          "ozone_attack": {
            "type": "object",
            "oneOf": [
              {
                "properties": {
                  "type": {
                    "enum": [
                      "williams"
                    ]
                  },
                  "Tz": {
                    "$ref": "#/$defs/energyReleaseRate"
                  },
                  "rz": {
                    "$ref": "#/$defs/length_over_time"
                  }
                },
                "additionalProperties": false,
                "type": "object"
              },
              {
                "properties": {
                  "type": {
                    "enum": [
                      "gentmcgrath"
                    ]
                  },
                  "Tz": {
                    "$ref": "#/$defs/energyReleaseRate"
                  },
                  "Kz": {
                    "$ref": "#/$defs/length_over_time_concentration"
                  },
                  "Kv": {
                    "$ref": "#/$defs/length_over_time"
                  },
                  "Fv": {
                    "$ref": "#/$defs/unitless"
                  },
                  "Gv": {
                    "$ref": "#/$defs/temperature"
                  },
                  "Tg": {
                    "$ref": "#/$defs/temperature"
                  }
                },
                "additionalProperties": false,
                "type": "object"
              }
            ]
          },
          "hysteresis": {
            "type": "object",
            "oneOf": [
              {
                "properties": {
                  "type": {
                    "enum": [
                      "powerlaw"
                    ]
                  },
                  "chi": {
                    "$ref": "#/$defs/unitless"
                  },
                  "deformation_mode": {
                    "type": "string",
                    "enum": [
                      "simple_tension",
                      "planar_tension",
                      "simple_shear"
                    ]
                  },
                  "strain_amplitude_ref": {
                    "$ref": "#/$defs/unitless"
                  },
                  "hys_ref": {
                    "$ref": "#/$defs/hysteresis"
                  },
                  "gamma": {
                    "$ref": "#/$defs/unitless"
                  },
                  "temp_coef": {
                    "$ref": "#/$defs/temperatureCoefficient"
                  },
                  "temp_ref": {
                    "$ref": "#/$defs/temperature"
                  },
                  "frequency_ref": {
                    "$ref": "#/$defs/frequency"
                  },
                  "TK_frequency_coef": {
                    "$ref": "#/$defs/frequencyCoefficient"
                  },
                  "PL_frequency_coef": {
                    "$ref": "#/$defs/frequencyCoefficient"
                  },
                  "WLF_C1": {
                    "$ref": "#/$defs/unitless"
                  },
                  "WLF_C2": {
                    "$ref": "#/$defs/temperature"
                  },
                  "WLF_frequencies": {
                    "$ref": "#/$defs/frequency"
                  },
                  "WLF_Gp": {
                    "$ref": "#/$defs/pressure"
                  },
                  "WLF_Gpp": {
                    "$ref": "#/$defs/pressure"
                  }
                },
                "additionalProperties": false,
                "type": "object"
              },
              {
                "properties": {
                  "type": {
                    "enum": [
                      "kraus"
                    ]
                  },
                  "chi": {
                    "$ref": "#/$defs/unitless"
                  },
                  "deformation_mode": {
                    "type": "string",
                    "enum": [
                      "simple_tension",
                      "planar_tension",
                      "simple_shear"
                    ]
                  },
                  "Gp_inf": {
                    "$ref": "#/$defs/pressure"
                  },
                  "Gp_0": {
                    "$ref": "#/$defs/pressure"
                  },
                  "Gpp_inf": {
                    "$ref": "#/$defs/pressure"
                  },
                  "Gpp_max": {
                    "$ref": "#/$defs/pressure"
                  },
                  "strain_amplitude_ref": {
                    "$ref": "#/$defs/unitless"
                  },
                  "strain_amplitude_c": {
                    "$ref": "#/$defs/unitless"
                  },
                  "delta_Gpp_U": {
                    "$ref": "#/$defs/pressure"
                  },
                  "m": {
                    "$ref": "#/$defs/unitless"
                  },
                  "temp_coef": {
                    "$ref": "#/$defs/temperatureCoefficient"
                  },
                  "temp_ref": {
                    "$ref": "#/$defs/temperature"
                  },
                  "frequency_ref": {
                    "$ref": "#/$defs/frequency"
                  },
                  "TK_frequency_coef": {
                    "$ref": "#/$defs/frequencyCoefficient"
                  },
                  "PL_frequency_coef": {
                    "$ref": "#/$defs/frequencyCoefficient"
                  },
                  "WLF_C1": {
                    "$ref": "#/$defs/unitless"
                  },
                  "WLF_C2": {
                    "$ref": "#/$defs/temperature"
                  },
                  "WLF_frequencies": {
                    "$ref": "#/$defs/frequency"
                  },
                  "WLF_Gp": {
                    "$ref": "#/$defs/pressure"
                  },
                  "WLF_Gpp": {
                    "$ref": "#/$defs/pressure"
                  }
                },
                "additionalProperties": false,
                "type": "object"
              }
            ]
          },
          "thermal_runaway": {
            "type": "object",
            "oneOf": [
              {
                "properties": {
                  "type": {
                    "enum": [
                      "limit"
                    ]
                  },
                  "density": {
                    "$ref": "#/$defs/density"
                  },
                  "heat_rate": {
                    "$ref": "#/$defs/volumetric_heat_rate"
                  },
                  "specific_heat": {
                    "$ref": "#/$defs/specific_heat"
                  },
                  "temperature_limit": {
                    "$ref": "#/$defs/temperature"
                  }
                },
                "additionalProperties": false,
                "type": "object"
              }
            ]
          },
          "viscoelastic_rupture": {
            "type": "object",
            "oneOf": [
              {
                "properties": {
                  "type": {
                    "enum": [
                      "powerlaw"
                    ]
                  },
                  "rq": {
                    "$ref": "#/$defs/length_over_time"
                  },
                  "Tq": {
                    "$ref": "#/$defs/energyReleaseRate"
                  },
                  "F": {
                    "$ref": "#/$defs/unitless"
                  },
                  "T0": {
                    "$ref": "#/$defs/energyReleaseRate"
                  },
                  "temp_coef": {
                    "$ref": "#/$defs/temperatureCoefficient"
                  },
                  "temp_ref": {
                    "$ref": "#/$defs/temperature"
                  }
                },
                "additionalProperties": false,
                "type": "object"
              },
              {
                "properties": {
                  "type": {
                    "enum": [
                      "tabular"
                    ]
                  },
                  "table": {
                    "description": "List of [T,dcdt] points. Units: ([energy_release_rate], [length]/[time]) e.g. (J/m^2, m/s), (kJ/m^2, mm/s), (in*lb/in^2, in/s)",
                    "type": "array",
                    "items": {
                      "type": "array",
                      "maxItems": 2,
                      "minItems": 2,
                      "prefixItems": [
                        {
                          "type": "number",
                          "minimum": 0.0
                        },
                        {
                          "type": "number",
                          "minimum": 0.0
                        }
                      ]
                    },
                    "minItems": 2
                  },
                  "temp_coef": {
                    "$ref": "#/$defs/temperatureCoefficient"
                  },
                  "temp_ref": {
                    "$ref": "#/$defs/temperature"
                  }
                },
                "additionalProperties": false,
                "type": "object"
              }
            ]
          },
          "ageing": {
            "type": "object",
            "oneOf": [
              {
                "properties": {
                  "type": {
                    "enum": [
                      "default"
                    ]
                  }
                },
                "additionalProperties": false,
                "type": "object"
              },
              {
                "properties": {
                  "type": {
                    "enum": [
                      "arrhenius"
                    ]
                  },
                  "activation_energy": {},
                  "temp_ref": {},
                  "gas_constant": {},
                  "absolute_zero": {},
                  "time": {
                    "type": "array",
                    "items": {
                      "type": "number",
                      "minimum": 0.0
                    }
                  },
                  "stiffness": {
                    "type": "array",
                    "items": {
                      "type": "number",
                      "minimum": 0.0
                    }
                  }
                },
                "additionalProperties": false,
                "type": "object"
              }
            ]
          },
          "cyclic_softening": {
            "type": "object",
            "oneOf": [
              {
                "properties": {
                  "type": {
                    "enum": [
                      "default"
                    ]
                  }
                },
                "additionalProperties": false,
                "type": "object"
              },
              {
                "properties": {
                  "type": {
                    "enum": [
                      "tabular"
                    ]
                  },
                  "table": {
                    "description": "List of [crack_ratio, stiffness_ratio] points",
                    "type": "array",
                    "items": {
                      "type": "array",
                      "maxItems": 2,
                      "minItems": 2,
                      "prefixItems": [
                        {
                          "type": "number",
                          "minimum": 0.0,
                          "maximum": 1.0
                        },
                        {
                          "type": "number",
                          "minimum": 0.0,
                          "maximum": 1.0
                        }
                      ]
                    }
                  }
                },
                "additionalProperties": false,
                "type": "object"
              }
            ]
          }
        },
        "required": [
          "name"
        ],
        "additionalProperties": false
      },
      "uniqueItems": true
    },
    "history": {
      "title": "History Section",
      "description": "History definitions.",
      "type": "object",
      "properties": {
        "options": {
          "$ref": "#/$defs/historyOptionsGlobal"
        },
        "length": {
          "description": "Specify the number of histories in the analysis",
          "type": "number",
          "multipleOf": 1
        },
        "histories": {
          "description": "An array of histories or a file path to an external input file containing an array of histories",
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "label": {
                    "type": "string"
                  },
                  "options": {
                    "$ref": "#/$defs/historyOptions"
                  },
                  "steps": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "label": {
                          "type": "string"
                        },
                        "options": {
                          "$ref": "#/$defs/historyOptionsStep"
                        },
                        "blocks": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "label": {
                                "type": "string"
                              },
                              "options": {
                                "$ref": "#/$defs/historyOptionsBlock"
                              },
                              "data": {
                                "type": "array",
                                "items": {
                                  "type": "array",
                                  "items": {
                                    "type": "number"
                                  }
                                }
                              }
                            },
                            "additionalProperties": false
                          }
                        }
                      },
                      "additionalProperties": false
                    }
                  }
                },
                "required": [
                  "label"
                ],
                "additionalProperties": false
              }
            }
          ]
        },
        "schedule": {
          "description": "A schedule definition of steps and blocks, where a block is defined by an external input file containing an array of histories",
          "type": "object",
          "properties": {
            "steps": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "label": {
                    "type": "string"
                  },
                  "options": {
                    "$ref": "#/$defs/historyOptionsStep"
                  },
                  "blocks": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "label": {
                          "type": "string"
                        },
                        "options": {
                          "$ref": "#/$defs/historyOptionsBlock"
                        },
                        "file": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "file"
                      ],
                      "additionalProperties": false
                    }
                  }
                },
                "required": [
                  "blocks"
                ],
                "additionalProperties": false
              }
            }
          },
          "required": [
            "steps"
          ],
          "additionalProperties": false
        }
      },
      "additionalProperties": false
    }
  },
  "$defs": {
    "historyOptionsBlock": {
      "type": "object",
      "properties": {
        "period": {
          "type": "number",
          "minimum": 0.0
        },
        "temperature": {
          "type": "number"
        },
        "ozone_concentration": {
          "type": "number"
        },
        "block_repeats": {
          "type": "number",
          "minimum": 0.0
        }
      },
      "additionalProperties": false
    },
    "historyOptionsStep": {
      "properties": {
        "step_repeats": {
          "type": "number",
          "minimum": 0.0
        },
        "period": {
          "type": "number",
          "minimum": 0.0
        },
        "temperature": {
          "type": "number"
        },
        "ozone_concentration": {
          "type": "number"
        },
        "block_repeats": {
          "type": "number",
          "minimum": 0.0
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "historyOptions": {
      "properties": {
        "type": {
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "ne",
              "le",
              "dg",
              "gls",
              "ne_plane_stress",
              "le_plane_stress",
              "gls_plane_stress",
              "dg_ss",
              "ne_eq",
              "ne_pl",
              "ne_si",
              "ne_vol",
              "le_eq",
              "le_pl",
              "le_si",
              "hydrostatic_stress",
              "temperature"
            ]
          },
          "uniqueItems": true
        },
        "material": {
          "type": "string"
        },
        "volume": {
          "type": "number",
          "exclusiveMinimum": 0.0
        },
        "preage_time": {
          "type": "number",
          "minimum": 0.0
        },
        "preage_temperature": {
          "type": "number"
        },
        "step_repeats": {
          "type": "number",
          "minimum": 0.0
        },
        "period": {
          "type": "number",
          "minimum": 0.0
        },
        "temperature": {
          "type": "number"
        },
        "ozone_concentration": {
          "type": "number"
        },
        "block_repeats": {
          "type": "number",
          "minimum": 0.0
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "historyOptionsGlobal": {
      "properties": {
        "rolling": {
          "type": "object",
          "properties": {
            "sectors": {
              "type": "number",
              "multipleOf": 1
            },
            "stride": {
              "type": "number",
              "multipleOf": 1
            }
          }
        },
        "type": {
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "ne",
              "le",
              "dg",
              "gls",
              "ne_plane_stress",
              "le_plane_stress",
              "gls_plane_stress",
              "dg_ss",
              "ne_eq",
              "ne_pl",
              "ne_si",
              "ne_vol",
              "le_eq",
              "le_pl",
              "le_si",
              "hydrostatic_stress",
              "temperature"
            ]
          },
          "uniqueItems": true
        },
        "material": {
          "type": "string"
        },
        "volume": {
          "type": "number",
          "exclusiveMinimum": 0.0
        },
        "preage_time": {
          "type": "number",
          "minimum": 0.0
        },
        "preage_temperature": {
          "type": "number"
        },
        "step_repeats": {
          "type": "number",
          "minimum": 0.0
        },
        "period": {
          "type": "number",
          "minimum": 0.0
        },
        "temperature": {
          "type": "number"
        },
        "ozone_concentration": {
          "type": "number"
        },
        "block_repeats": {
          "type": "number",
          "minimum": 0.0
        }
      },
      "additionalProperties": false,
      "type": "object"
    },
    "unitless": {
      "description": "Units: unitless"
    },
    "length": {
      "description": "Units: [length] e.g. m, mm, in"
    },
    "length_over_cycle": {
      "description": "Units: [length]/[cycle] e.g. m/cycle, mm/cycle, in/cycle"
    },
    "length_over_time": {
      "description": "Units: [length]/[time] e.g. m/s, mm/s, in/s"
    },
    "length_over_time_concentration": {
      "description": "Units: [length]/([time][concentration]) e.g. m/s/[concentration], mm/s/[concentration], in/s/[concentration]"
    },
    "pressure": {
      "description": "Units: [pressure] e.g. Pa, MPa, lbf/in^2"
    },
    "1_over_pressure": {
      "description": "Units: 1/[pressure] e.g. 1/Pa, 1/MPa, in^2/lbf"
    },
    "energyReleaseRate": {
      "description": "Units: [energy_release_rate] e.g. J/m^2, kJ/m^2, in*lb/in^2"
    },
    "temperature": {
      "description": "Units: [temperature] e.g. C, C, F"
    },
    "temperatureCoefficient": {
      "description": "Units: 1/[temperature] e.g. 1/C, 1/C, 1/F"
    },
    "hysteresis": {
      "description": "Units: [energy]/[volume]/[cycle] e.g. J/m^3/cycle, kJ/mm^3/cycle, in*lb/in^3/cycle"
    },
    "volumetric_heat_rate": {
      "description": "Units: [power]/[volume] e.g. W/m^3, mW/mm^3/cycle, lb/s/in^2"
    },
    "density": {
      "description": "Units: [density] e.g. kg/m^3, tonne/mm^3, slug/in^3"
    },
    "specific_heat": {
      "description": "Units: [specific_heat] e.g. J/kg/C, mJ/tonne/C, in*lb/slug/F"
    },
    "frequency": {
      "description": "Units: [1/time] e.g. 1/s, 1/s, 1/s"
    },
    "frequencyCoefficient": {
      "description": "Units: [time] e.g. s, s, s"
    }
  },
  "additionalProperties": false
}
