{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://catalog.lintel.tools/schemas/schemastore/fiqus/latest.json",
  "title": "FDM",
  "description": "Class for FiQuS",
  "x-lintel": {
    "source": "https://gitlab.cern.ch/steam/fiqus/-/raw/master/docs/schema.json",
    "sourceSha256": "57c3918f40f5d88cb06a5decf534a4a775ade7971cc6271f661828e84ffa0921",
    "fileMatch": [
      "*_fiqus.json",
      "*_fiqus.json5",
      "*_fiqus.yaml",
      "*_fiqus.yml",
      "*_FiQuS.json",
      "*_FiQuS.json5",
      "*_FiQuS.yaml",
      "*_FiQuS.yml"
    ],
    "parsers": [
      "json",
      "json5",
      "yaml"
    ]
  },
  "type": "object",
  "properties": {
    "general": {
      "$ref": "#/$defs/GeneralFiQuS",
      "default": {
        "magnet_name": null
      }
    },
    "run": {
      "$ref": "#/$defs/RunFiQuS",
      "default": {
        "type": "start_from_yaml",
        "geometry": null,
        "mesh": null,
        "solution": null,
        "launch_gui": false,
        "overwrite": false,
        "comments": "",
        "verbosity_Gmsh": 5,
        "verbosity_GetDP": 5,
        "verbosity_FiQuS": true
      }
    },
    "magnet": {
      "default": {
        "type": "multipole",
        "geometry": {
          "electromagnetics": {
            "areas": [],
            "create": true,
            "symmetry": "none",
            "with_wedges": true
          },
          "geom_file_path": null,
          "plot_preview": false,
          "thermal": {
            "areas": [],
            "correct_block_coil_tsa_checkered_scheme": false,
            "create": true,
            "use_TSA": false,
            "use_TSA_new": false,
            "with_wedges": true
          }
        },
        "mesh": {
          "electromagnetics": {
            "bore_field": {
              "DistMax": null,
              "DistMin": null,
              "SizeMax": null,
              "SizeMin": null,
              "enabled": false
            },
            "collar": {
              "DistMax": null,
              "DistMin": null,
              "Enforce_TSA_mapping": false,
              "SizeMax": null,
              "SizeMin": null,
              "enabled": false
            },
            "conductors": {
              "field": {
                "DistMax": null,
                "DistMin": null,
                "SizeMax": null,
                "SizeMin": null,
                "enabled": false
              },
              "transfinite": {
                "curve_target_size_height": 1.0,
                "curve_target_size_width": 1.0,
                "enabled_for": null
              }
            },
            "create": true,
            "iron_field": {
              "DistMax": null,
              "DistMin": null,
              "SizeMax": null,
              "SizeMin": null,
              "enabled": false
            },
            "poles": {
              "DistMax": null,
              "DistMin": null,
              "SizeMax": null,
              "SizeMin": null,
              "enabled": false
            },
            "wedges": {
              "field": {
                "DistMax": null,
                "DistMin": null,
                "SizeMax": null,
                "SizeMin": null,
                "enabled": false
              },
              "transfinite": {
                "curve_target_size_height": 1.0,
                "curve_target_size_width": 1.0,
                "enabled_for": null
              }
            }
          },
          "thermal": {
            "collar": {
              "DistMax": null,
              "DistMin": null,
              "Enforce_TSA_mapping": false,
              "SizeMax": null,
              "SizeMin": null,
              "enabled": false
            },
            "conductors": {
              "field": {
                "DistMax": null,
                "DistMin": null,
                "SizeMax": null,
                "SizeMin": null,
                "enabled": false
              },
              "transfinite": {
                "curve_target_size_height": 1.0,
                "curve_target_size_width": 1.0,
                "enabled_for": null
              }
            },
            "create": true,
            "insulation": {
              "TSA": {
                "global_size_COL": 0.0001,
                "global_size_QH": 0.0001,
                "minimum_discretizations": 1,
                "minimum_discretizations_COL": 1,
                "minimum_discretizations_QH": 1,
                "scale_factor_azimuthal": -1.0,
                "scale_factor_radial": -1.0
              },
              "global_size": 0.0001
            },
            "iron_field": {
              "DistMax": null,
              "DistMin": null,
              "SizeMax": null,
              "SizeMin": null,
              "enabled": false
            },
            "isothermal_conductors": false,
            "isothermal_wedges": false,
            "poles": {
              "DistMax": null,
              "DistMin": null,
              "SizeMax": null,
              "SizeMin": null,
              "enabled": false
            },
            "reference": {
              "DistMax": null,
              "DistMin": null,
              "SizeMax": null,
              "SizeMin": null,
              "enabled": false
            },
            "wedges": {
              "field": {
                "DistMax": null,
                "DistMin": null,
                "SizeMax": null,
                "SizeMin": null,
                "enabled": false
              },
              "transfinite": {
                "curve_target_size_height": 1.0,
                "curve_target_size_width": 1.0,
                "enabled_for": null
              }
            }
          }
        },
        "solve": {
          "cable_homogenization": {
            "enabled": false,
            "rohf": {
              "enabled": false,
              "gather_cell_systems": false,
              "parameter_csv_file": null
            },
            "rohm": {
              "enabled": false,
              "gather_cell_systems": false,
              "parameter_csv_file": null,
              "tau_scaling": 1.0,
              "weight_scaling": 1.0
            },
            "run_type": {
              "mode": "ramp",
              "ramp_file": null
            }
          },
          "coil_windings": {
            "conductor_to_group": [],
            "electrical_pairs": {
              "group_together": [],
              "overwrite_electrical_order": [],
              "reversed": []
            },
            "group_to_coil_section": [],
            "half_turn_length": [],
            "polarities_in_group": []
          },
          "collar": {
            "RRR": null,
            "T_ref_RRR_high": null,
            "material": null,
            "transient_effects_enabled": false
          },
          "electromagnetics": {
            "non_linear_solver": {
              "abs_tolerance": 0.1,
              "max_iterations": 20,
              "norm_type": "LinfNorm",
              "rel_tolerance": 0.0001,
              "relaxation_factor": 0.7
            },
            "solve_type": null,
            "time_stepping": {
              "T_sim": 1.9,
              "abs_tol_time": 0.0001,
              "breakpoints": [],
              "final_time": 0.0,
              "initial_time": 0.0,
              "initial_time_step": 1e-10,
              "integration_method": "Euler",
              "max_time_step": 10.0,
              "min_time_step": 1e-12,
              "norm_type": "LinfNorm",
              "rel_tol_time": 0.0001
            }
          },
          "iron_yoke": {
            "RRR": null,
            "T_ref_RRR_high": null,
            "material": null,
            "transient_effects_enabled": false
          },
          "noOfMPITasks": false,
          "poles": {
            "RRR": null,
            "T_ref_RRR_high": null,
            "material": null,
            "transient_effects_enabled": false
          },
          "thermal": {
            "He_cooling": {
              "enabled": false,
              "heat_transfer_coefficient": 0.0,
              "sides": "outer"
            },
            "collar_cooling": {
              "enabled": false,
              "heat_transfer_coefficient": "CFUN_hHe_T_THe",
              "move_cooling_holes": null,
              "ref_temperature": 0.0,
              "which": "all"
            },
            "enforce_init_temperature_as_minimum": false,
            "init_temperature": 1.9,
            "insulation_TSA": {
              "between_collar": {
                "material": null
              },
              "block_to_block": {
                "blocks_connection_overwrite": [],
                "material": null,
                "materials_overwrite": [],
                "thicknesses_overwrite": []
              },
              "exterior": {
                "blocks": [],
                "materials_append": [],
                "thicknesses_append": []
              }
            },
            "jc_degradation_to_zero": {
              "t_trigger": [],
              "turns": []
            },
            "non_linear_solver": {
              "abs_tolerance": 0.1,
              "max_iterations": 20,
              "norm_type": "LinfNorm",
              "rel_tolerance": 0.0001,
              "relaxation_factor": 0.7
            },
            "overwrite_boundary_conditions": {
              "cooling": {},
              "heat_flux": {},
              "temperature": {}
            },
            "solve_type": null,
            "time_stepping": {
              "abs_tol_time": 0.0001,
              "breakpoints": [],
              "final_time": 0.0,
              "initial_time": 0.0,
              "initial_time_step": 1e-10,
              "integration_method": "Euler",
              "max_time_step": 10.0,
              "min_time_step": 1e-12,
              "norm_type": "LinfNorm",
              "rel_tol_time": 0.0001,
              "stop_temperature": 300.0
            }
          },
          "time_stepping": {
            "abs_tol_time": [
              0.0001,
              0.0001
            ],
            "breakpoints": [],
            "final_time": 0.0,
            "initial_time": 0.0,
            "initial_time_step": 1e-10,
            "integration_method": "Euler",
            "max_time_step": 10.0,
            "min_time_step": 1e-12,
            "norm_type": [
              "LinfNorm",
              "LinfNorm"
            ],
            "rel_tol_time": [
              0.0001,
              0.0001
            ],
            "seq_NL": true,
            "stop_temperature": 300.0
          },
          "wedges": {
            "RRR": null,
            "T_ref_RRR_high": null,
            "material": null,
            "transient_effects_enabled": false
          }
        },
        "postproc": {
          "circuit_coupling": {
            "assemble_veusz": false,
            "variables_I": [],
            "variables_U": []
          },
          "electromagnetics": {
            "compare_to_ROXIE": null,
            "output_time_steps_pos": true,
            "output_time_steps_txt": true,
            "plot_all": false,
            "save_pos_at_the_end": true,
            "save_txt_at_the_end": false,
            "variables": [],
            "volumes": []
          },
          "thermal": {
            "output_time_steps_pos": true,
            "output_time_steps_txt": true,
            "plot_all": false,
            "save_pos_at_the_end": true,
            "save_txt_at_the_end": false,
            "take_average_conductor_temperature": true,
            "variables": [
              "T"
            ],
            "volumes": [
              "powered"
            ]
          }
        }
      },
      "discriminator": {
        "mapping": {
          "CACCC": "#/$defs/CACCC",
          "CACRutherford": "#/$defs/CACRutherford",
          "CACStrand": "#/$defs/CACStrand",
          "CCT_straight": "#/$defs/CCT",
          "HomogenizedConductor": "#/$defs/fiqus__data__DataFiQuSHomogenizedConductor__HomogenizedConductor",
          "Pancake3D": "#/$defs/Pancake3D",
          "multipole": "#/$defs/Multipole"
        },
        "propertyName": "type"
      },
      "oneOf": [
        {
          "$ref": "#/$defs/Multipole"
        },
        {
          "$ref": "#/$defs/CCT"
        },
        {
          "$ref": "#/$defs/Pancake3D"
        },
        {
          "$ref": "#/$defs/CACStrand"
        },
        {
          "$ref": "#/$defs/fiqus__data__DataFiQuSHomogenizedConductor__HomogenizedConductor"
        },
        {
          "$ref": "#/$defs/CACRutherford"
        },
        {
          "$ref": "#/$defs/CACCC"
        }
      ],
      "title": "Magnet"
    },
    "circuit": {
      "$ref": "#/$defs/Circuit_Class",
      "default": {
        "field_circuit": false,
        "R_circuit": null,
        "L_circuit": null,
        "R_parallel": null
      }
    },
    "power_supply": {
      "$ref": "#/$defs/PowerSupplyClass",
      "default": {
        "I_initial": null,
        "t_off": null,
        "t_control_LUT": [],
        "I_control_LUT": [],
        "R_crowbar": 0.0,
        "L_crowbar": 0.0,
        "Ud_crowbar": 0.0,
        "R_c_r": 0.0,
        "L_c_r": 0.0,
        "Ud_c_r": 0.0,
        "R_1": 0.0,
        "L_1": 0.0,
        "R_2": 0.0,
        "L_2": 0.0,
        "C": 0.0,
        "R_3": 0.0,
        "L_3": 0.0
      }
    },
    "quench_protection": {
      "$ref": "#/$defs/QuenchProtection",
      "default": {
        "energy_extraction": {
          "C": 0.0,
          "C_n": 0.0,
          "L": 0.0,
          "L_c": 0.0,
          "L_c_n": 0.0,
          "L_n": 0.0,
          "L_s": 0.0,
          "L_s_n": 0.0,
          "R_EE": 0.0,
          "R_EE_n": 0.0,
          "R_c": 0.0,
          "R_c_n": 0.0,
          "R_s": 0.0,
          "R_s_n": 0.0,
          "Ud_snubber": 0.0,
          "Ud_snubber_n": 0.0,
          "Ud_switch": 0.0,
          "Ud_switch_n": 0.0,
          "power_R_EE": 0.0,
          "power_R_EE_n": 0.0,
          "t_trigger": 99999.0,
          "t_trigger_n": 99999.0
        },
        "quench_heaters": {
          "C": [],
          "L_QH_offset": [],
          "NZPV_multiplier": 1.0,
          "N_strips": null,
          "R_warm": [],
          "U0": [],
          "f_cover": [],
          "h": [],
          "iQH_toHalfTurn_From": [],
          "iQH_toHalfTurn_To": [],
          "l": [],
          "l_copper": [],
          "l_stainless_steel": [],
          "quench_prop_model": "Ts",
          "quench_propagation": "full",
          "s_ins": [],
          "s_ins_He": [],
          "t_trigger": [],
          "turns_sides": [],
          "type_ins": [],
          "type_ins_He": [],
          "w": []
        },
        "cliq": {
          "C": 0.0,
          "I0": null,
          "L": 0.0,
          "N_units": null,
          "R": 0.0,
          "U0": 0.0,
          "current_direction": [],
          "sym_factor": null,
          "t_trigger": 99999.0
        },
        "esc": {
          "C": [],
          "L": [],
          "L_Diode": [],
          "R_leads": [],
          "R_unit": [],
          "U0": [],
          "Ud_Diode": [],
          "t_trigger": []
        },
        "e_cliq": {
          "L_ecliq_offset": [],
          "L_leads": null,
          "NZPV_multiplier": 1.0,
          "N_units": [],
          "R_leads": null,
          "h_ecliq": [],
          "iECLIQ_toHalfTurn_From": [],
          "iECLIQ_toHalfTurn_To": [],
          "l_ecliq": [],
          "piecewise": {
            "csv_file": null,
            "current_multiplier": null,
            "currents": null,
            "time_multiplier": null,
            "times": null
          },
          "quench_prop_model": "Ts",
          "quench_propagation": "full",
          "sine": {
            "current_amplitude": null,
            "frequency": null,
            "number_of_periods": null,
            "number_of_turns": null
          },
          "source_type": null,
          "t_trigger": []
        }
      }
    },
    "quench_detection": {
      "$ref": "#/$defs/QuenchDetection",
      "default": {
        "voltage_thresholds": null,
        "discrimination_times": null,
        "voltage_tap_pairs": null
      }
    },
    "conductors": {
      "type": "object",
      "default": {},
      "title": "Conductors",
      "additionalProperties": {
        "$ref": "#/$defs/Conductor"
      }
    }
  },
  "$defs": {
    "Air_g": {
      "description": "Level 2: Class for FiQuS CCT",
      "properties": {
        "name": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Name"
        },
        "sh_type": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Sh Type"
        },
        "ar": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Ar"
        },
        "z_min": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Z Min"
        },
        "z_max": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Z Max"
        }
      },
      "title": "Air_g",
      "type": "object"
    },
    "Air_s": {
      "description": "Level 2: Class for FiQuS CCT",
      "properties": {
        "sigma": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Sigma"
        },
        "mu_r": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Mu R"
        }
      },
      "title": "Air_s",
      "type": "object"
    },
    "BSCCO_2212_LBNL": {
      "description": "Level 3: Class for cable Bi-2212 fit developed in LBNL",
      "properties": {
        "type": {
          "const": "BSCCO_2212_LBNL",
          "title": "Type",
          "type": "string"
        },
        "f_scaling_Jc_BSCCO2212": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "F Scaling Jc Bscco2212"
        }
      },
      "required": [
        "type"
      ],
      "title": "BSCCO_2212_LBNL",
      "type": "object"
    },
    "Bordini": {
      "description": "Level 3: Class for cable Bordini's Nb3Sn fit",
      "properties": {
        "type": {
          "const": "Bordini",
          "title": "Type",
          "type": "string"
        },
        "Tc0_Bordini": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Tc0 Bordini"
        },
        "Bc20_Bordini": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Bc20 Bordini"
        },
        "C0_Bordini": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "C0 Bordini"
        },
        "alpha_Bordini": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Alpha Bordini"
        }
      },
      "required": [
        "type"
      ],
      "title": "Bordini",
      "type": "object"
    },
    "Bottura": {
      "description": "Level 3: Class for setting Bottura fit",
      "properties": {
        "type": {
          "const": "Bottura",
          "title": "Type",
          "type": "string"
        },
        "Tc0_Bottura": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Tc0 Bottura"
        },
        "Bc20_Bottura": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Bc20 Bottura"
        },
        "Jc_ref_Bottura": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Jc Ref Bottura"
        },
        "C0_Bottura": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "C0 Bottura"
        },
        "alpha_Bottura": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Alpha Bottura"
        },
        "beta_Bottura": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Beta Bottura"
        },
        "gamma_Bottura": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Gamma Bottura"
        }
      },
      "required": [
        "type"
      ],
      "title": "Bottura",
      "type": "object"
    },
    "CACCC": {
      "description": "Level 1: Class for FiQuS CACCC",
      "properties": {
        "type": {
          "const": "CACCC",
          "title": "Type",
          "type": "string"
        },
        "geometry": {
          "$ref": "#/$defs/CACCCGeometry",
          "default": {
            "air_radius": null
          }
        },
        "mesh": {
          "$ref": "#/$defs/CACCCMesh",
          "default": {
            "HTS_n_elem_width": null,
            "HTS_n_elem_thickness": null,
            "substrate_elem_scale": null,
            "substrate_side_progression": null,
            "silver_elem_scale": null,
            "copper_elem_scale": null,
            "air_boundary_mesh_size_ratio": null,
            "scaling_global": null,
            "bump_coef": null
          }
        },
        "solve": {
          "$ref": "#/$defs/CACCCSolve",
          "default": {
            "pro_template": "CAC_CC_template.pro",
            "conductor_name": null,
            "general_parameters": {
              "noOfMPITasks": false,
              "temperature": 1.9
            },
            "initial_conditions": {
              "init_type": "virgin",
              "solution_to_init_from": null
            },
            "source_parameters": {
              "field_angle_with_respect_to_normal_direction": null,
              "piecewise": {
                "applied_field_multiplier": null,
                "applied_fields_relative": null,
                "source_csv_file": null,
                "time_multiplier": null,
                "times": null,
                "transport_current_multiplier": null,
                "transport_currents_relative": null
              },
              "sine": {
                "current_amplitude": null,
                "field_amplitude": null,
                "frequency": null
              },
              "source_type": "sine"
            },
            "numerical_parameters": {
              "piecewise": {
                "force_stepping_at_times_piecewise_linear": false,
                "max_timestep_piecewise_linear": null,
                "time_to_simulate": null,
                "times_max_timestep_piecewise_linear": null,
                "timesteps_per_time_to_simulate": null,
                "variable_max_timestep": false
              },
              "relative_tolerance": 1e-6,
              "relaxation_factors": true,
              "sine": {
                "number_of_periods_to_simulate": null,
                "timesteps_per_period": null
              },
              "voltage_per_meter_stopping_criterion": null
            }
          }
        },
        "postproc": {
          "$ref": "#/$defs/CACCCPostproc",
          "default": {
            "pos_files": {
              "quantities": [],
              "regions": []
            },
            "cleanup": {
              "remove_msh_file": false,
              "remove_pre_file": false,
              "remove_res_file": false
            }
          }
        }
      },
      "required": [
        "type"
      ],
      "title": "CACCC",
      "type": "object"
    },
    "CACCCGeneralparameters": {
      "description": "Level 3: Class for general parameters",
      "properties": {
        "temperature": {
          "default": 1.9,
          "description": "Temperature (K).",
          "title": "Temperature",
          "type": "number"
        },
        "noOfMPITasks": {
          "oneOf": [
            {
              "type": "boolean"
            },
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": false,
          "description": "If integer, GetDP will be run in parallel using MPI. This is only valid if MPI is installed on the system and an MPI-enabled GetDP is used. If False, GetDP will be run in serial without invoking mpiexec.",
          "title": "No. of tasks for MPI parallel run of GetDP"
        }
      },
      "title": "CACCCGeneralparameters",
      "type": "object"
    },
    "CACCCGeometry": {
      "description": "Level 2: Geometry for CACCC.",
      "properties": {
        "air_radius": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Radius of air region.",
          "title": "Air Radius"
        }
      },
      "title": "CACCCGeometry",
      "type": "object"
    },
    "CACCCMesh": {
      "description": "Level 2: Mesh parameters for CACCC.",
      "properties": {
        "HTS_n_elem_width": {
          "oneOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Number of elements along HTS width (x-direction).",
          "title": "Hts N Elem Width"
        },
        "HTS_n_elem_thickness": {
          "oneOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Number of elements through HTS thickness (y-direction).",
          "title": "Hts N Elem Thickness"
        },
        "substrate_elem_scale": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Element-count scale factor for substrate layer.",
          "title": "Substrate Elem Scale"
        },
        "substrate_side_progression": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Progression factor for substrate vertical sides near the HTS side.",
          "title": "Substrate Side Progression"
        },
        "silver_elem_scale": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Element-count scale factor for silver layers.",
          "title": "Silver Elem Scale"
        },
        "copper_elem_scale": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Element-count scale factor for copper layers.",
          "title": "Copper Elem Scale"
        },
        "air_boundary_mesh_size_ratio": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Ratio of air outer-boundary mesh size to the HTS base size.",
          "title": "Air Boundary Mesh Size Ratio"
        },
        "scaling_global": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Global refinement factor.",
          "title": "Scaling Global"
        },
        "bump_coef": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Unified bump coefficient for transfinite horizontal edges. Used for both HTS and SilverTop when applying 'Bump' distributions. Values < 1 cluster nodes toward the edges; values > 1 cluster toward the center.",
          "title": "Bump Coef"
        }
      },
      "title": "CACCCMesh",
      "type": "object"
    },
    "CACCCPostproc": {
      "description": "Post-processing options for CACCC",
      "properties": {
        "pos_files": {
          "$ref": "#/$defs/CACCCPostprocPosFiles",
          "default": {
            "quantities": [],
            "regions": []
          },
          "description": "Entries controlling output of .pos files.If None or empty lists are given, no .pos files are written.Note that not all combinations of quantities and regions make sense."
        },
        "cleanup": {
          "$ref": "#/$defs/CWSStrandPostprocCleanup",
          "default": {
            "remove_pre_file": false,
            "remove_res_file": false,
            "remove_msh_file": false
          }
        }
      },
      "title": "CACCCPostproc",
      "type": "object"
    },
    "CACCCPostprocPosFiles": {
      "description": "Level 3: Class for post-pro .pos file requests",
      "properties": {
        "quantities": {
          "oneOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "List of GetDP postprocessing quantities to write to .pos file. Examples of valid entry is: phi, h, b, j, jz, power",
          "title": "Quantities"
        },
        "regions": {
          "oneOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "List of GetDP regions to write to .pos file postprocessing for. Examples of a valid entry is: Matrix, Filaments, Omega (full domain), OmegaC (conducting domain), OmegaCC (non conducting domain)",
          "title": "Regions"
        }
      },
      "title": "CACCCPostprocPosFiles",
      "type": "object"
    },
    "CACCCSolve": {
      "description": "Level 2: Solve block for CACCC",
      "properties": {
        "pro_template": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": "CAC_CC_template.pro",
          "description": "Name of the .pro template file.",
          "title": "Pro Template"
        },
        "conductor_name": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Name of the conductor. Must match a conductor name in the conductors section of the input YAML-file.",
          "title": "Conductor Name"
        },
        "general_parameters": {
          "$ref": "#/$defs/CACCCGeneralparameters",
          "default": {
            "temperature": 1.9,
            "noOfMPITasks": false
          }
        },
        "initial_conditions": {
          "$ref": "#/$defs/CACCCSolveInitialconditions",
          "default": {
            "init_type": "virgin",
            "solution_to_init_from": null
          }
        },
        "source_parameters": {
          "$ref": "#/$defs/CACCCSolveSourceparameters",
          "default": {
            "source_type": "sine",
            "sine": {
              "current_amplitude": null,
              "field_amplitude": null,
              "frequency": null
            },
            "piecewise": {
              "applied_field_multiplier": null,
              "applied_fields_relative": null,
              "source_csv_file": null,
              "time_multiplier": null,
              "times": null,
              "transport_current_multiplier": null,
              "transport_currents_relative": null
            },
            "field_angle_with_respect_to_normal_direction": null
          }
        },
        "numerical_parameters": {
          "$ref": "#/$defs/CACCCSolveNumericalparameters",
          "default": {
            "relative_tolerance": 1e-6,
            "voltage_per_meter_stopping_criterion": null,
            "relaxation_factors": true,
            "sine": {
              "number_of_periods_to_simulate": null,
              "timesteps_per_period": null
            },
            "piecewise": {
              "force_stepping_at_times_piecewise_linear": false,
              "max_timestep_piecewise_linear": null,
              "time_to_simulate": null,
              "times_max_timestep_piecewise_linear": null,
              "timesteps_per_time_to_simulate": null,
              "variable_max_timestep": false
            }
          }
        }
      },
      "title": "CACCCSolve",
      "type": "object"
    },
    "CACCCSolveInitialconditions": {
      "description": "Level 3: Class for initial conditions",
      "properties": {
        "init_type": {
          "oneOf": [
            {
              "enum": [
                "virgin",
                "pos_file",
                "uniform_field"
              ],
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": "virgin",
          "description": "Type of initialization for the simulation. (i) 'virgin' is the default type, the initial magnetic field is zero,(ii) 'pos_file' is to initialize from the solution of another solution, given by the solution_to_init_from entry, and (iii) 'uniform_field' is to initialize at a uniform field, which will be the applied field at the initial time of the simulation. Note that the uniform_field option does not allow any non-zero transport current (initialization from pos_file is needed for this).",
          "title": "Init Type"
        },
        "solution_to_init_from": {
          "oneOf": [
            {
              "type": "integer"
            },
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Name xxx of the solution from which the simulation should be initialized. The file last_magnetic_field.pos of folder Solution_xxx will be used for the initial solution.It must be in the Geometry_.../Mesh_.../ folder in which the Solution_xxx will be saved.",
          "title": "Solution To Init From"
        }
      },
      "title": "CACCCSolveInitialconditions",
      "type": "object"
    },
    "CACCCSolveNumericalparameters": {
      "description": "Level 3: Class for numerical parameters",
      "properties": {
        "relative_tolerance": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 1e-6,
          "description": "Tolerance on the relative change of the power indicator for the convergence criterion (1e-6 is usually a safe choice).",
          "title": "Relative Tolerance"
        },
        "voltage_per_meter_stopping_criterion": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "If a non-zero value is given, the simulation will stop if the transport voltage per meter reaches this value (in absolute value).",
          "title": "Voltage Per Meter Stopping Criterion"
        },
        "relaxation_factors": {
          "oneOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": true,
          "description": "Use of relaxation factors to help convergence (automatic selection based on the lowest residual).",
          "title": "Relaxation Factors"
        },
        "sine": {
          "$ref": "#/$defs/CACCCSolveNumericalparametersSine",
          "default": {
            "timesteps_per_period": null,
            "number_of_periods_to_simulate": null
          }
        },
        "piecewise": {
          "$ref": "#/$defs/CACCCSolveNumericalparametersPiecewise",
          "default": {
            "time_to_simulate": null,
            "timesteps_per_time_to_simulate": null,
            "force_stepping_at_times_piecewise_linear": false,
            "variable_max_timestep": false,
            "times_max_timestep_piecewise_linear": null,
            "max_timestep_piecewise_linear": null
          }
        }
      },
      "title": "CACCCSolveNumericalparameters",
      "type": "object"
    },
    "CACCCSolveNumericalparametersPiecewise": {
      "description": "Level 4: Numerical parameters corresponding to the piecewise source",
      "properties": {
        "time_to_simulate": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Total time to simulate (s). Used for the piecewise source.",
          "title": "Time To Simulate"
        },
        "timesteps_per_time_to_simulate": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "If variable_max_timestep is False. Number of time steps (-) per period for the piecewise source.",
          "title": "Timesteps Per Time To Simulate"
        },
        "force_stepping_at_times_piecewise_linear": {
          "default": false,
          "description": "If True, time-stepping will contain exactly the time instants that are inthe times_source_piecewise_linear list (to avoid truncation maximum applied field/current values).",
          "title": "Force Stepping At Times Piecewise Linear",
          "type": "boolean"
        },
        "variable_max_timestep": {
          "default": false,
          "description": "If False, the maximum time step is kept constant through the simulation. If True, it varies according to the piecewise definition.",
          "title": "Variable Max Timestep",
          "type": "boolean"
        },
        "times_max_timestep_piecewise_linear": {
          "oneOf": [
            {
              "items": {
                "type": "number"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Time instants (s) defining the piecewise linear maximum time step.",
          "title": "Times Max Timestep Piecewise Linear"
        },
        "max_timestep_piecewise_linear": {
          "oneOf": [
            {
              "items": {
                "type": "number"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Maximum time steps (s) at the times_max_timestep_piecewise_linear. Above the limits, linear extrapolation of the last two values.",
          "title": "Max Timestep Piecewise Linear"
        }
      },
      "title": "CACCCSolveNumericalparametersPiecewise",
      "type": "object"
    },
    "CACCCSolveNumericalparametersSine": {
      "description": "Level 4: Numerical parameters corresponding to the sine source",
      "properties": {
        "timesteps_per_period": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Initial value for number of time steps (-) per period for the sine source.Determines the initial time step size.",
          "title": "Timesteps Per Period"
        },
        "number_of_periods_to_simulate": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Number of periods (-) to simulate for the sine source.",
          "title": "Number Of Periods To Simulate"
        }
      },
      "title": "CACCCSolveNumericalparametersSine",
      "type": "object"
    },
    "CACCCSolveSourceparameters": {
      "description": "Level 3: Class for material properties",
      "properties": {
        "source_type": {
          "default": "sine",
          "description": "Time evolution of applied current and magnetic field. Supported options are: sine, piecewise.",
          "enum": [
            "sine",
            "piecewise"
          ],
          "title": "Source Type",
          "type": "string"
        },
        "sine": {
          "$ref": "#/$defs/CACCCSolveSourceparametersSine",
          "default": {
            "frequency": null,
            "field_amplitude": null,
            "current_amplitude": null
          }
        },
        "piecewise": {
          "$ref": "#/$defs/CACCCSolveSourceparametersPiecewise",
          "default": {
            "source_csv_file": null,
            "times": null,
            "applied_fields_relative": null,
            "transport_currents_relative": null,
            "time_multiplier": null,
            "applied_field_multiplier": null,
            "transport_current_multiplier": null
          }
        },
        "field_angle_with_respect_to_normal_direction": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Angle of the source magnetic field with respect to the y-axis (normal to the tape) (degrees).",
          "title": "Field Angle With Respect To Normal Direction"
        }
      },
      "title": "CACCCSolveSourceparameters",
      "type": "object"
    },
    "CACCCSolveSourceparametersPiecewise": {
      "description": "Level 4: Class for piecewise (linear) source parameters",
      "properties": {
        "source_csv_file": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "File name for the from_file source type defining the time evolution of current and field (in-phase).Multipliers are used for each of them.The file should contain two columns: 'time' (s) and 'value' (field/current (T/A)), with these headers.If this field is set, times, applied_fields_relative and transport_currents_relative are ignored.",
          "title": "Source Csv File"
        },
        "times": {
          "oneOf": [
            {
              "items": {
                "type": "number"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Time instants (s) defining the piecewise linear sources.Used only if source_csv_file is not set.Can be scaled by time_multiplier.",
          "title": "Times"
        },
        "applied_fields_relative": {
          "oneOf": [
            {
              "items": {
                "type": "number"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Applied fields relative to multiplier applied_field_multiplier at the time instants 'times'.Used only if source_csv_file is not set.",
          "title": "Applied Fields Relative"
        },
        "transport_currents_relative": {
          "oneOf": [
            {
              "items": {
                "type": "number"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Transport currents relative to multiplier transport_current_multiplier at the time instants 'times'.Used only if source_csv_file is not set.",
          "title": "Transport Currents Relative"
        },
        "time_multiplier": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Multiplier for the time values in times (scales the time values).Also used for the time values in the source_csv_file.",
          "title": "Time Multiplier"
        },
        "applied_field_multiplier": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Multiplier for the applied fields in applied_fields_relative.Also used for the values in the source_csv_file.",
          "title": "Applied Field Multiplier"
        },
        "transport_current_multiplier": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Multiplier for the transport currents in transport_currents_relative.Also used for the values in the source_csv_file.",
          "title": "Transport Current Multiplier"
        }
      },
      "title": "CACCCSolveSourceparametersPiecewise",
      "type": "object"
    },
    "CACCCSolveSourceparametersSine": {
      "description": "Level 4: Class for Sine source parameters",
      "properties": {
        "frequency": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Frequency of the sine source (Hz).",
          "title": "Frequency"
        },
        "field_amplitude": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Amplitude of the sine field (T).",
          "title": "Field Amplitude"
        },
        "current_amplitude": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Amplitude of the sine current (A).",
          "title": "Current Amplitude"
        }
      },
      "title": "CACCCSolveSourceparametersSine",
      "type": "object"
    },
    "CACRutherford": {
      "description": "Level 1: Class for FiQuS ConductorAC",
      "properties": {
        "type": {
          "const": "CACRutherford",
          "title": "Type",
          "type": "string"
        },
        "geometry": {
          "$ref": "#/$defs/CACRutherfordGeometry",
          "default": {
            "io_settings": {
              "load": {
                "filename": null,
                "load_from_yaml": null
              },
              "save": {
                "filename": null,
                "save_to_yaml": null
              }
            },
            "point_snap_tolerance_relative_to_strand_diameter": null,
            "min_roundness_factor": null,
            "air_radius": null,
            "coating_corner_arc_radius": 0.0,
            "coating_thickness": 0.0,
            "keep_strand_area": true,
            "excitation_coils": {
              "centers": null,
              "heights": null,
              "widths": null
            }
          }
        },
        "mesh": {
          "$ref": "#/$defs/CACRutherfordMesh",
          "default": {
            "scaling_global": 1.0,
            "strand_mesh_size_ratio": 1.0,
            "coating_mesh_size_ratio": 1.0,
            "air_boundary_mesh_size_ratio": 1.0
          }
        },
        "solve": {
          "$ref": "#/$defs/CACRutherfordSolve",
          "default": {
            "pro_template": null,
            "conductor_name": null,
            "formulation_parameters": {
              "rohf": true,
              "rohm": true,
              "stranded_strands": true
            },
            "general_parameters": {
              "adjacent_coupling_resistance": 1e-6,
              "crossing_coupling_resistance": 1e-6,
              "matrix_resistance": 0.0006536208,
              "noOfMPITasks": false,
              "rho_coating": 1e-7,
              "rho_strands": 1e-12,
              "superconductor_Ic": 350.0,
              "superconductor_n_value": 30.0,
              "temperature": 1.9
            },
            "initial_conditions": {
              "init_from_pos_file": false,
              "pos_file_to_init_from": null
            },
            "frequency_domain_solver": {
              "enable": false,
              "frequency_sweep": {
                "end_frequency": 100.0,
                "number_of_frequencies": 10,
                "run_sweep": false,
                "start_frequency": 1.0
              }
            },
            "source_parameters": {
              "boundary_condition_type": "Natural",
              "excitation_coils": {
                "enable": false,
                "source_csv_file": null
              },
              "parallel_resistor": false,
              "piecewise": {
                "applied_field_multiplier": null,
                "applied_fields_relative": null,
                "field_angle": 90.0,
                "source_csv_file": null,
                "time_multiplier": null,
                "times": null,
                "transport_current_multiplier": null,
                "transport_currents_relative": null
              },
              "sine": {
                "current_amplitude": null,
                "field_amplitude": null,
                "field_angle": 90.0,
                "frequency": null,
                "superimposed_DC": {
                  "current_magnitude": 0.0,
                  "field_magnitude": 0.0
                }
              },
              "source_type": "sine"
            },
            "numerical_parameters": {
              "piecewise": {
                "force_stepping_at_times_piecewise_linear": false,
                "max_timestep_piecewise_linear": null,
                "time_to_simulate": null,
                "times_max_timestep_piecewise_linear": null,
                "timesteps_per_time_to_simulate": null,
                "variable_max_timestep": false
              },
              "sine": {
                "number_of_periods_to_simulate": null,
                "timesteps_per_period": null
              }
            }
          }
        },
        "postproc": {
          "$ref": "#/$defs/CACRutherfordPostproc",
          "default": {
            "generate_pos_files": true,
            "plot_instantaneous_power": {
              "save": false,
              "save_file_name": "instantaneous_power",
              "show": false,
              "title": "Instantaneous Power"
            },
            "compute_current_per_filament": false,
            "save_last_current_density": null,
            "save_last_magnetic_field": null,
            "cleanup": {
              "remove_msh_file": false,
              "remove_pre_file": false,
              "remove_res_file": false
            },
            "batch_postproc": {
              "filter": {
                "apply_filter": false,
                "filter_criterion": null
              },
              "loss_map": {
                "cross_section": {
                  "axis_to_cut": "x",
                  "cut_value": 0.0,
                  "filename": "cross_section",
                  "plot_cross_section": false,
                  "save_plot": false,
                  "title": null,
                  "ylabel": "Loss"
                },
                "cross_section_sweep": {
                  "animate_cross_section_sweep": false,
                  "axis_to_sweep": "x",
                  "filename": "crossSectionSweep",
                  "save_plot": false,
                  "title": null,
                  "ylabel": "Loss"
                },
                "filename": "loss_map",
                "loss_log": true,
                "loss_norm": 1.0,
                "loss_type": "TotalLoss",
                "produce_loss_map": false,
                "save_plot": false,
                "show_datapoints": true,
                "show_loss_type_dominance_contour": false,
                "title": null,
                "x_log": true,
                "x_norm": 1.0,
                "x_steps": 20,
                "x_val": null,
                "xlabel": null,
                "y_log": true,
                "y_norm": 1.0,
                "y_steps": 20,
                "y_val": null,
                "ylabel": null
              },
              "output_folder": null,
              "plot2d": {
                "combined_plot": false,
                "filename": "plot2d",
                "labels": null,
                "legend": true,
                "linestyle": null,
                "produce_plot2d": false,
                "save_plot": false,
                "title": null,
                "x_log": false,
                "x_val": null,
                "xlabel": null,
                "y_log": false,
                "y_vals": null,
                "ylabel": null
              },
              "postProc_csv": null,
              "sort": {
                "apply_sort": false,
                "sort_key": null
              }
            }
          }
        }
      },
      "required": [
        "type"
      ],
      "title": "CACRutherford",
      "type": "object"
    },
    "CACRutherfordExcitationCoils": {
      "description": "Level 3: Class for Input/Output settings for the cable geometry",
      "properties": {
        "centers": {
          "oneOf": [
            {
              "items": {
                "items": {
                  "type": "number"
                },
                "type": "array"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "List of center points for the centers of the excitations coil regions. Each center point is a list of three elements for x, y, and z (=0) coordinates.",
          "title": "Centers"
        },
        "widths": {
          "oneOf": [
            {
              "items": {
                "type": "number"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "List of widths of the excitation coil regions.",
          "title": "Widths"
        },
        "heights": {
          "oneOf": [
            {
              "items": {
                "type": "number"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "List of heights of the excitation coil regions.",
          "title": "Heights"
        }
      },
      "title": "CACRutherfordExcitationCoils",
      "type": "object"
    },
    "CACRutherfordGeometry": {
      "description": "Level 2: Class for cable geometry parameters",
      "properties": {
        "io_settings": {
          "$ref": "#/$defs/CACRutherfordIOsettings",
          "default": {
            "load": {
              "filename": null,
              "load_from_yaml": null
            },
            "save": {
              "filename": null,
              "save_to_yaml": null
            }
          }
        },
        "point_snap_tolerance_relative_to_strand_diameter": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The maximum distance between two points, relative to the strand diameter, where the points are considered equal (i.e. they 'snap' together).",
          "title": "Point Snap Tolerance Relative To Strand Diameter"
        },
        "min_roundness_factor": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Minimum roundness is the ratio between the min -and max radius for the corner circle-arcs.",
          "title": "Min Roundness Factor"
        },
        "air_radius": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Radius of the air region (m).",
          "title": "Air Radius"
        },
        "coating_corner_arc_radius": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 0,
          "description": "Radius of the corner arcs of the coating (m).",
          "title": "Coating Corner Arc Radius"
        },
        "coating_thickness": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 0,
          "description": "Thickness of the coating (m).",
          "title": "Coating Thickness"
        },
        "keep_strand_area": {
          "oneOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": true,
          "description": "If True, the area of the strands are determined by the area of the strand described in 'conductors'. If False, the area of the strands are determined based on the cable geometry inputs.",
          "title": "Keep Strand Area"
        },
        "excitation_coils": {
          "$ref": "#/$defs/CACRutherfordExcitationCoils",
          "default": {
            "centers": null,
            "widths": null,
            "heights": null
          }
        }
      },
      "title": "CACRutherfordGeometry",
      "type": "object"
    },
    "CACRutherfordIOsettings": {
      "description": "Level 3: Class for Input/Output settings for the cable geometry",
      "properties": {
        "load": {
          "$ref": "#/$defs/CACRutherfordIOsettingsLoad",
          "default": {
            "load_from_yaml": null,
            "filename": null
          }
        },
        "save": {
          "$ref": "#/$defs/CACRutherfordIOsettingsSave",
          "default": {
            "save_to_yaml": null,
            "filename": null
          }
        }
      },
      "title": "CACRutherfordIOsettings",
      "type": "object"
    },
    "CACRutherfordIOsettingsLoad": {
      "description": "Level 3: Class for Input/Output settings for the cable geometry",
      "properties": {
        "load_from_yaml": {
          "oneOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "True to load cable geometry from yaml-file, false to create the geometry.",
          "title": "Load From Yaml"
        },
        "filename": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Name of the file from which to load the cable geometry.",
          "title": "Filename"
        }
      },
      "title": "CACRutherfordIOsettingsLoad",
      "type": "object"
    },
    "CACRutherfordIOsettingsSave": {
      "description": "Level 3: Class for Input/Output settings for the cable geometry",
      "properties": {
        "save_to_yaml": {
          "oneOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "True to save cable geometry to yaml-file, false to not save the geometry.",
          "title": "Save To Yaml"
        },
        "filename": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Name of the file to which to save the cable geometry.",
          "title": "Filename"
        }
      },
      "title": "CACRutherfordIOsettingsSave",
      "type": "object"
    },
    "CACRutherfordMesh": {
      "description": "Level 2: Class for FiQuS ConductorAC",
      "properties": {
        "scaling_global": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 1,
          "description": "Global scaling factor for mesh size.",
          "title": "Scaling Global"
        },
        "strand_mesh_size_ratio": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 1,
          "description": "Mesh size ratio for the strand, relative to the strand diameter.",
          "title": "Strand Mesh Size Ratio"
        },
        "coating_mesh_size_ratio": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 1,
          "description": "Mesh size ratio for the coating, relative to the strand diameter.",
          "title": "Coating Mesh Size Ratio"
        },
        "air_boundary_mesh_size_ratio": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 1,
          "description": "Mesh size ratio for the air boundary, relative to the strand diameter.",
          "title": "Air Boundary Mesh Size Ratio"
        }
      },
      "title": "CACRutherfordMesh",
      "type": "object"
    },
    "CACRutherfordPostproc": {
      "description": "Level 2: Class for FiQuS ConductorAC",
      "properties": {
        "generate_pos_files": {
          "default": true,
          "description": "Set True to generate .pos-files during post-processing",
          "title": "Generate Pos Files",
          "type": "boolean"
        },
        "plot_instantaneous_power": {
          "$ref": "#/$defs/CACRutherfordPostprocPlotInstPower",
          "default": {
            "show": false,
            "title": "Instantaneous Power",
            "save": false,
            "save_file_name": "instantaneous_power"
          }
        },
        "compute_current_per_filament": {
          "default": false,
          "description": "Computes current in every filament, with decomposition into magnetization and transport current.",
          "title": "Compute Current Per Filament",
          "type": "boolean"
        },
        "save_last_current_density": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Saves the last current density field solution (out-of-plane) in the file given as a string. The '.pos' extension will be appended to it. Nothing is done if None. This can be for using the current density as an initial condition (but not implemented yet).",
          "title": "Save Last Current Density"
        },
        "save_last_magnetic_field": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Saves the last magnetic field solution (in-plane) in the file given as a string. The '.pos' extension will be appended to it. Nothing is done if None. This is for using the magnetic field as an initial condition for another resolution.",
          "title": "Save Last Magnetic Field"
        },
        "cleanup": {
          "$ref": "#/$defs/CACRutherfordPostprocCleanup",
          "default": {
            "remove_pre_file": false,
            "remove_res_file": false,
            "remove_msh_file": false
          }
        },
        "batch_postproc": {
          "$ref": "#/$defs/CACRutherfordPostprocBatchpostproc",
          "default": {
            "postProc_csv": null,
            "output_folder": null,
            "filter": {
              "apply_filter": false,
              "filter_criterion": null
            },
            "sort": {
              "apply_sort": false,
              "sort_key": null
            },
            "loss_map": {
              "cross_section": {
                "axis_to_cut": "x",
                "cut_value": 0.0,
                "filename": "cross_section",
                "plot_cross_section": false,
                "save_plot": false,
                "title": null,
                "ylabel": "Loss"
              },
              "cross_section_sweep": {
                "animate_cross_section_sweep": false,
                "axis_to_sweep": "x",
                "filename": "crossSectionSweep",
                "save_plot": false,
                "title": null,
                "ylabel": "Loss"
              },
              "filename": "loss_map",
              "loss_log": true,
              "loss_norm": 1.0,
              "loss_type": "TotalLoss",
              "produce_loss_map": false,
              "save_plot": false,
              "show_datapoints": true,
              "show_loss_type_dominance_contour": false,
              "title": null,
              "x_log": true,
              "x_norm": 1.0,
              "x_steps": 20,
              "x_val": null,
              "xlabel": null,
              "y_log": true,
              "y_norm": 1.0,
              "y_steps": 20,
              "y_val": null,
              "ylabel": null
            },
            "plot2d": {
              "combined_plot": false,
              "filename": "plot2d",
              "labels": null,
              "legend": true,
              "linestyle": null,
              "produce_plot2d": false,
              "save_plot": false,
              "title": null,
              "x_log": false,
              "x_val": null,
              "xlabel": null,
              "y_log": false,
              "y_vals": null,
              "ylabel": null
            }
          }
        }
      },
      "title": "CACRutherfordPostproc",
      "type": "object"
    },
    "CACRutherfordPostprocBatchpostproc": {
      "description": "Level 3: Class for batch post-processing settings",
      "properties": {
        "postProc_csv": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Name of the .csv file for post-processing (without file extension). This file specifies the simulations to be post-processed. The file is structured into three columns, specifying the folder names to access the simulation results: 'input.run.geometry', 'input.run.mesh' and 'input.run.solve'. Each row corresponds to a simulation to be post-processed.",
          "title": "Postproc Csv"
        },
        "output_folder": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Batch post-processing creates a folder with the given name in the output directory, where all the plots are saved.",
          "title": "Output Folder"
        },
        "filter": {
          "$ref": "#/$defs/CACRutherfordPostprocBatchpostprocFilter",
          "default": {
            "apply_filter": false,
            "filter_criterion": null
          }
        },
        "sort": {
          "$ref": "#/$defs/CACRutherfordPostprocBatchpostprocSort",
          "default": {
            "apply_sort": false,
            "sort_key": null
          }
        },
        "loss_map": {
          "$ref": "#/$defs/CACRutherfordPostprocBatchpostprocLossMap",
          "default": {
            "produce_loss_map": false,
            "save_plot": false,
            "filename": "loss_map",
            "x_val": null,
            "y_val": null,
            "x_steps": 20,
            "y_steps": 20,
            "loss_type": "TotalLoss",
            "x_log": true,
            "y_log": true,
            "loss_log": true,
            "x_norm": 1.0,
            "y_norm": 1.0,
            "loss_norm": 1.0,
            "show_datapoints": true,
            "title": null,
            "xlabel": null,
            "ylabel": null,
            "show_loss_type_dominance_contour": false,
            "cross_section": {
              "axis_to_cut": "x",
              "cut_value": 0.0,
              "filename": "cross_section",
              "plot_cross_section": false,
              "save_plot": false,
              "title": null,
              "ylabel": "Loss"
            },
            "cross_section_sweep": {
              "animate_cross_section_sweep": false,
              "axis_to_sweep": "x",
              "filename": "crossSectionSweep",
              "save_plot": false,
              "title": null,
              "ylabel": "Loss"
            }
          }
        },
        "plot2d": {
          "$ref": "#/$defs/CACRutherfordPostprocBatchpostprocPlot2d",
          "default": {
            "produce_plot2d": false,
            "combined_plot": false,
            "save_plot": false,
            "filename": "plot2d",
            "x_val": null,
            "y_vals": null,
            "labels": null,
            "linestyle": null,
            "title": null,
            "xlabel": null,
            "ylabel": null,
            "x_log": false,
            "y_log": false,
            "legend": true
          }
        }
      },
      "title": "CACRutherfordPostprocBatchpostproc",
      "type": "object"
    },
    "CACRutherfordPostprocBatchpostprocFilter": {
      "description": "Level 4: Field for filtering simulations based on simulation parameters for batch post-processing",
      "properties": {
        "apply_filter": {
          "default": false,
          "description": "Set True to filter simulations by parameters from the input YAML-file.",
          "title": "Apply Filter",
          "type": "boolean"
        },
        "filter_criterion": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Criterion used to filter simulations based on simulation parameters. For example will '<<solve.source_parameters.sine.frequency>> > 100' disregard simulations done with frequencies lower than 100Hz.",
          "title": "Filter Criterion"
        }
      },
      "title": "CACRutherfordPostprocBatchpostprocFilter",
      "type": "object"
    },
    "CACRutherfordPostprocBatchpostprocLossMap": {
      "description": "Level 4: Class with settings for generating loss maps",
      "properties": {
        "produce_loss_map": {
          "default": false,
          "description": "Set True to produce a loss map.",
          "title": "Produce Loss Map",
          "type": "boolean"
        },
        "save_plot": {
          "default": false,
          "description": "Set True to save the plot.",
          "title": "Save Plot",
          "type": "boolean"
        },
        "filename": {
          "default": "loss_map",
          "description": "Name of the plot file.",
          "title": "Filename",
          "type": "string"
        },
        "x_val": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Parameter to be plotted on the x-axis. This field corresponds to a parameter in the input YAML-file. E.g. 'solve.source_parameters.sine.frequency' will plot the loss map for different frequencies.",
          "title": "X Val"
        },
        "y_val": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Parameter to be plotted on the y-axis. This field corresponds to a parameter in the input YAML-file. E.g. 'solve.source_parameters.sine.field_amplitude' will plot the loss map for different applied field amplitudes.",
          "title": "Y Val"
        },
        "x_steps": {
          "default": 20,
          "description": "Number of steps on the x-axis.",
          "title": "X Steps",
          "type": "integer"
        },
        "y_steps": {
          "default": 20,
          "description": "Number of steps on the y-axis.",
          "title": "Y Steps",
          "type": "integer"
        },
        "loss_type": {
          "default": "TotalLoss",
          "description": "Type of loss to be plotted. Supported options are: TotalLoss, FilamentLoss, CouplingLoss, EddyLoss.",
          "enum": [
            "TotalLoss",
            "FilamentLoss",
            "CouplingLoss",
            "EddyLoss"
          ],
          "title": "Loss Type",
          "type": "string"
        },
        "x_log": {
          "default": true,
          "description": "Set True to plot x-axis in log-scale.",
          "title": "X Log",
          "type": "boolean"
        },
        "y_log": {
          "default": true,
          "description": "Set True to plot y-axis in log-scale.",
          "title": "Y Log",
          "type": "boolean"
        },
        "loss_log": {
          "default": true,
          "description": "Set True to plot loss in log-scale.",
          "title": "Loss Log",
          "type": "boolean"
        },
        "x_norm": {
          "default": 1,
          "description": "Normalization factor for x-axis.",
          "title": "X Norm",
          "type": "number"
        },
        "y_norm": {
          "default": 1,
          "description": "Normalization factor for y-axis.",
          "title": "Y Norm",
          "type": "number"
        },
        "loss_norm": {
          "default": 1,
          "description": "Normalization factor for the AC-loss.",
          "title": "Loss Norm",
          "type": "number"
        },
        "show_datapoints": {
          "default": true,
          "description": "Set True to show markers for all the datapoints in the loss map.",
          "title": "Show Datapoints",
          "type": "boolean"
        },
        "title": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Title for the plot.",
          "title": "Title"
        },
        "xlabel": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Label for the x-axis.",
          "title": "Xlabel"
        },
        "ylabel": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Label for the y-axis.",
          "title": "Ylabel"
        },
        "show_loss_type_dominance_contour": {
          "default": false,
          "description": "Set True to plot a contour curve separating regions where different loss types dominate. ",
          "title": "Show Loss Type Dominance Contour",
          "type": "boolean"
        },
        "cross_section": {
          "$ref": "#/$defs/CACRutherfordPostprocBatchpostprocLossMapCrossSection",
          "default": {
            "plot_cross_section": false,
            "save_plot": false,
            "filename": "cross_section",
            "axis_to_cut": "x",
            "cut_value": 0.0,
            "ylabel": "Loss",
            "title": null
          }
        },
        "cross_section_sweep": {
          "$ref": "#/$defs/CACRutherfordPostprocBatchpostprocLossMapCrossSectionSweep",
          "default": {
            "animate_cross_section_sweep": false,
            "save_plot": false,
            "filename": "crossSectionSweep",
            "axis_to_sweep": "x",
            "ylabel": "Loss",
            "title": null
          }
        }
      },
      "title": "CACRutherfordPostprocBatchpostprocLossMap",
      "type": "object"
    },
    "CACRutherfordPostprocBatchpostprocLossMapCrossSection": {
      "description": "Level 5: Class with settings for plotting a cross-section of the loss map.",
      "properties": {
        "plot_cross_section": {
          "default": false,
          "description": "Set True to plot a cross-section of the loss map.",
          "title": "Plot Cross Section",
          "type": "boolean"
        },
        "save_plot": {
          "default": false,
          "description": "Set True to save the plot.",
          "title": "Save Plot",
          "type": "boolean"
        },
        "filename": {
          "default": "cross_section",
          "description": "Name of the plot file.",
          "title": "Filename",
          "type": "string"
        },
        "axis_to_cut": {
          "default": "x",
          "description": "Axis to cut for the cross-section.",
          "title": "Axis To Cut",
          "type": "string"
        },
        "cut_value": {
          "default": 0,
          "description": "Value of the axis to cut for the cross-section.",
          "title": "Cut Value",
          "type": "number"
        },
        "ylabel": {
          "default": "Loss",
          "description": "Label of the y-axis.",
          "title": "Ylabel",
          "type": "string"
        },
        "title": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Title of the plot. The placeholder <<cut_value>> can be used to indicate the value of the cut axis.",
          "title": "Title"
        }
      },
      "title": "CACRutherfordPostprocBatchpostprocLossMapCrossSection",
      "type": "object"
    },
    "CACRutherfordPostprocBatchpostprocLossMapCrossSectionSweep": {
      "description": "Level 5: Class with settings for animating a cross-section sweep of the loss map along one axis.",
      "properties": {
        "animate_cross_section_sweep": {
          "default": false,
          "description": "Set True to animate a cross-section sweep of the loss map along one axis.",
          "title": "Animate Cross Section Sweep",
          "type": "boolean"
        },
        "save_plot": {
          "default": false,
          "description": "Set True to save the animation.",
          "title": "Save Plot",
          "type": "boolean"
        },
        "filename": {
          "default": "crossSectionSweep",
          "description": "Name of the animation file.",
          "title": "Filename",
          "type": "string"
        },
        "axis_to_sweep": {
          "default": "x",
          "description": "Axis to sweep for the animation.",
          "title": "Axis To Sweep",
          "type": "string"
        },
        "ylabel": {
          "default": "Loss",
          "description": "Label of the y-axis.",
          "title": "Ylabel",
          "type": "string"
        },
        "title": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Title of the plot. Use <<sweep_value>> to indicate the value of the sweep axis.",
          "title": "Title"
        }
      },
      "title": "CACRutherfordPostprocBatchpostprocLossMapCrossSectionSweep",
      "type": "object"
    },
    "CACRutherfordPostprocBatchpostprocPlot2d": {
      "description": "Level 4: Class for 2D plot settings",
      "properties": {
        "produce_plot2d": {
          "default": false,
          "description": "Set True to produce a 2D plot.",
          "title": "Produce Plot2D",
          "type": "boolean"
        },
        "combined_plot": {
          "default": false,
          "description": "Set True to produce a combined plot for all simulations. If False, a separate plot is produced for each simulation.",
          "title": "Combined Plot",
          "type": "boolean"
        },
        "save_plot": {
          "default": false,
          "description": "Set True to save the plot.",
          "title": "Save Plot",
          "type": "boolean"
        },
        "filename": {
          "default": "plot2d",
          "description": "Name of the plot file.",
          "title": "Filename",
          "type": "string"
        },
        "x_val": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Value to be plotted on the x-axis. Parameters in the input YAML-file and class-variables from the plotter 'SimulationData' class can be accessed trough the notation << . >>. E.g. '<<solve.source_parameters.sine.frequency>>' will create a 2D plot with frequency on the x-axis. '<<time>>' will create a plot with time on the x-axis.",
          "title": "X Val"
        },
        "y_vals": {
          "oneOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": " List of values to be plotted on the y-axis. Parameters in the input YAML-file and class-variables from the plotter 'SimulationData' class can be accessed trough the notation << . >>. E.g. total AC-loss per cycle can be accessed as ['<<total_power_per_cycle['TotalLoss_dyn']>>'].",
          "title": "Y Vals"
        },
        "labels": {
          "oneOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "List of labels for the plot. Each label corresponding to a value in y_val.",
          "title": "Labels"
        },
        "linestyle": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Linestyle for the plot.",
          "title": "Linestyle"
        },
        "title": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Title for the plot.",
          "title": "Title"
        },
        "xlabel": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Label for the x-axis.",
          "title": "Xlabel"
        },
        "ylabel": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Label for the y-axis.",
          "title": "Ylabel"
        },
        "x_log": {
          "default": false,
          "description": "Set True to plot x-axis in log-scale.",
          "title": "X Log",
          "type": "boolean"
        },
        "y_log": {
          "default": false,
          "description": "Set True to plot y-axis in log-scale.",
          "title": "Y Log",
          "type": "boolean"
        },
        "legend": {
          "default": true,
          "description": "Set True to show legend.",
          "title": "Legend",
          "type": "boolean"
        }
      },
      "title": "CACRutherfordPostprocBatchpostprocPlot2d",
      "type": "object"
    },
    "CACRutherfordPostprocBatchpostprocSort": {
      "description": "Level 4: Field for sorting simulations based on simulation parameters for batch post-processing",
      "properties": {
        "apply_sort": {
          "default": false,
          "description": "Set True to sort simulations.",
          "title": "Apply Sort",
          "type": "boolean"
        },
        "sort_key": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Criterion used to sort simulations based on simulation parameters. For example will 'sd.total_power_per_cycle['TotalLoss'] sort simulations based on the total loss.",
          "title": "Sort Key"
        }
      },
      "title": "CACRutherfordPostprocBatchpostprocSort",
      "type": "object"
    },
    "CACRutherfordPostprocCleanup": {
      "description": "Level 3: Class for cleanup settings",
      "properties": {
        "remove_pre_file": {
          "default": false,
          "description": "Set True to remove the .pre-file after post-processing, to save disk space.",
          "title": "Remove Pre File",
          "type": "boolean"
        },
        "remove_res_file": {
          "default": false,
          "description": "Set True to remove the .res-file after post-processing, to save disk space.",
          "title": "Remove Res File",
          "type": "boolean"
        },
        "remove_msh_file": {
          "default": false,
          "description": "Set True to remove the .msh-file after post-processing, to save disk space.",
          "title": "Remove Msh File",
          "type": "boolean"
        }
      },
      "title": "CACRutherfordPostprocCleanup",
      "type": "object"
    },
    "CACRutherfordPostprocPlotInstPower": {
      "description": "Level 3: Class with settings for generating plots of instantaneous power",
      "properties": {
        "show": {
          "default": false,
          "description": "Creates a plot for the calculated instantaneous AC loss (W/m) as a function of time (s).",
          "title": "Show",
          "type": "boolean"
        },
        "title": {
          "default": "Instantaneous Power",
          "description": "Title for the plot.",
          "title": "Title",
          "type": "string"
        },
        "save": {
          "default": false,
          "description": "Set True to save the plot.",
          "title": "Save",
          "type": "boolean"
        },
        "save_file_name": {
          "default": "instantaneous_power",
          "description": "Name of the plot file.",
          "title": "Save File Name",
          "type": "string"
        }
      },
      "title": "CACRutherfordPostprocPlotInstPower",
      "type": "object"
    },
    "CACRutherfordSolve": {
      "description": "Level 2: Class for FiQuS ConductorAC",
      "properties": {
        "pro_template": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Name of the .pro template file.",
          "title": "Pro Template"
        },
        "conductor_name": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Name of the conductor.",
          "title": "Conductor Name"
        },
        "formulation_parameters": {
          "$ref": "#/$defs/CACRutherfordSolveFormulationparameters",
          "default": {
            "stranded_strands": true,
            "rohm": true,
            "rohf": true
          }
        },
        "general_parameters": {
          "$ref": "#/$defs/CACRutherfordSolveGeneralparameters",
          "default": {
            "temperature": 1.9,
            "superconductor_n_value": 30.0,
            "superconductor_Ic": 350.0,
            "matrix_resistance": 0.0006536208,
            "crossing_coupling_resistance": 1e-6,
            "adjacent_coupling_resistance": 1e-6,
            "rho_coating": 1e-7,
            "rho_strands": 1e-12,
            "noOfMPITasks": false
          }
        },
        "initial_conditions": {
          "$ref": "#/$defs/CACRutherfordSolveInitialConditions",
          "default": {
            "init_from_pos_file": false,
            "pos_file_to_init_from": null
          }
        },
        "frequency_domain_solver": {
          "$ref": "#/$defs/CACRutherfordSolveFrequencydomainsolver",
          "default": {
            "enable": false,
            "frequency_sweep": {
              "end_frequency": 100.0,
              "number_of_frequencies": 10,
              "run_sweep": false,
              "start_frequency": 1.0
            }
          }
        },
        "source_parameters": {
          "$ref": "#/$defs/CACRutherfordSolveSourceparameters",
          "default": {
            "source_type": "sine",
            "parallel_resistor": false,
            "boundary_condition_type": "Natural",
            "sine": {
              "current_amplitude": null,
              "field_amplitude": null,
              "field_angle": 90.0,
              "frequency": null,
              "superimposed_DC": {
                "current_magnitude": 0.0,
                "field_magnitude": 0.0
              }
            },
            "piecewise": {
              "applied_field_multiplier": null,
              "applied_fields_relative": null,
              "field_angle": 90.0,
              "source_csv_file": null,
              "time_multiplier": null,
              "times": null,
              "transport_current_multiplier": null,
              "transport_currents_relative": null
            },
            "excitation_coils": {
              "enable": false,
              "source_csv_file": null
            }
          }
        },
        "numerical_parameters": {
          "$ref": "#/$defs/CACRutherfordSolveNumericalparameters",
          "default": {
            "sine": {
              "number_of_periods_to_simulate": null,
              "timesteps_per_period": null
            },
            "piecewise": {
              "force_stepping_at_times_piecewise_linear": false,
              "max_timestep_piecewise_linear": null,
              "time_to_simulate": null,
              "times_max_timestep_piecewise_linear": null,
              "timesteps_per_time_to_simulate": null,
              "variable_max_timestep": false
            }
          }
        }
      },
      "title": "CACRutherfordSolve",
      "type": "object"
    },
    "CACRutherfordSolveFormulationparameters": {
      "description": "Level 3: Class for finite element formulation parameters",
      "properties": {
        "stranded_strands": {
          "default": true,
          "description": "Are the strands solved as 'stranded conductors', i.e., with fixed source current density, and no eddy current effect? Put to True if we solve for homogenized strands.",
          "title": "Stranded Strands",
          "type": "boolean"
        },
        "rohm": {
          "default": true,
          "description": "Do we use the ROHM model to describe the stranded strand magnetization? This is only relevant with stranded strands, but can be used without (without much meaning). If fase, solves with permeability mu0.",
          "title": "Rohm",
          "type": "boolean"
        },
        "rohf": {
          "default": true,
          "description": "Do we use the ROHF model to describe the stranded strand voltage and inductance? This is only possible with stranded strands. If stranded_strands=false, rohf is considered false as well.",
          "title": "Rohf",
          "type": "boolean"
        }
      },
      "title": "CACRutherfordSolveFormulationparameters",
      "type": "object"
    },
    "CACRutherfordSolveFrequencydomainsolver": {
      "description": "Level 3: Class for frequency domain solver settings",
      "properties": {
        "enable": {
          "default": false,
          "description": "Set True to enable the frequency domain solver.",
          "title": "Enable",
          "type": "boolean"
        },
        "frequency_sweep": {
          "$ref": "#/$defs/CACRutherfordSolveFrequencydomainsolverFrequencysweep",
          "default": {
            "run_sweep": false,
            "start_frequency": 1.0,
            "end_frequency": 100.0,
            "number_of_frequencies": 10
          }
        }
      },
      "title": "CACRutherfordSolveFrequencydomainsolver",
      "type": "object"
    },
    "CACRutherfordSolveFrequencydomainsolverFrequencysweep": {
      "description": "Level 4: Class for frequency sweep settings",
      "properties": {
        "run_sweep": {
          "default": false,
          "description": "Set True to run a frequency sweep (logarithmic).",
          "title": "Run Sweep",
          "type": "boolean"
        },
        "start_frequency": {
          "default": 1,
          "description": "Start frequency (Hz) of the sweep.",
          "title": "Start Frequency",
          "type": "number"
        },
        "end_frequency": {
          "default": 100,
          "description": "End frequency (Hz) of the sweep.",
          "title": "End Frequency",
          "type": "number"
        },
        "number_of_frequencies": {
          "default": 10,
          "description": "Number of frequencies in the sweep.",
          "title": "Number Of Frequencies",
          "type": "integer"
        }
      },
      "title": "CACRutherfordSolveFrequencydomainsolverFrequencysweep",
      "type": "object"
    },
    "CACRutherfordSolveGeneralparameters": {
      "description": "Level 3: Class for general parameters",
      "properties": {
        "temperature": {
          "default": 1.9,
          "description": "Temperature (K) of the strand.",
          "title": "Temperature",
          "type": "number"
        },
        "superconductor_n_value": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 30,
          "description": "n value for the power law (-), used in current sharing law.",
          "title": "Superconductor N Value"
        },
        "superconductor_Ic": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 350,
          "description": "Critical current of the strands (A) (e.g., typical value at T=1.9K and B=10T). Will be taken as a constant as in this model the field dependence is not included (the main purpose of the model is to verify the more efficient Homogenized Conductor model). Including field-dependence could be done but is not trivial because is mixes global and local quantities in this Rutherford model with strand discretized individually as stranded conductors.",
          "title": "Superconductor Ic"
        },
        "matrix_resistance": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 0.0006536208,
          "description": "Resistance of the matrix (per unit length) (Ohm/m) for the current sharing law. Kept constant in this model (for simplicity).",
          "title": "Matrix Resistance"
        },
        "crossing_coupling_resistance": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 1e-6,
          "description": "Crossing coupling resistance (Ohm).",
          "title": "Crossing Coupling Resistance"
        },
        "adjacent_coupling_resistance": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 1e-6,
          "description": "Adjacent coupling resistance (Ohm).",
          "title": "Adjacent Coupling Resistance"
        },
        "rho_coating": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 1e-7,
          "description": "Resistivity of coating domain outside of the strands (Ohm.m).",
          "title": "Rho Coating"
        },
        "rho_strands": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 1e-12,
          "description": "Resistivity of strands, when modelled as massive conductors (Ohm.m).",
          "title": "Rho Strands"
        },
        "noOfMPITasks": {
          "oneOf": [
            {
              "type": "boolean"
            },
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": false,
          "description": "If integer, GetDP will be run in parallel using MPI. This is only valid if MPI is installed on the system and an MPI-enabled GetDP is used. If False, GetDP will be run in serial without invoking mpiexec.",
          "title": "No. of tasks for MPI parallel run of GetDP"
        }
      },
      "title": "CACRutherfordSolveGeneralparameters",
      "type": "object"
    },
    "CACRutherfordSolveInitialConditions": {
      "description": "Level 3: Class for initial conditions",
      "properties": {
        "init_from_pos_file": {
          "default": false,
          "description": "Do we initialize the solution at a non-zero field.",
          "title": "Init From Pos File",
          "type": "boolean"
        },
        "pos_file_to_init_from": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Name of .pos file for magnetic field (A/m) from which the solution should be initialized. Should be in the Geometry_xxx/Mesh_xxx/ folder in which the Solution_xxx will be saved.",
          "title": "Pos File To Init From"
        }
      },
      "title": "CACRutherfordSolveInitialConditions",
      "type": "object"
    },
    "CACRutherfordSolveNumericalparameters": {
      "description": "Level 3: Class for numerical parameters",
      "properties": {
        "sine": {
          "$ref": "#/$defs/CACRutherfordSolveNumericalparametersSine",
          "default": {
            "timesteps_per_period": null,
            "number_of_periods_to_simulate": null
          }
        },
        "piecewise": {
          "$ref": "#/$defs/CACRutherfordSolveNumericalparametersPiecewise",
          "default": {
            "time_to_simulate": null,
            "timesteps_per_time_to_simulate": null,
            "force_stepping_at_times_piecewise_linear": false,
            "variable_max_timestep": false,
            "times_max_timestep_piecewise_linear": null,
            "max_timestep_piecewise_linear": null
          }
        }
      },
      "title": "CACRutherfordSolveNumericalparameters",
      "type": "object"
    },
    "CACRutherfordSolveNumericalparametersPiecewise": {
      "description": "Level 4: Numerical parameters corresponding to the piecewise source",
      "properties": {
        "time_to_simulate": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Total time to simulate (s). Used for the piecewise source.",
          "title": "Time To Simulate"
        },
        "timesteps_per_time_to_simulate": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "If variable_max_timestep is False. Number of time steps (-) per period for the piecewise source.",
          "title": "Timesteps Per Time To Simulate"
        },
        "force_stepping_at_times_piecewise_linear": {
          "default": false,
          "description": "If True, time-stepping will contain exactly the time instants that are in the times_source_piecewise_linear list (to avoid truncation maximum applied field/current values).",
          "title": "Force Stepping At Times Piecewise Linear",
          "type": "boolean"
        },
        "variable_max_timestep": {
          "default": false,
          "description": "If False, the maximum time step is kept constant through the simulation. If True, it varies according to the piecewise definition.",
          "title": "Variable Max Timestep",
          "type": "boolean"
        },
        "times_max_timestep_piecewise_linear": {
          "oneOf": [
            {
              "items": {
                "type": "number"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Time instants (s) defining the piecewise linear maximum time step.",
          "title": "Times Max Timestep Piecewise Linear"
        },
        "max_timestep_piecewise_linear": {
          "oneOf": [
            {
              "items": {
                "type": "number"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Maximum time steps (s) at the times_max_timestep_piecewise_linear. Above the limits, linear extrapolation of the last two values.",
          "title": "Max Timestep Piecewise Linear"
        }
      },
      "title": "CACRutherfordSolveNumericalparametersPiecewise",
      "type": "object"
    },
    "CACRutherfordSolveNumericalparametersSine": {
      "description": "Level 4: Numerical parameters corresponding to the sine source",
      "properties": {
        "timesteps_per_period": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Initial value for number of time steps (-) per period for the sine source. Determines the initial time step size.",
          "title": "Timesteps Per Period"
        },
        "number_of_periods_to_simulate": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Number of periods (-) to simulate for the sine source.",
          "title": "Number Of Periods To Simulate"
        }
      },
      "title": "CACRutherfordSolveNumericalparametersSine",
      "type": "object"
    },
    "CACRutherfordSolveSourceparameters": {
      "description": "Level 3: Class for material properties",
      "properties": {
        "source_type": {
          "default": "sine",
          "description": "Time evolution of applied current and magnetic field. Supported options are: sine, sine_with_DC, piecewise_linear, from_list.",
          "enum": [
            "sine",
            "piecewise"
          ],
          "title": "Source Type",
          "type": "string"
        },
        "parallel_resistor": {
          "oneOf": [
            {
              "type": "boolean"
            },
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": false,
          "description": "If False, no parallel resistor and the current source directly and only feeds the cable. If True, a resistor is placed in parallel with the cable, with a default resistance of 1 Ohm. If float (cannot be zero), this defines the value of the resistance.",
          "title": "Resistor parallel to the cable"
        },
        "boundary_condition_type": {
          "default": "Natural",
          "description": "Boundary condition type. Supported options are: Natural, Essential. Do not use essential boundary condition with induced currents.",
          "title": "Boundary Condition Type",
          "type": "string"
        },
        "sine": {
          "$ref": "#/$defs/CACRutherfordSolveSourceparametersSine",
          "default": {
            "frequency": null,
            "field_amplitude": null,
            "current_amplitude": null,
            "field_angle": 90.0,
            "superimposed_DC": {
              "current_magnitude": 0.0,
              "field_magnitude": 0.0
            }
          }
        },
        "piecewise": {
          "$ref": "#/$defs/CACRutherfordSolveSourceparametersPiecewise",
          "default": {
            "source_csv_file": null,
            "times": null,
            "applied_fields_relative": null,
            "transport_currents_relative": null,
            "time_multiplier": null,
            "applied_field_multiplier": null,
            "transport_current_multiplier": null,
            "field_angle": 90.0
          }
        },
        "excitation_coils": {
          "$ref": "#/$defs/CACRutherfordSolveSourceparametersExcitationCoils",
          "default": {
            "enable": false,
            "source_csv_file": null
          }
        }
      },
      "title": "CACRutherfordSolveSourceparameters",
      "type": "object"
    },
    "CACRutherfordSolveSourceparametersExcitationCoils": {
      "description": "Level 4: Class for excitation coils",
      "properties": {
        "enable": {
          "oneOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": false,
          "description": "Are the excitation coils used in the model? (they can exist in the geometry and mesh but be ignored at the solution stage)",
          "title": "Enable"
        },
        "source_csv_file": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The file should contain a first column with 'time' (s) and one additional column per excitation coil with 'value', which is the TOTAL current (A) per coil (with appropriate sign).",
          "title": "Source Csv File"
        }
      },
      "title": "CACRutherfordSolveSourceparametersExcitationCoils",
      "type": "object"
    },
    "CACRutherfordSolveSourceparametersPiecewise": {
      "description": "Level 4: Class for piecewise (linear) source parameters",
      "properties": {
        "source_csv_file": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "File name for the from_file source type defining the time evolution of current and field (in-phase). Multipliers are used for each of them. The file should contain two columns: 'time' (s) and 'value' (field/current (T/A)), with these headers. If this field is set, times, applied_fields_relative and transport_currents_relative are ignored.",
          "title": "Source Csv File"
        },
        "times": {
          "oneOf": [
            {
              "items": {
                "type": "number"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Time instants (s) defining the piecewise linear sources. Used only if source_csv_file is not set. Can be scaled by time_multiplier.",
          "title": "Times"
        },
        "applied_fields_relative": {
          "oneOf": [
            {
              "items": {
                "type": "number"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Applied fields relative to multiplier applied_field_multiplier at the time instants 'times'. Used only if source_csv_file is not set.",
          "title": "Applied Fields Relative"
        },
        "transport_currents_relative": {
          "oneOf": [
            {
              "items": {
                "type": "number"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Transport currents relative to multiplier transport_current_multiplier at the time instants 'times'. Used only if source_csv_file is not set.",
          "title": "Transport Currents Relative"
        },
        "time_multiplier": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Multiplier for the time values in times (scales the time values). Also used for the time values in the source_csv_file.",
          "title": "Time Multiplier"
        },
        "applied_field_multiplier": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Multiplier for the applied fields in applied_fields_relative. Also used for the values in the source_csv_file.",
          "title": "Applied Field Multiplier"
        },
        "transport_current_multiplier": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Multiplier for the transport currents in transport_currents_relative. Also used for the values in the source_csv_file.",
          "title": "Transport Current Multiplier"
        },
        "field_angle": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 90,
          "description": "Angle of the sine field direction, with respect to the x-axis (degrees).",
          "title": "Field Angle"
        }
      },
      "title": "CACRutherfordSolveSourceparametersPiecewise",
      "type": "object"
    },
    "CACRutherfordSolveSourceparametersSine": {
      "description": "Level 4: Class for Sine source parameters",
      "properties": {
        "frequency": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Frequency of the sine source (Hz).",
          "title": "Frequency"
        },
        "field_amplitude": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Amplitude of the sine field (T).",
          "title": "Field Amplitude"
        },
        "current_amplitude": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Amplitude of the sine current (A).",
          "title": "Current Amplitude"
        },
        "field_angle": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 90,
          "description": "Angle of the sine field direction, with respect to the x-axis (degrees).",
          "title": "Field Angle"
        },
        "superimposed_DC": {
          "$ref": "#/$defs/CACRutherfordSolveSourceparametersSineSuperimposedDC",
          "default": {
            "field_magnitude": 0.0,
            "current_magnitude": 0.0
          }
        }
      },
      "title": "CACRutherfordSolveSourceparametersSine",
      "type": "object"
    },
    "CACRutherfordSolveSourceparametersSineSuperimposedDC": {
      "description": "Level 5: Class for superimposed DC field or current parameters for the sine source",
      "properties": {
        "field_magnitude": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 0.0,
          "description": "DC field magnitude (T) (direction along y-axis). Solution must be initialized with a non-zero field solution stored in a .pos file if non-zero DC field is used.",
          "title": "Field Magnitude"
        },
        "current_magnitude": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 0.0,
          "description": "DC current magnitude (A). Solution must be initialized with a non-zero field solution stored in a .pos file if non-zero DC current is used.",
          "title": "Current Magnitude"
        }
      },
      "title": "CACRutherfordSolveSourceparametersSineSuperimposedDC",
      "type": "object"
    },
    "CACStrand": {
      "description": "Level 1: Class for FiQuS ConductorAC",
      "properties": {
        "type": {
          "const": "CACStrand",
          "title": "Type",
          "type": "string"
        },
        "geometry": {
          "$ref": "#/$defs/CACStrandGeometry",
          "default": {
            "io_settings": {
              "load": {
                "filename": null,
                "load_from_yaml": false
              },
              "save": {
                "filename": null,
                "save_to_yaml": false
              }
            },
            "hexagonal_filaments": null,
            "hexagonal_holes": null,
            "filament_circular_distribution": null,
            "air_radius": null,
            "type": "strand_only",
            "coil_radius": null,
            "rotate_angle": null
          }
        },
        "mesh": {
          "$ref": "#/$defs/CACStrandMesh",
          "default": {
            "scaling_global": 1.0,
            "filaments": {
              "amplitude_dependent_scaling": false,
              "boundary_mesh_size_ratio": null,
              "center_mesh_size_ratio": null,
              "desired_elements_in_field_penetration_region": null,
              "field_penetration_depth_scaling_factor": null
            },
            "matrix": {
              "desired_elements_in_skindepth": null,
              "force_center_symmetry": false,
              "interpolation_distance_from_filaments_ratio": null,
              "mesh_size_matrix_ratio_inner": null,
              "mesh_size_matrix_ratio_middle": null,
              "mesh_size_matrix_ratio_outer": null,
              "rate_dependent_scaling_matrix": false,
              "skindepth_scaling_factor": null
            },
            "air": {
              "max_mesh_size_ratio": null
            }
          }
        },
        "solve": {
          "$ref": "#/$defs/CACStrandSolve",
          "default": {
            "pro_template": "CAC_Strand_template.pro",
            "conductor_name": null,
            "formulation_parameters": {
              "compute_temperature": false,
              "dynamic_correction": true,
              "formulation": "CATI",
              "two_ell_periodicity": true
            },
            "general_parameters": {
              "noOfMPITasks": false,
              "superconductor_linear": false,
              "temperature": 1.9
            },
            "initial_conditions": {
              "init_type": "virgin",
              "solution_to_init_from": null
            },
            "diffusion_barriers": {
              "enable": false,
              "load_data_from_yaml": false,
              "resistivity": 1e-6,
              "thickness": 1e-6
            },
            "global_diffusion_barrier": {
              "enable": false,
              "load_data_from_yaml": false,
              "resistivity": 1e-6,
              "thickness": 1e-6
            },
            "source_parameters": {
              "field_angle": 90.0,
              "piecewise": {
                "applied_field_multiplier": null,
                "applied_fields_relative": null,
                "source_csv_file": null,
                "time_multiplier": null,
                "times": null,
                "transport_current_multiplier": null,
                "transport_currents_relative": null
              },
              "rotating": {
                "field_magnitude": null,
                "frequency": null
              },
              "sine": {
                "current_amplitude": null,
                "field_amplitude": null,
                "frequency": null,
                "superimposed_DC": {
                  "current_magnitude": 0.0,
                  "field_magnitude": 0.0
                }
              },
              "source_type": "sine"
            },
            "numerical_parameters": {
              "piecewise": {
                "force_stepping_at_times_piecewise_linear": false,
                "max_timestep_piecewise_linear": null,
                "time_to_simulate": null,
                "times_max_timestep_piecewise_linear": null,
                "timesteps_per_time_to_simulate": null,
                "variable_max_timestep": false
              },
              "rotating": {
                "number_of_periods_to_simulate": null,
                "timesteps_per_period": null
              },
              "sine": {
                "number_of_periods_to_simulate": null,
                "timesteps_per_period": null
              }
            }
          }
        },
        "postproc": {
          "$ref": "#/$defs/CACStrandPostproc",
          "default": {
            "pos_files": {
              "quantities": [],
              "regions": []
            },
            "compute_current_per_filament": false,
            "output_folder": "Results",
            "generate_report": false,
            "cleanup": {
              "remove_msh_file": false,
              "remove_pre_file": false,
              "remove_res_file": false
            },
            "plot_flux": {
              "rohf": false,
              "rohf_N": null,
              "rohf_file": null,
              "rohf_kappa_spacing": null,
              "show": false
            },
            "plot_instantaneous_power": {
              "save": false,
              "save_file_name": "instantaneous_power",
              "show": false,
              "title": "Instantaneous Power"
            },
            "batch_postproc": {
              "filter": {
                "apply_filter": false,
                "filter_criterion": null
              },
              "fluxmodels_csv": null,
              "loss_map": {
                "cross_section": {
                  "axis_to_cut": "x",
                  "cut_value": 0.0,
                  "filename": "cross_section",
                  "plot_cross_section": false,
                  "save_plot": false,
                  "title": null,
                  "ylabel": "Loss"
                },
                "cross_section_sweep": {
                  "animate_cross_section_sweep": false,
                  "axis_to_sweep": "x",
                  "filename": "crossSectionSweep",
                  "save_plot": false,
                  "title": null,
                  "ylabel": "Loss"
                },
                "filename": "loss_map",
                "loss_log": true,
                "loss_norm": 1.0,
                "loss_type": "TotalLoss",
                "produce_loss_map": false,
                "save_plot": false,
                "show_datapoints": true,
                "show_loss_type_dominance_contour": false,
                "title": null,
                "x_log": true,
                "x_norm": 1.0,
                "x_steps": 20,
                "x_val": null,
                "xlabel": null,
                "y_log": true,
                "y_norm": 1.0,
                "y_steps": 20,
                "y_val": null,
                "ylabel": null
              },
              "plot2d": {
                "combined_plot": false,
                "filename": "plot2d",
                "labels": null,
                "legend": true,
                "linestyle": null,
                "produce_plot2d": false,
                "reference_label": null,
                "reference_vals": null,
                "save_pgfdata": false,
                "save_plot": false,
                "title": null,
                "x_log": false,
                "x_val": null,
                "xlabel": null,
                "y_log": false,
                "y_val_fluxmodel": null,
                "y_vals": null,
                "ylabel": null
              },
              "rohf_on_grid": {
                "error_type": "pc_loss",
                "fit_rohf": false,
                "fit_rohf_N": 7,
                "fit_rohf_tausweep_IIC": 1.0,
                "interpolate_error_map": false,
                "produce_error_map": false
              },
              "simulations_csv": null,
              "sort": {
                "apply_sort": false,
                "sort_key": null
              }
            }
          }
        }
      },
      "required": [
        "type"
      ],
      "title": "CACStrand",
      "type": "object"
    },
    "CACStrandGeometry": {
      "description": "Level 2: Class for strand geometry parameters",
      "properties": {
        "io_settings": {
          "$ref": "#/$defs/CACStrandGeometryIOsettings",
          "default": {
            "load": {
              "filename": null,
              "load_from_yaml": false
            },
            "save": {
              "filename": null,
              "save_to_yaml": false
            }
          }
        },
        "hexagonal_filaments": {
          "oneOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Field for specifying the shape of the filaments. True for hexagonal, False for circular.",
          "title": "Hexagonal Filaments"
        },
        "hexagonal_holes": {
          "oneOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Field for specifying the shape of the filament holes. True for hexagonal, False for circular.",
          "title": "Hexagonal Holes"
        },
        "filament_circular_distribution": {
          "oneOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Field for specifying the geometrical distribution of the filaments. Set True to distribute the filaments in a circular pattern and False to distribute them in a hexagonal pattern.",
          "title": "Filament Circular Distribution"
        },
        "air_radius": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Radius of the circular numerical air region (m).",
          "title": "Air Radius"
        },
        "type": {
          "default": "strand_only",
          "description": "Type of model geometry which will be generated. Supported options are: strand_only, periodic_squarestrand_only models the strand in an circular air domain (natural boundary condition)periodic_square models the strand in an square air domain (periodic boundary condition)coil models a single coil winding in open space (uses hybrid boundary conditions)",
          "enum": [
            "strand_only",
            "periodic_square",
            "coil"
          ],
          "title": "Type",
          "type": "string"
        },
        "coil_radius": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "used in geometry type 'coil' to determine the distance from strand center to mirroring plane (m). Should always be bigger than strand radius.",
          "title": "Coil Radius"
        },
        "rotate_angle": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Rotates strand geometry by specified angle in deg counterclockwise around the z axis and x=0 and y=0",
          "title": "Rotate Angle"
        }
      },
      "title": "CACStrandGeometry",
      "type": "object"
    },
    "CACStrandGeometryIOsettings": {
      "description": "Level 2: Class for Input/Output settings for the cable geometry",
      "properties": {
        "load": {
          "$ref": "#/$defs/CACStrandIOsettingsLoad",
          "default": {
            "load_from_yaml": false,
            "filename": null
          }
        },
        "save": {
          "$ref": "#/$defs/CACStrandIOsettingsSave",
          "default": {
            "save_to_yaml": false,
            "filename": null
          }
        }
      },
      "title": "CACStrandGeometryIOsettings",
      "type": "object"
    },
    "CACStrandIOsettingsLoad": {
      "description": "Level 3: Class for Input/Output settings for the cable geometry",
      "properties": {
        "load_from_yaml": {
          "oneOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": false,
          "description": "True to load the geometry from a YAML file, false to generate the geometry.",
          "title": "Load From Yaml"
        },
        "filename": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Name of the YAML file from which to load the geometry.",
          "title": "Filename"
        }
      },
      "title": "CACStrandIOsettingsLoad",
      "type": "object"
    },
    "CACStrandIOsettingsSave": {
      "description": "Level 3: Class for Input/Output settings for the cable geometry",
      "properties": {
        "save_to_yaml": {
          "oneOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": false,
          "description": "True to save the geometry to a YAML-file, false to not save the geometry.",
          "title": "Save To Yaml"
        },
        "filename": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Name of the output geometry YAML file.",
          "title": "Filename"
        }
      },
      "title": "CACStrandIOsettingsSave",
      "type": "object"
    },
    "CACStrandMesh": {
      "description": "Level 2: Class for FiQuS ConductorAC",
      "properties": {
        "scaling_global": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 1,
          "description": "Global scaling factor for mesh size.",
          "title": "Scaling Global"
        },
        "filaments": {
          "$ref": "#/$defs/CACStrandMeshFilaments",
          "default": {
            "boundary_mesh_size_ratio": null,
            "center_mesh_size_ratio": null,
            "amplitude_dependent_scaling": false,
            "field_penetration_depth_scaling_factor": null,
            "desired_elements_in_field_penetration_region": null
          }
        },
        "matrix": {
          "$ref": "#/$defs/CACStrandMeshMatrix",
          "default": {
            "mesh_size_matrix_ratio_inner": null,
            "mesh_size_matrix_ratio_middle": null,
            "mesh_size_matrix_ratio_outer": null,
            "interpolation_distance_from_filaments_ratio": null,
            "rate_dependent_scaling_matrix": false,
            "skindepth_scaling_factor": null,
            "desired_elements_in_skindepth": null,
            "force_center_symmetry": false
          }
        },
        "air": {
          "$ref": "#/$defs/CACStrandMeshAir",
          "default": {
            "max_mesh_size_ratio": null
          }
        }
      },
      "title": "CACStrandMesh",
      "type": "object"
    },
    "CACStrandMeshAir": {
      "description": "Level 3: Class for FiQuS ConductorAC",
      "properties": {
        "max_mesh_size_ratio": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Mesh size at the outer boundary of the air region, relative to the filament radius. E.g. 10 means that the mesh size is 10 times the filament radius.",
          "title": "Max Mesh Size Ratio"
        }
      },
      "title": "CACStrandMeshAir",
      "type": "object"
    },
    "CACStrandMeshFilaments": {
      "description": "Level 3: Class for FiQuS ConductorAC",
      "properties": {
        "boundary_mesh_size_ratio": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Mesh size at filament boundaries, relative to the radius of the filaments. E.g. 0.1 means that the mesh size is 0.1 times the filament radius.",
          "title": "Boundary Mesh Size Ratio"
        },
        "center_mesh_size_ratio": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Mesh size at filament center, relative to the radius of the filaments. E.g. 0.1 means that the mesh size is 0.1 times the filament radius.",
          "title": "Center Mesh Size Ratio"
        },
        "amplitude_dependent_scaling": {
          "oneOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": false,
          "description": "Amplitude dependent scaling uses the field amplitude to approximate the field penetration distance in the filaments to alter the filament mesh. If the field penetration distance is low (i.e. for low field amplitudes) this feature increases mesh density in the region where the field is expected to penetrate, and decreases the mesh resolution in the region where the field does not penetrate.",
          "title": "Amplitude Dependent Scaling"
        },
        "field_penetration_depth_scaling_factor": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Scaling factor for the estimate of the field penetration depth, used for amplitude dependent scaling. ",
          "title": "Field Penetration Depth Scaling Factor"
        },
        "desired_elements_in_field_penetration_region": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Desired number of elements in the field penetration region. This parameter is used for amplitude dependent scaling, and determines the number of elements in the region where the field is expected to penetrate.",
          "title": "Desired Elements In Field Penetration Region"
        }
      },
      "title": "CACStrandMeshFilaments",
      "type": "object"
    },
    "CACStrandMeshMatrix": {
      "description": "Level 3: Class for FiQuS ConductorAC",
      "properties": {
        "mesh_size_matrix_ratio_inner": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Mesh size at the matrix center, relative to the filament radius.",
          "title": "Mesh Size Matrix Ratio Inner"
        },
        "mesh_size_matrix_ratio_middle": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Mesh size at the matrix middle partition, relative to the filament radius.",
          "title": "Mesh Size Matrix Ratio Middle"
        },
        "mesh_size_matrix_ratio_outer": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Mesh size at the matrix outer boundary, relative to the filament radius.",
          "title": "Mesh Size Matrix Ratio Outer"
        },
        "interpolation_distance_from_filaments_ratio": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The mesh size is interpolated from the filament boundaries into the matrix, over a given distance. This parameter determines the distance over which the mesh size is interpolated.",
          "title": "Interpolation Distance From Filaments Ratio"
        },
        "rate_dependent_scaling_matrix": {
          "oneOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": false,
          "description": "Rate dependent scaling uses the expected skin depth in the matrix to determine the matrix mesh. If the skin depth is low (i.e. for high frequencies) this feature increases mesh density in the region where the current is expected to flow, while decreasing the mesh resolution in the region where the current is not expected to flow.",
          "title": "Rate Dependent Scaling Matrix"
        },
        "skindepth_scaling_factor": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Scaling factor for the estimate of the skin depth, used for rate dependent scaling.",
          "title": "Skindepth Scaling Factor"
        },
        "desired_elements_in_skindepth": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Desired number of elements in the skin depth region. This parameter is used for rate dependent scaling, and determines the number of elements in the region where the current is expected to flow.",
          "title": "Desired Elements In Skindepth"
        },
        "force_center_symmetry": {
          "oneOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": false,
          "description": "This option can be set in strands without center filament to enforce a cross of symmetric nodes in the center of the strand mesh - used within Glock thesis.",
          "title": "Force Center Symmetry"
        }
      },
      "title": "CACStrandMeshMatrix",
      "type": "object"
    },
    "CACStrandPostproc": {
      "description": "Level 2: Class for FiQuS ConductorAC",
      "properties": {
        "pos_files": {
          "$ref": "#/$defs/CACStrandPostprocPosFiles",
          "default": {
            "quantities": [],
            "regions": []
          },
          "description": "Entries controlling output of .pos files. If None or empty lists are given, no .pos files are written. Note that not all combinations of quantities and regions make sense."
        },
        "compute_current_per_filament": {
          "default": false,
          "description": "Computes current in every filament, with decomposition into magnetization and transport current.",
          "title": "Compute Current Per Filament",
          "type": "boolean"
        },
        "output_folder": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": "Results",
          "description": "Batch post-processing creates a folder with the given name in the output directory, where all the plots are saved.",
          "title": "Output Folder"
        },
        "generate_report": {
          "oneOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": false,
          "description": "Generates a PDF report including all postprocessing graphs. File is saved in the output_folder.",
          "title": "Generate Report"
        },
        "cleanup": {
          "$ref": "#/$defs/CACStrandPostprocCleanup",
          "default": {
            "remove_pre_file": false,
            "remove_res_file": false,
            "remove_msh_file": false
          }
        },
        "plot_flux": {
          "$ref": "#/$defs/CACStrandPostprocPlotFlux",
          "default": {
            "show": false,
            "rohf": false,
            "rohf_file": null,
            "rohf_N": null,
            "rohf_kappa_spacing": null
          }
        },
        "plot_instantaneous_power": {
          "$ref": "#/$defs/CACStrandPostprocPlotInstPower",
          "default": {
            "show": false,
            "title": "Instantaneous Power",
            "save": false,
            "save_file_name": "instantaneous_power"
          }
        },
        "batch_postproc": {
          "$ref": "#/$defs/CACStrandPostprocBatchpostproc",
          "default": {
            "simulations_csv": null,
            "fluxmodels_csv": null,
            "filter": {
              "apply_filter": false,
              "filter_criterion": null
            },
            "sort": {
              "apply_sort": false,
              "sort_key": null
            },
            "loss_map": {
              "cross_section": {
                "axis_to_cut": "x",
                "cut_value": 0.0,
                "filename": "cross_section",
                "plot_cross_section": false,
                "save_plot": false,
                "title": null,
                "ylabel": "Loss"
              },
              "cross_section_sweep": {
                "animate_cross_section_sweep": false,
                "axis_to_sweep": "x",
                "filename": "crossSectionSweep",
                "save_plot": false,
                "title": null,
                "ylabel": "Loss"
              },
              "filename": "loss_map",
              "loss_log": true,
              "loss_norm": 1.0,
              "loss_type": "TotalLoss",
              "produce_loss_map": false,
              "save_plot": false,
              "show_datapoints": true,
              "show_loss_type_dominance_contour": false,
              "title": null,
              "x_log": true,
              "x_norm": 1.0,
              "x_steps": 20,
              "x_val": null,
              "xlabel": null,
              "y_log": true,
              "y_norm": 1.0,
              "y_steps": 20,
              "y_val": null,
              "ylabel": null
            },
            "rohf_on_grid": {
              "error_type": "pc_loss",
              "fit_rohf": false,
              "fit_rohf_N": 7,
              "fit_rohf_tausweep_IIC": 1.0,
              "interpolate_error_map": false,
              "produce_error_map": false
            },
            "plot2d": {
              "combined_plot": false,
              "filename": "plot2d",
              "labels": null,
              "legend": true,
              "linestyle": null,
              "produce_plot2d": false,
              "reference_label": null,
              "reference_vals": null,
              "save_pgfdata": false,
              "save_plot": false,
              "title": null,
              "x_log": false,
              "x_val": null,
              "xlabel": null,
              "y_log": false,
              "y_val_fluxmodel": null,
              "y_vals": null,
              "ylabel": null
            }
          }
        }
      },
      "title": "CACStrandPostproc",
      "type": "object"
    },
    "CACStrandPostprocBatchpostproc": {
      "description": "Level 3: Class for batch post-processing settings",
      "properties": {
        "simulations_csv": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Name of the .csv file for post-processing (without file extension). This file specifies the simulations to be post-processed. The file is structured into three columns, specifying the folder names to access the simulation results: 'input.run.geometry', 'input.run.mesh' and 'input.run.solve'. Each row corresponds to a simulation to be post-processed.",
          "title": "Simulations Csv"
        },
        "fluxmodels_csv": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Name of the .csv file for post-processing (without file extension). This file specifies the fluxmodels to be post-processed. The file is structured into three columns, specifying the folder names to access the simulation results: 'input.run.geometry', 'input.run.mesh' and 'input.run.solve'. Each row corresponds to a simulation to be post-processed.",
          "title": "Fluxmodels Csv"
        },
        "filter": {
          "$ref": "#/$defs/CACStrandPostprocBatchpostprocFilter",
          "default": {
            "apply_filter": false,
            "filter_criterion": null
          }
        },
        "sort": {
          "$ref": "#/$defs/CACStrandPostprocBatchpostprocSort",
          "default": {
            "apply_sort": false,
            "sort_key": null
          }
        },
        "loss_map": {
          "$ref": "#/$defs/CACStrandPostprocBatchpostprocLossMap",
          "default": {
            "produce_loss_map": false,
            "save_plot": false,
            "filename": "loss_map",
            "x_val": null,
            "y_val": null,
            "x_steps": 20,
            "y_steps": 20,
            "loss_type": "TotalLoss",
            "x_log": true,
            "y_log": true,
            "loss_log": true,
            "x_norm": 1.0,
            "y_norm": 1.0,
            "loss_norm": 1.0,
            "show_datapoints": true,
            "title": null,
            "xlabel": null,
            "ylabel": null,
            "show_loss_type_dominance_contour": false,
            "cross_section": {
              "axis_to_cut": "x",
              "cut_value": 0.0,
              "filename": "cross_section",
              "plot_cross_section": false,
              "save_plot": false,
              "title": null,
              "ylabel": "Loss"
            },
            "cross_section_sweep": {
              "animate_cross_section_sweep": false,
              "axis_to_sweep": "x",
              "filename": "crossSectionSweep",
              "save_plot": false,
              "title": null,
              "ylabel": "Loss"
            }
          }
        },
        "rohf_on_grid": {
          "$ref": "#/$defs/CACStrandPostprocBatchpostprocROHFgrid",
          "default": {
            "produce_error_map": false,
            "interpolate_error_map": false,
            "error_type": "pc_loss",
            "fit_rohf": false,
            "fit_rohf_N": 7,
            "fit_rohf_tausweep_IIC": 1.0
          }
        },
        "plot2d": {
          "$ref": "#/$defs/CACStrandPostprocBatchpostprocPlot2d",
          "default": {
            "produce_plot2d": false,
            "combined_plot": false,
            "save_pgfdata": false,
            "save_plot": false,
            "filename": "plot2d",
            "x_val": null,
            "y_vals": null,
            "y_val_fluxmodel": null,
            "reference_vals": null,
            "reference_label": null,
            "labels": null,
            "linestyle": null,
            "title": null,
            "xlabel": null,
            "ylabel": null,
            "x_log": false,
            "y_log": false,
            "legend": true
          }
        }
      },
      "title": "CACStrandPostprocBatchpostproc",
      "type": "object"
    },
    "CACStrandPostprocBatchpostprocFilter": {
      "description": "Level 4: Field for filtering simulations based on simulation parameters for batch post-processing",
      "properties": {
        "apply_filter": {
          "default": false,
          "description": "Set True to filter simulations by parameters from the input YAML-file.",
          "title": "Apply Filter",
          "type": "boolean"
        },
        "filter_criterion": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Criterion used to filter simulations based on simulation parameters. For example will '<<solve.source_parameters.sine.frequency>> > 100' disregard simulations done with frequencies lower than 100Hz.",
          "title": "Filter Criterion"
        }
      },
      "title": "CACStrandPostprocBatchpostprocFilter",
      "type": "object"
    },
    "CACStrandPostprocBatchpostprocLossMap": {
      "description": "Level 4: Class with settings for generating loss maps",
      "properties": {
        "produce_loss_map": {
          "default": false,
          "description": "Set True to produce a loss map.",
          "title": "Produce Loss Map",
          "type": "boolean"
        },
        "save_plot": {
          "default": false,
          "description": "Set True to save the plot.",
          "title": "Save Plot",
          "type": "boolean"
        },
        "filename": {
          "default": "loss_map",
          "description": "Name of the plot file.",
          "title": "Filename",
          "type": "string"
        },
        "x_val": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Parameter to be plotted on the x-axis. This field corresponds to a parameter in the input YAML-file. E.g. 'solve.source_parameters.sine.frequency' will plot the loss map for different frequencies.",
          "title": "X Val"
        },
        "y_val": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Parameter to be plotted on the y-axis. This field corresponds to a parameter in the input YAML-file. E.g. 'solve.source_parameters.sine.field_amplitude' will plot the loss map for different applied field amplitudes.",
          "title": "Y Val"
        },
        "x_steps": {
          "default": 20,
          "description": "Number of steps on the x-axis.",
          "title": "X Steps",
          "type": "integer"
        },
        "y_steps": {
          "default": 20,
          "description": "Number of steps on the y-axis.",
          "title": "Y Steps",
          "type": "integer"
        },
        "loss_type": {
          "default": "TotalLoss",
          "description": "Type of loss to be plotted. Supported options are: TotalLoss, FilamentLoss, CouplingLoss, EddyLoss.",
          "enum": [
            "TotalLoss",
            "FilamentLoss",
            "CouplingLoss",
            "EddyLoss"
          ],
          "title": "Loss Type",
          "type": "string"
        },
        "x_log": {
          "default": true,
          "description": "Set True to plot x-axis in log-scale.",
          "title": "X Log",
          "type": "boolean"
        },
        "y_log": {
          "default": true,
          "description": "Set True to plot y-axis in log-scale.",
          "title": "Y Log",
          "type": "boolean"
        },
        "loss_log": {
          "default": true,
          "description": "Set True to plot loss in log-scale.",
          "title": "Loss Log",
          "type": "boolean"
        },
        "x_norm": {
          "default": 1,
          "description": "Normalization factor for x-axis.",
          "title": "X Norm",
          "type": "number"
        },
        "y_norm": {
          "default": 1,
          "description": "Normalization factor for y-axis.",
          "title": "Y Norm",
          "type": "number"
        },
        "loss_norm": {
          "default": 1,
          "description": "Normalization factor for the AC-loss.",
          "title": "Loss Norm",
          "type": "number"
        },
        "show_datapoints": {
          "default": true,
          "description": "Set True to show markers for all the datapoints in the loss map.",
          "title": "Show Datapoints",
          "type": "boolean"
        },
        "title": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Title for the plot.",
          "title": "Title"
        },
        "xlabel": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Label for the x-axis.",
          "title": "Xlabel"
        },
        "ylabel": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Label for the y-axis.",
          "title": "Ylabel"
        },
        "show_loss_type_dominance_contour": {
          "default": false,
          "description": "Set True to plot a contour curve separating regions where different loss types dominate. ",
          "title": "Show Loss Type Dominance Contour",
          "type": "boolean"
        },
        "cross_section": {
          "$ref": "#/$defs/CACStrandPostprocBatchpostprocLossMapCrossSection",
          "default": {
            "plot_cross_section": false,
            "save_plot": false,
            "filename": "cross_section",
            "axis_to_cut": "x",
            "cut_value": 0.0,
            "ylabel": "Loss",
            "title": null
          }
        },
        "cross_section_sweep": {
          "$ref": "#/$defs/CACStrandPostprocBatchpostprocLossMapCrossSectionSweep",
          "default": {
            "animate_cross_section_sweep": false,
            "save_plot": false,
            "filename": "crossSectionSweep",
            "axis_to_sweep": "x",
            "ylabel": "Loss",
            "title": null
          }
        }
      },
      "title": "CACStrandPostprocBatchpostprocLossMap",
      "type": "object"
    },
    "CACStrandPostprocBatchpostprocLossMapCrossSection": {
      "description": "Level 5: Class with settings for plotting a cross-section of the loss map.",
      "properties": {
        "plot_cross_section": {
          "default": false,
          "description": "Set True to plot a cross-section of the loss map.",
          "title": "Plot Cross Section",
          "type": "boolean"
        },
        "save_plot": {
          "default": false,
          "description": "Set True to save the plot.",
          "title": "Save Plot",
          "type": "boolean"
        },
        "filename": {
          "default": "cross_section",
          "description": "Name of the plot file.",
          "title": "Filename",
          "type": "string"
        },
        "axis_to_cut": {
          "default": "x",
          "description": "Axis to cut for the cross-section.",
          "title": "Axis To Cut",
          "type": "string"
        },
        "cut_value": {
          "default": 0,
          "description": "Value of the axis to cut for the cross-section.",
          "title": "Cut Value",
          "type": "number"
        },
        "ylabel": {
          "default": "Loss",
          "description": "Label of the y-axis.",
          "title": "Ylabel",
          "type": "string"
        },
        "title": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Title of the plot. The placeholder <<cut_value>> can be used to indicate the value of the cut axis.",
          "title": "Title"
        }
      },
      "title": "CACStrandPostprocBatchpostprocLossMapCrossSection",
      "type": "object"
    },
    "CACStrandPostprocBatchpostprocLossMapCrossSectionSweep": {
      "description": "Level 5: Class with settings for animating a cross-section sweep of the loss map along one axis.",
      "properties": {
        "animate_cross_section_sweep": {
          "default": false,
          "description": "Set True to animate a cross-section sweep of the loss map along one axis.",
          "title": "Animate Cross Section Sweep",
          "type": "boolean"
        },
        "save_plot": {
          "default": false,
          "description": "Set True to save the animation.",
          "title": "Save Plot",
          "type": "boolean"
        },
        "filename": {
          "default": "crossSectionSweep",
          "description": "Name of the animation file.",
          "title": "Filename",
          "type": "string"
        },
        "axis_to_sweep": {
          "default": "x",
          "description": "Axis to sweep for the animation.",
          "title": "Axis To Sweep",
          "type": "string"
        },
        "ylabel": {
          "default": "Loss",
          "description": "Label of the y-axis.",
          "title": "Ylabel",
          "type": "string"
        },
        "title": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Title of the plot. Use <<sweep_value>> to indicate the value of the sweep axis.",
          "title": "Title"
        }
      },
      "title": "CACStrandPostprocBatchpostprocLossMapCrossSectionSweep",
      "type": "object"
    },
    "CACStrandPostprocBatchpostprocPlot2d": {
      "description": "Level 4: Class for 2D plot settings",
      "properties": {
        "produce_plot2d": {
          "default": false,
          "description": "Set True to produce a 2D plot.",
          "title": "Produce Plot2D",
          "type": "boolean"
        },
        "combined_plot": {
          "default": false,
          "description": "Set True to produce a combined plot for all simulations. If False, a separate plot is produced for each simulation.",
          "title": "Combined Plot",
          "type": "boolean"
        },
        "save_pgfdata": {
          "default": false,
          "description": "Set True to export the plot data in pgfplot readable .txt format stored in output_folder. Currently only supports combined plots.",
          "title": "Save Pgfdata",
          "type": "boolean"
        },
        "save_plot": {
          "default": false,
          "description": "Set True to save the plot.",
          "title": "Save Plot",
          "type": "boolean"
        },
        "filename": {
          "default": "plot2d",
          "description": "Name of the plot file.",
          "title": "Filename",
          "type": "string"
        },
        "x_val": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Value to be plotted on the x-axis. Parameters in the input YAML-file and class-variables from the plotter 'SimulationData' class can be accessed trough dot notation 'simulation.' E.g. 'simulation.f' will create a 2D plot with sine source frequency on the x-axis. 'simulation.time' will create a plot with time on the x-axis.",
          "title": "X Val"
        },
        "y_vals": {
          "oneOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": " List of values to be plotted on the y-axis. Parameters in the input YAML-file and class-variables from the plotter 'SimulationData' class can be accessed trough dot notation 'simulation.' E.g. total AC-loss per cycle can be accessed as ['simulation.total_power_per_cycle['TotalLoss_dyn']'].",
          "title": "Y Vals"
        },
        "y_val_fluxmodel": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": " Attribute of the 'ROHFmodel' class which is plotted on the y-axis. Access via dot notation with 'fluxmodel.' and 'simulation.' E.g. ROHF computed flux - 'fluxmodel.compute(I=simulation.I_transport,time=simulation.time)[0]'",
          "title": "Y Val Fluxmodel"
        },
        "reference_vals": {
          "oneOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "reference values as set of two list [xvals, yvals] which will be plotted in the combined plot (For reference curves)",
          "title": "Reference Vals"
        },
        "reference_label": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "label text for the reference data in the plot legend",
          "title": "Reference Label"
        },
        "labels": {
          "oneOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "List of labels for the plot. Each label corresponding to a value in y_val.",
          "title": "Labels"
        },
        "linestyle": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Linestyle for the plot.",
          "title": "Linestyle"
        },
        "title": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Title for the plot.",
          "title": "Title"
        },
        "xlabel": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Label for the x-axis.",
          "title": "Xlabel"
        },
        "ylabel": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Label for the y-axis.",
          "title": "Ylabel"
        },
        "x_log": {
          "default": false,
          "description": "Set True to plot x-axis in log-scale.",
          "title": "X Log",
          "type": "boolean"
        },
        "y_log": {
          "default": false,
          "description": "Set True to plot y-axis in log-scale.",
          "title": "Y Log",
          "type": "boolean"
        },
        "legend": {
          "default": true,
          "description": "Set True to show legend.",
          "title": "Legend",
          "type": "boolean"
        }
      },
      "title": "CACStrandPostprocBatchpostprocPlot2d",
      "type": "object"
    },
    "CACStrandPostprocBatchpostprocROHFgrid": {
      "description": "Level 4: Class with settings to perform actions on a ROHF model based on a grid of simulations.",
      "properties": {
        "produce_error_map": {
          "default": false,
          "description": "Set True to produce a error map of the definced error_type. If the fit_rohf option is enabled it will compute the map for the new ROHF model ignoring everything in the fluxmodel.csv.",
          "title": "Produce Error Map",
          "type": "boolean"
        },
        "interpolate_error_map": {
          "default": false,
          "description": "Interpolate colormap linear between the computed values (graphical purposes)",
          "title": "Interpolate Error Map",
          "type": "boolean"
        },
        "error_type": {
          "default": "pc_loss",
          "description": "realtive error metric displayed by the map. Options: pc_loss, flux, dyn_loss",
          "title": "Error Type",
          "type": "string"
        },
        "fit_rohf": {
          "default": false,
          "description": "Fit a ROHF model on the simulation grid given in the simulation.csv",
          "title": "Fit Rohf",
          "type": "boolean"
        },
        "fit_rohf_N": {
          "oneOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": 7,
          "description": "Number of ROHF cells to use for the fit. Default is 7.",
          "title": "Fit Rohf N"
        },
        "fit_rohf_tausweep_IIC": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 1.0,
          "description": "I/Ic ratio used to fit the ratedependence parameters (taus).",
          "title": "Fit Rohf Tausweep Iic"
        }
      },
      "title": "CACStrandPostprocBatchpostprocROHFgrid",
      "type": "object"
    },
    "CACStrandPostprocBatchpostprocSort": {
      "description": "Level 4: Field for sorting simulations based on simulation parameters for batch post-processing",
      "properties": {
        "apply_sort": {
          "default": false,
          "description": "Set True to sort simulations.",
          "title": "Apply Sort",
          "type": "boolean"
        },
        "sort_key": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Criterion used to sort simulations based on simulation parameters. For example will 'sd.total_power_per_cycle['TotalLoss'] sort simulations based on the total loss.",
          "title": "Sort Key"
        }
      },
      "title": "CACStrandPostprocBatchpostprocSort",
      "type": "object"
    },
    "CACStrandPostprocCleanup": {
      "description": "Level 3: Class for cleanup settings",
      "properties": {
        "remove_pre_file": {
          "default": false,
          "description": "Set True to remove the .pre-file after post-processing, to save disk space.",
          "title": "Remove Pre File",
          "type": "boolean"
        },
        "remove_res_file": {
          "default": false,
          "description": "Set True to remove the .res-file after post-processing, to save disk space.",
          "title": "Remove Res File",
          "type": "boolean"
        },
        "remove_msh_file": {
          "default": false,
          "description": "Set True to remove the .msh-file after post-processing, to save disk space.",
          "title": "Remove Msh File",
          "type": "boolean"
        }
      },
      "title": "CACStrandPostprocCleanup",
      "type": "object"
    },
    "CACStrandPostprocPlotFlux": {
      "description": "Level 3: Class with settings flux related plots and the related - reduced order hysteretic flux (ROHF) model.\nThe ROHF model can either be initialized from a predefined parameter file or freshly fitted on the solution with a given number_of_cells and kappa_spacing_type (will not be rate dependent).",
      "properties": {
        "show": {
          "oneOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": false,
          "description": "Enable flux related plots.",
          "title": "Show"
        },
        "rohf": {
          "oneOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": false,
          "description": "Enable ROHF model.",
          "title": "Rohf"
        },
        "rohf_file": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Name of a .txt file in the geometry folder containing tau, kappa and alpha values. The file has to be structured into three columns (separated by whitespaces) with the preliminary header-row 'taus kappas alphas'. Each row corresponds to one cell of the multicell ROHF model.",
          "title": "Rohf File"
        },
        "rohf_N": {
          "oneOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Total number of cells (N) for the ROHF model. If a parameter_file_name is given this option will be disregarded in favour of the parameterfile definitions.",
          "title": "Rohf N"
        },
        "rohf_kappa_spacing": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Spacing strategy for the N kappa values of the ROHF model. Options: 'linear', 'log', 'invlog' if left blank it will set the kappa interval based on a error minimization. If a parameter_file_name is given this option will be disregarded in favour of the parameterfile definitions.",
          "title": "Rohf Kappa Spacing"
        }
      },
      "title": "CACStrandPostprocPlotFlux",
      "type": "object"
    },
    "CACStrandPostprocPlotInstPower": {
      "description": "Level 3: Class with settings for generating plots of instantaneous power",
      "properties": {
        "show": {
          "default": false,
          "description": "Creates a plot for the calculated instantaneous AC loss (W/m) as a function of time (s).",
          "title": "Show",
          "type": "boolean"
        },
        "title": {
          "default": "Instantaneous Power",
          "description": "Title for the plot.",
          "title": "Title",
          "type": "string"
        },
        "save": {
          "default": false,
          "description": "Set True to save the plot.",
          "title": "Save",
          "type": "boolean"
        },
        "save_file_name": {
          "default": "instantaneous_power",
          "description": "Name of the plot file.",
          "title": "Save File Name",
          "type": "string"
        }
      },
      "title": "CACStrandPostprocPlotInstPower",
      "type": "object"
    },
    "CACStrandPostprocPosFiles": {
      "description": "Level 3: Class for cleanup settings",
      "properties": {
        "quantities": {
          "oneOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "List of GetDP postprocessing quantity to write to .pos file. Examples of valid entry is: phi, h, b, b_reaction, j, jz, jc, power_filaments, power_matrix, sigma_matrix, j_plane, v_plane, hsVal",
          "title": "Quantities"
        },
        "regions": {
          "oneOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "List of GetDP region to to write to .pos file postprocessing for. Examples of valid entry is: Matrix, Filaments, Omega (full domain), OmegaC (conducting domain), OmegaCC (non conducting domain)",
          "title": "Regions"
        }
      },
      "title": "CACStrandPostprocPosFiles",
      "type": "object"
    },
    "CACStrandSolve": {
      "description": "Level 2: Class for FiQuS ConductorAC Strand solver settings",
      "properties": {
        "pro_template": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": "CAC_Strand_template.pro",
          "description": "Name of the .pro template file.",
          "title": "Pro Template"
        },
        "conductor_name": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Name of the conductor. Must match a conductor name in the conductors section of the input YAML-file.",
          "title": "Conductor Name"
        },
        "formulation_parameters": {
          "$ref": "#/$defs/CACStrandSolveFormulationparameters",
          "default": {
            "formulation": "CATI",
            "dynamic_correction": true,
            "compute_temperature": false,
            "two_ell_periodicity": true
          }
        },
        "general_parameters": {
          "$ref": "#/$defs/CACStrandSolveGeneralparameters",
          "default": {
            "temperature": 1.9,
            "superconductor_linear": false,
            "noOfMPITasks": false
          }
        },
        "initial_conditions": {
          "$ref": "#/$defs/CACStrandSolveInitialconditions",
          "default": {
            "init_type": "virgin",
            "solution_to_init_from": null
          }
        },
        "diffusion_barriers": {
          "$ref": "#/$defs/CACStrandSolveDiffusionBarriers",
          "default": {
            "enable": false,
            "load_data_from_yaml": false,
            "resistivity": 1e-6,
            "thickness": 1e-6
          }
        },
        "global_diffusion_barrier": {
          "$ref": "#/$defs/CACStrandSolveDiffusionBarriers",
          "default": {
            "enable": false,
            "load_data_from_yaml": false,
            "resistivity": 1e-6,
            "thickness": 1e-6
          },
          "description": "Additional diffusion barrier around all filaments together (global).This is created on a line between two strand matrix regions.One around the filaments and the other for the external ring."
        },
        "source_parameters": {
          "$ref": "#/$defs/CACStrandSolveSourceparameters",
          "default": {
            "source_type": "sine",
            "sine": {
              "current_amplitude": null,
              "field_amplitude": null,
              "frequency": null,
              "superimposed_DC": {
                "current_magnitude": 0.0,
                "field_magnitude": 0.0
              }
            },
            "piecewise": {
              "applied_field_multiplier": null,
              "applied_fields_relative": null,
              "source_csv_file": null,
              "time_multiplier": null,
              "times": null,
              "transport_current_multiplier": null,
              "transport_currents_relative": null
            },
            "rotating": {
              "field_magnitude": null,
              "frequency": null
            },
            "field_angle": 90.0
          }
        },
        "numerical_parameters": {
          "$ref": "#/$defs/CACStrandSolveNumericalparameters",
          "default": {
            "sine": {
              "number_of_periods_to_simulate": null,
              "timesteps_per_period": null
            },
            "piecewise": {
              "force_stepping_at_times_piecewise_linear": false,
              "max_timestep_piecewise_linear": null,
              "time_to_simulate": null,
              "times_max_timestep_piecewise_linear": null,
              "timesteps_per_time_to_simulate": null,
              "variable_max_timestep": false
            },
            "rotating": {
              "number_of_periods_to_simulate": null,
              "timesteps_per_period": null
            }
          }
        }
      },
      "title": "CACStrandSolve",
      "type": "object"
    },
    "CACStrandSolveDiffusionBarriers": {
      "properties": {
        "enable": {
          "oneOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": false,
          "description": "Set True to enable diffusion barriers.",
          "title": "Enable"
        },
        "load_data_from_yaml": {
          "oneOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": false,
          "description": "Set True to load the diffusion barrier data from the input YAML-file. Otherwise, the thickness and resistivity specified in this file are used.",
          "title": "Load Data From Yaml"
        },
        "resistivity": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 1e-6,
          "description": "Resistivity of the diffusion barriers (Ohm*m).",
          "title": "Resistivity"
        },
        "thickness": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 1e-6,
          "description": "Thickness of the diffusion barriers (m).",
          "title": "Thickness"
        }
      },
      "title": "CACStrandSolveDiffusionBarriers",
      "type": "object"
    },
    "CACStrandSolveFormulationparameters": {
      "description": "Level 3: Class for finite element formulation parameters",
      "properties": {
        "formulation": {
          "default": "CATI",
          "description": "Which formulation? CATI is the default and usual choice to model hysteresis/coupling/eddy currents with the CATI method. AI_uncoupled is a conventional 2D formulation with axial currents modelling UNCOUPLED filaments (and eddy currents in matrix).",
          "enum": [
            "CATI",
            "AI_uncoupled"
          ],
          "title": "Formulation",
          "type": "string"
        },
        "dynamic_correction": {
          "oneOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": true,
          "description": "With the CATI method, do we activate the dynamic correction?",
          "title": "Dynamic Correction"
        },
        "compute_temperature": {
          "oneOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": false,
          "description": "Do we compute the temperature?",
          "title": "Compute Temperature"
        },
        "two_ell_periodicity": {
          "oneOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": true,
          "description": "With CATI method: True to integrate over twice the shortest periodicity length (recommended), False to integrate over the shortest periodicity length (not recommended).",
          "title": "Two Ell Periodicity"
        }
      },
      "title": "CACStrandSolveFormulationparameters",
      "type": "object"
    },
    "CACStrandSolveGeneralparameters": {
      "description": "Level 3: Class for general parameters",
      "properties": {
        "temperature": {
          "default": 1.9,
          "description": "Temperature (K) of the strand.",
          "title": "Temperature",
          "type": "number"
        },
        "superconductor_linear": {
          "oneOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": false,
          "description": "For debugging: replace LTS by normal conductor.",
          "title": "Superconductor Linear"
        },
        "noOfMPITasks": {
          "oneOf": [
            {
              "type": "boolean"
            },
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": false,
          "description": "If integer, GetDP will be run in parallel using MPI. This is only valid if MPI is installed on the system and an MPI-enabled GetDP is used. If False, GetDP will be run in serial without invoking mpiexec.",
          "title": "No. of tasks for MPI parallel run of GetDP"
        }
      },
      "title": "CACStrandSolveGeneralparameters",
      "type": "object"
    },
    "CACStrandSolveInitialconditions": {
      "description": "Level 3: Class for initial conditions",
      "properties": {
        "init_type": {
          "oneOf": [
            {
              "enum": [
                "virgin",
                "pos_file",
                "uniform_field"
              ],
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": "virgin",
          "description": "Type of initialization for the simulation. (i) 'virgin' is the default type, the initial magnetic field is zero, (ii) 'pos_file' is to initialize from the solution of another solution, given by the solution_to_init_from entry, and (iii) 'uniform_field' is to initialize at a uniform field, which will be the applied field at the initial time of the simulation. Note that the uniform_field option does not allow any non-zero transport current.",
          "title": "Init Type"
        },
        "solution_to_init_from": {
          "oneOf": [
            {
              "type": "integer"
            },
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Name xxx of the solution from which the simulation should be initialized. The file last_magnetic_field.pos of folder Solution_xxx will be used for the initial solution. It must be in the Geometry_xxx/Mesh_xxx/ folder in which the Solution_xxx will be saved.",
          "title": "Solution To Init From"
        }
      },
      "title": "CACStrandSolveInitialconditions",
      "type": "object"
    },
    "CACStrandSolveNumericalparameters": {
      "description": "Level 3: Class for numerical parameters",
      "properties": {
        "sine": {
          "$ref": "#/$defs/CACStrandSolveNumericalparametersSine",
          "default": {
            "timesteps_per_period": null,
            "number_of_periods_to_simulate": null
          }
        },
        "piecewise": {
          "$ref": "#/$defs/CACStrandSolveNumericalparametersPiecewise",
          "default": {
            "time_to_simulate": null,
            "timesteps_per_time_to_simulate": null,
            "force_stepping_at_times_piecewise_linear": false,
            "variable_max_timestep": false,
            "times_max_timestep_piecewise_linear": null,
            "max_timestep_piecewise_linear": null
          }
        },
        "rotating": {
          "$ref": "#/$defs/CACStrandSolveNumericalparametersRotating",
          "default": {
            "timesteps_per_period": null,
            "number_of_periods_to_simulate": null
          }
        }
      },
      "title": "CACStrandSolveNumericalparameters",
      "type": "object"
    },
    "CACStrandSolveNumericalparametersPiecewise": {
      "description": "Level 4: Numerical parameters corresponding to the piecewise source",
      "properties": {
        "time_to_simulate": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Total time to simulate (s). Used for the piecewise source.",
          "title": "Time To Simulate"
        },
        "timesteps_per_time_to_simulate": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "If variable_max_timestep is False. Number of time steps (-) per period for the piecewise source.",
          "title": "Timesteps Per Time To Simulate"
        },
        "force_stepping_at_times_piecewise_linear": {
          "default": false,
          "description": "If True, time-stepping will contain exactly the time instants that are in the times_source_piecewise_linear list (to avoid truncation maximum applied field/current values).",
          "title": "Force Stepping At Times Piecewise Linear",
          "type": "boolean"
        },
        "variable_max_timestep": {
          "default": false,
          "description": "If False, the maximum time step is kept constant through the simulation. If True, it varies according to the piecewise definition.",
          "title": "Variable Max Timestep",
          "type": "boolean"
        },
        "times_max_timestep_piecewise_linear": {
          "oneOf": [
            {
              "items": {
                "type": "number"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Time instants (s) defining the piecewise linear maximum time step.",
          "title": "Times Max Timestep Piecewise Linear"
        },
        "max_timestep_piecewise_linear": {
          "oneOf": [
            {
              "items": {
                "type": "number"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Maximum time steps (s) at the times_max_timestep_piecewise_linear. Above the limits, linear extrapolation of the last two values.",
          "title": "Max Timestep Piecewise Linear"
        }
      },
      "title": "CACStrandSolveNumericalparametersPiecewise",
      "type": "object"
    },
    "CACStrandSolveNumericalparametersRotating": {
      "description": "Level 4: Numerical parameters corresponding to the sine source",
      "properties": {
        "timesteps_per_period": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Initial value for number of time steps (-) per period for source rotation. Determines the initial time step size.",
          "title": "Timesteps Per Period"
        },
        "number_of_periods_to_simulate": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Number of periods (-) to simulate for the source rotation.",
          "title": "Number Of Periods To Simulate"
        }
      },
      "title": "CACStrandSolveNumericalparametersRotating",
      "type": "object"
    },
    "CACStrandSolveNumericalparametersSine": {
      "description": "Level 4: Numerical parameters corresponding to the sine source",
      "properties": {
        "timesteps_per_period": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Initial value for number of time steps (-) per period for the sine source. Determines the initial time step size.",
          "title": "Timesteps Per Period"
        },
        "number_of_periods_to_simulate": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Number of periods (-) to simulate for the sine source.",
          "title": "Number Of Periods To Simulate"
        }
      },
      "title": "CACStrandSolveNumericalparametersSine",
      "type": "object"
    },
    "CACStrandSolveSourceparameters": {
      "description": "Level 3: Class for material properties",
      "properties": {
        "source_type": {
          "default": "sine",
          "description": "Time evolution of applied current and magnetic field. Supported options are: sine, sine_with_DC, piecewise_linear, from_list, rotating.",
          "enum": [
            "sine",
            "piecewise",
            "rotating"
          ],
          "title": "Source Type",
          "type": "string"
        },
        "sine": {
          "$ref": "#/$defs/CACStrandSolveSourceparametersSine",
          "default": {
            "frequency": null,
            "field_amplitude": null,
            "current_amplitude": null,
            "superimposed_DC": {
              "current_magnitude": 0.0,
              "field_magnitude": 0.0
            }
          }
        },
        "piecewise": {
          "$ref": "#/$defs/CACStrandSolveSourceparametersPiecewise",
          "default": {
            "source_csv_file": null,
            "times": null,
            "applied_fields_relative": null,
            "transport_currents_relative": null,
            "time_multiplier": null,
            "applied_field_multiplier": null,
            "transport_current_multiplier": null
          }
        },
        "rotating": {
          "$ref": "#/$defs/CACStrandSolveSourceparametersRotating",
          "default": {
            "frequency": null,
            "field_magnitude": null
          }
        },
        "field_angle": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 90,
          "description": "Angle of the source magnetic field, with respect to the x-axis (degrees).",
          "title": "Field Angle"
        }
      },
      "title": "CACStrandSolveSourceparameters",
      "type": "object"
    },
    "CACStrandSolveSourceparametersPiecewise": {
      "description": "Level 4: Class for piecewise (linear) source parameters",
      "properties": {
        "source_csv_file": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "File name for the from_file source type defining the time evolution of current and field (in-phase). Multipliers are used for each of them. The file should contain two columns: 'time' (s) and 'value' (field/current (T/A)), with these headers. If this field is set, times, applied_fields_relative and transport_currents_relative are ignored.",
          "title": "Source Csv File"
        },
        "times": {
          "oneOf": [
            {
              "items": {
                "type": "number"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Time instants (s) defining the piecewise linear sources. Used only if source_csv_file is not set. Can be scaled by time_multiplier.",
          "title": "Times"
        },
        "applied_fields_relative": {
          "oneOf": [
            {
              "items": {
                "type": "number"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Applied fields relative to multiplier applied_field_multiplier at the time instants 'times'. Used only if source_csv_file is not set.",
          "title": "Applied Fields Relative"
        },
        "transport_currents_relative": {
          "oneOf": [
            {
              "items": {
                "type": "number"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Transport currents relative to multiplier transport_current_multiplier at the time instants 'times'. Used only if source_csv_file is not set.",
          "title": "Transport Currents Relative"
        },
        "time_multiplier": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Multiplier for the time values in times (scales the time values). Also used for the time values in the source_csv_file.",
          "title": "Time Multiplier"
        },
        "applied_field_multiplier": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Multiplier for the applied fields in applied_fields_relative. Also used for the values in the source_csv_file.",
          "title": "Applied Field Multiplier"
        },
        "transport_current_multiplier": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Multiplier for the transport currents in transport_currents_relative. Also used for the values in the source_csv_file.",
          "title": "Transport Current Multiplier"
        }
      },
      "title": "CACStrandSolveSourceparametersPiecewise",
      "type": "object"
    },
    "CACStrandSolveSourceparametersRotating": {
      "description": "Level 4: Class for Rotating magnetic source field parameters",
      "properties": {
        "frequency": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Frequency of field rotation around z-axis",
          "title": "Frequency"
        },
        "field_magnitude": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "constant Magnitude of the rotating field (T).",
          "title": "Field Magnitude"
        }
      },
      "title": "CACStrandSolveSourceparametersRotating",
      "type": "object"
    },
    "CACStrandSolveSourceparametersSine": {
      "description": "Level 4: Class for Sine source parameters",
      "properties": {
        "frequency": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Frequency of the sine source (Hz).",
          "title": "Frequency"
        },
        "field_amplitude": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Amplitude of the sine field (T).",
          "title": "Field Amplitude"
        },
        "current_amplitude": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Amplitude of the sine current (A).",
          "title": "Current Amplitude"
        },
        "superimposed_DC": {
          "$ref": "#/$defs/CACStrandSolveSourceparametersSineSuperimposedDC",
          "default": {
            "field_magnitude": 0.0,
            "current_magnitude": 0.0
          }
        }
      },
      "title": "CACStrandSolveSourceparametersSine",
      "type": "object"
    },
    "CACStrandSolveSourceparametersSineSuperimposedDC": {
      "description": "Level 5: Class for superimposed DC field or current parameters for the sine source",
      "properties": {
        "field_magnitude": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 0.0,
          "description": "DC field magnitude (T), in the same direction as the AC applied field. Solution must be initialized with a non-zero field solution, either stored in a .pos file, or a uniform field, if non-zero DC field is used.",
          "title": "Field Magnitude"
        },
        "current_magnitude": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 0.0,
          "description": "DC current magnitude (A). Solution must be initialized with a non-zero field solution stored in a .pos file if non-zero DC current is used.",
          "title": "Current Magnitude"
        }
      },
      "title": "CACStrandSolveSourceparametersSineSuperimposedDC",
      "type": "object"
    },
    "CC": {
      "description": "Level 2: Class for coated conductor parameters",
      "properties": {
        "type": {
          "const": "CC",
          "title": "Type",
          "type": "string"
        },
        "HTS_thickness": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "HTS thickness in meters.",
          "title": "Hts Thickness"
        },
        "HTS_width": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "HTS width in meters.",
          "title": "Hts Width"
        },
        "number_of_filaments": {
          "oneOf": [
            {
              "minimum": 1,
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": 1,
          "description": "Number of HTS filaments. If 1, no striation case",
          "title": "Number Of Filaments"
        },
        "gap_between_filaments": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Gap between HTS filaments in meters. Only applies when number_of_filaments > 1.",
          "title": "Gap Between Filaments"
        },
        "substrate_thickness": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Substrate layer thickness in meters.",
          "title": "Substrate Thickness"
        },
        "copper_thickness": {
          "$ref": "#/$defs/Copper_thickness",
          "default": {
            "left": null,
            "right": null,
            "top": null,
            "bottom": null
          },
          "description": "Copper thickness in meters"
        },
        "silver_thickness": {
          "$ref": "#/$defs/Silver_thickness",
          "default": {
            "top": null,
            "bottom": null
          },
          "description": "Silver thickness in meters"
        },
        "material_superconductor": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Material of the superconductor. E.g. NbTi, Nb3Sn, etc.",
          "title": "Material Superconductor"
        },
        "n_value_superconductor": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "n value of the superconductor (for power law fit).",
          "title": "N Value Superconductor"
        },
        "ec_superconductor": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Critical electric field of the superconductor.",
          "title": "Ec Superconductor"
        },
        "minimum_jc_fraction": {
          "oneOf": [
            {
              "exclusiveMinimum": 0,
              "maximum": 1,
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Fraction of Jc(minimum_jc_field, T) to use as minimum Jc for the power law fit to avoid division by zero when Jc(B_local, T) decreases to zero.Typical value would be 0.001 (so the Jc_minimum is 0.1% of Jc(minimum_jc_field, T))This fraction is only allowed to be greater than 0.0 and less than or equal to 1.0",
          "title": "Minimum Jc Fraction"
        },
        "minimum_jc_field": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Magnetic flux density in tesla used for calculation of Jc(minimum_jc_field, T).This gets multiplied by minimum_jc_fraction and used as minimum Jc for the power law",
          "title": "Minimum Jc Field"
        },
        "k_material_superconductor": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Thermal conductivity of the superconductor.",
          "title": "K Material Superconductor"
        },
        "Cv_material_superconductor": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Material function for specific heat of the superconductor.",
          "title": "Cv Material Superconductor"
        },
        "k_material_stabilizer": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Thermal conductivity of the stabilizer, typically copper.",
          "title": "K Material Stabilizer"
        },
        "Cv_material_stabilizer": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Material function for specific heat of the stabilizer, typically copper.",
          "title": "Cv Material Stabilizer"
        },
        "rho_material_stabilizer": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Material function for resistivity of the stabilizer. Constant resistivity can be given as float.",
          "title": "Rho Material Stabilizer"
        },
        "RRR": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "items": {
                "type": "number"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Residual resistivity ratio of the stabilizer. If a list of RRR is provided it needs to match in length the number of matrix regions in the geometry (typically 3)",
          "title": "Rrr"
        },
        "T_ref_RRR_high": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Upper reference temperature for RRR measurements.",
          "title": "T Ref Rrr High"
        },
        "T_ref_RRR_low": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Lower reference temperature for RRR measurements.",
          "title": "T Ref Rrr Low"
        },
        "k_material_silver": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Thermal conductivity of the silver",
          "title": "K Material Silver"
        },
        "Cv_material_silver": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Material function for specific heat of the silver",
          "title": "Cv Material Silver"
        },
        "rho_material_silver": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Material function for resistivity of the silver. Constant resistivity can be given as float.",
          "title": "Rho Material Silver"
        },
        "RRR_silver": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "items": {
                "type": "number"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Residual resistivity ratio of the silver. If a list of RRR is provided it needs to match in length the number of matrix regions in the geometry (typically 3)",
          "title": "Rrr Silver"
        },
        "T_ref_RRR_high_silver": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Upper reference temperature for RRR measurements for silver.",
          "title": "T Ref Rrr High Silver"
        },
        "T_ref_RRR_low_silver": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Lower reference temperature for RRR measurements for silver.",
          "title": "T Ref Rrr Low Silver"
        },
        "rho_material_substrate": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Material function for resistivity of the substrate. Constant resistivity can be given as float.",
          "title": "Rho Material Substrate"
        },
        "k_material_substrate": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Thermal conductivity of the substrate.",
          "title": "K Material Substrate"
        },
        "Cv_material_substrate": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Material function for specific heat of the substrate.",
          "title": "Cv Material Substrate"
        }
      },
      "required": [
        "type"
      ],
      "title": "CC",
      "type": "object"
    },
    "CCPostProc": {
      "properties": {
        "variables_I": {
          "oneOf": [
            {
              "items": {
                "enum": [
                  "I_PC",
                  "I_1",
                  "I_2",
                  "I_cpc",
                  "I_crowbar",
                  "I_3",
                  "I_c_r",
                  "I_EE",
                  "I_c",
                  "I_s",
                  "I_C",
                  "I_EE_n",
                  "I_c_n",
                  "I_s_n",
                  "I_QH",
                  "I_EQ",
                  "I_ESC",
                  "I_A",
                  "I_B",
                  "I_ESC_Diode",
                  "I_ESC_C"
                ],
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": [],
          "description": "Currents from the circuit that will be exported as csv",
          "title": "Variables I"
        },
        "variables_U": {
          "oneOf": [
            {
              "items": {
                "enum": [
                  "PS_currentsource",
                  "PS_R_1",
                  "PS_L_1",
                  "PS_C",
                  "PS_R_3",
                  "PS_L_3",
                  "PS_R_2",
                  "PS_L_2",
                  "PS_R_crowbar",
                  "PS_Ud_crowbar",
                  "PS_L_crowbar",
                  "PS_R_c_r",
                  "PS_Ud_c_r",
                  "PS_L_c_r",
                  "circ_R_circuit",
                  "EE_L",
                  "EE_V_EE",
                  "EE_Ud_snubber",
                  "EE_C",
                  "EE_R_c",
                  "EE_L_c",
                  "EE_Ud_switch",
                  "EE_R_s",
                  "EE_L_s",
                  "EE_L_n",
                  "EE_V_EE_n",
                  "EE_Ud_snubber_n",
                  "EE_C_n",
                  "EE_R_c_n",
                  "EE_L_c_n",
                  "EE_Ud_switch_n",
                  "EE_R_s_n",
                  "EE_L_s_n",
                  "EE_R_switch",
                  "EE_R_switch_n",
                  "CLIQ_R",
                  "CLIQ_L",
                  "CLIQ_C",
                  "ECLIQ_currentsource",
                  "ECLIQ_L_leads",
                  "ECLIQ_R_leads",
                  "ESC_C1",
                  "ESC_C2",
                  "ESC_R_leads",
                  "ESC_R_unit",
                  "ESC_L",
                  "ESC_L_Diode",
                  "ESC_Ud_Diode"
                ],
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": [],
          "description": "Voltages from the circuit that will be exported as csv",
          "title": "Variables U"
        },
        "assemble_veusz": {
          "oneOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": false,
          "description": "It determines whether the post-processing data is assembled in a veusz file.",
          "title": "Assemble Veusz"
        }
      },
      "title": "CCPostProc",
      "type": "object"
    },
    "CCT": {
      "description": "Level 1: Class for FiQuS CCT",
      "properties": {
        "type": {
          "const": "CCT_straight",
          "default": "CCT_straight",
          "title": "Type",
          "type": "string"
        },
        "geometry": {
          "$ref": "#/$defs/GeometryCCTFiQuS",
          "default": {
            "windings": {
              "alphas": null,
              "lps": null,
              "n_turnss": null,
              "names": null,
              "ndpt_ins": null,
              "ndpt_outs": null,
              "ndpts": null,
              "r_wms": null,
              "wwhs": null,
              "wwws": null
            },
            "fqpls": {
              "fndpls": null,
              "fwhs": null,
              "fwws": null,
              "n_sbs": null,
              "names": [],
              "r_bs": null,
              "r_ins": null,
              "thetas": null,
              "z_ends": null,
              "z_starts": null
            },
            "formers": {
              "names": null,
              "r_ins": null,
              "r_outs": null,
              "z_maxs": null,
              "z_mins": null
            },
            "air": {
              "ar": null,
              "name": null,
              "sh_type": null,
              "z_max": null,
              "z_min": null
            }
          }
        },
        "mesh": {
          "$ref": "#/$defs/MeshCCT",
          "default": {
            "MaxAspectWindings": null,
            "ThresholdSizeMin": null,
            "ThresholdSizeMax": null,
            "ThresholdDistMin": null,
            "ThresholdDistMax": null
          }
        },
        "solve": {
          "$ref": "#/$defs/SolveCCT",
          "default": {
            "windings": {
              "currents": null,
              "mu_rs": null,
              "sigmas": null
            },
            "fqpls": {
              "currents": [],
              "mu_rs": [],
              "sigmas": []
            },
            "formers": {
              "mu_rs": null,
              "sigmas": null
            },
            "air": {
              "mu_r": null,
              "sigma": null
            },
            "pro_template": null,
            "variables": null,
            "volumes": null,
            "file_exts": null
          }
        },
        "postproc": {
          "$ref": "#/$defs/PostprocCCTFiQuS",
          "default": {
            "windings_wwns": null,
            "windings_whns": null,
            "additional_outputs": null,
            "winding_order": null,
            "fqpl_export_trim_tol": null,
            "variables": null,
            "volumes": null,
            "file_exts": null
          }
        }
      },
      "title": "CCT",
      "type": "object"
    },
    "CLIQ_Class": {
      "description": "Level 2: Class for the CLIQ parameters",
      "properties": {
        "t_trigger": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 99999.0,
          "description": "Trigger time of CLIQ unit [s].",
          "title": "T Trigger"
        },
        "current_direction": {
          "default": [],
          "description": "Polarity of current in groups specified as a list with length equal to the number of groups [-].",
          "items": {
            "type": "integer"
          },
          "title": "Current Direction",
          "type": "array"
        },
        "sym_factor": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Obsolete.",
          "title": "Sym Factor"
        },
        "N_units": {
          "oneOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Obsolete.",
          "title": "N Units"
        },
        "U0": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 0,
          "description": "Initial charging voltage of CLIQ unit [V].",
          "title": "U0"
        },
        "C": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 0,
          "description": "Capacitance of CLIQ unit [F].",
          "title": "C"
        },
        "R": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 0,
          "description": "Resistance of CLIQ unit [Ohm].",
          "title": "R"
        },
        "L": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 0,
          "description": "Inductance of CLIQ unit [H].",
          "title": "L"
        },
        "I0": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Obsolete.",
          "title": "I0"
        }
      },
      "title": "CLIQ_Class",
      "type": "object"
    },
    "CUDI1": {
      "description": "Level 3: Class for Nb-Ti fit based on \"Fit 1\" in CUDI manual",
      "properties": {
        "type": {
          "const": "CUDI1",
          "title": "Type",
          "type": "string"
        },
        "Tc0_CUDI1": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Tc0 Cudi1"
        },
        "Bc20_CUDI1": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Bc20 Cudi1"
        },
        "C1_CUDI1": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "C1 Cudi1"
        },
        "C2_CUDI1": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "C2 Cudi1"
        }
      },
      "required": [
        "type"
      ],
      "title": "CUDI1",
      "type": "object"
    },
    "CUDI3": {
      "description": "Level 3: Class for Nb-Ti fit based on \"Fit 3\" in CUDI manual",
      "properties": {
        "type": {
          "const": "CUDI3",
          "title": "Type",
          "type": "string"
        },
        "Tc0_CUDI3": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Tc0 Cudi3"
        },
        "Bc20_CUDI3": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Bc20 Cudi3"
        },
        "c1_CUDI3": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "C1 Cudi3"
        },
        "c2_CUDI3": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "C2 Cudi3"
        },
        "c3_CUDI3": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "C3 Cudi3"
        },
        "c4_CUDI3": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "C4 Cudi3"
        },
        "c5_CUDI3": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "C5 Cudi3"
        },
        "c6_CUDI3": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "C6 Cudi3"
        }
      },
      "required": [
        "type"
      ],
      "title": "CUDI3",
      "type": "object"
    },
    "CWSStrandPostprocCleanup": {
      "description": "Level 3: Class for cleanup settings",
      "properties": {
        "remove_pre_file": {
          "default": false,
          "description": "Set True to remove the .pre-file after post-processing, to save disk space.",
          "title": "Remove Pre File",
          "type": "boolean"
        },
        "remove_res_file": {
          "default": false,
          "description": "Set True to remove the .res-file after post-processing, to save disk space.",
          "title": "Remove Res File",
          "type": "boolean"
        },
        "remove_msh_file": {
          "default": false,
          "description": "Set True to remove the .msh-file after post-processing, to save disk space.",
          "title": "Remove Msh File",
          "type": "boolean"
        }
      },
      "title": "CWSStrandPostprocCleanup",
      "type": "object"
    },
    "Circle": {
      "description": "Level 2: Class for Input/Output settings for the cable geometry",
      "properties": {
        "center_position": {
          "oneOf": [
            {
              "items": {
                "type": "number"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Center position in two dimensional plane (x, y).",
          "title": "Center Position"
        },
        "radius": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Radius of the circle (m).",
          "title": "Radius"
        }
      },
      "title": "Circle",
      "type": "object"
    },
    "Circuit_Class": {
      "description": "Level 1: Class for the circuit parameters",
      "properties": {
        "field_circuit": {
          "oneOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": false,
          "description": "Allows to use Field-Circuit Coupling equations in the model.",
          "title": "Field Circuit"
        },
        "R_circuit": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "R Circuit"
        },
        "L_circuit": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "L Circuit"
        },
        "R_parallel": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "R Parallel"
        }
      },
      "title": "Circuit_Class",
      "type": "object"
    },
    "Conductor": {
      "description": "Level 1: Class for conductor parameters",
      "properties": {
        "version": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Version"
        },
        "case": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Case"
        },
        "state": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "State"
        },
        "cable": {
          "oneOf": [
            {
              "$ref": "#/$defs/Rutherford"
            },
            {
              "$ref": "#/$defs/Mono"
            },
            {
              "$ref": "#/$defs/Ribbon"
            },
            {
              "$ref": "#/$defs/TSTC"
            }
          ],
          "default": {
            "type": "Rutherford"
          },
          "title": "Cable"
        },
        "strand": {
          "oneOf": [
            {
              "$ref": "#/$defs/Round"
            },
            {
              "$ref": "#/$defs/Rectangular"
            },
            {
              "$ref": "#/$defs/CC"
            },
            {
              "$ref": "#/$defs/Homogenized"
            }
          ],
          "default": {
            "type": "Round"
          },
          "title": "Strand"
        },
        "Jc_fit": {
          "oneOf": [
            {
              "$ref": "#/$defs/ConstantJc"
            },
            {
              "$ref": "#/$defs/Bottura"
            },
            {
              "$ref": "#/$defs/CUDI1"
            },
            {
              "$ref": "#/$defs/CUDI3"
            },
            {
              "$ref": "#/$defs/Summers"
            },
            {
              "$ref": "#/$defs/Bordini"
            },
            {
              "$ref": "#/$defs/Nb3Sn_HFM"
            },
            {
              "$ref": "#/$defs/BSCCO_2212_LBNL"
            },
            {
              "$ref": "#/$defs/Ic_A_NbTi"
            },
            {
              "$ref": "#/$defs/ProDefined"
            },
            {
              "$ref": "#/$defs/Succi_fixed"
            },
            {
              "$ref": "#/$defs/Fujikura"
            }
          ],
          "default": {
            "type": "CUDI1"
          },
          "title": "Jc Fit"
        }
      },
      "title": "Conductor",
      "type": "object"
    },
    "ConstantJc": {
      "description": "Level 3: Class for setting constant Jc",
      "properties": {
        "type": {
          "const": "Constant Jc",
          "title": "Type",
          "type": "string"
        },
        "Jc_constant": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Jc Constant"
        }
      },
      "required": [
        "type"
      ],
      "title": "ConstantJc",
      "type": "object"
    },
    "Copper_thickness": {
      "properties": {
        "left": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "On the left side.",
          "title": "Left"
        },
        "right": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "On the right side.",
          "title": "Right"
        },
        "top": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "On the top side.",
          "title": "Top"
        },
        "bottom": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "On the bottom side.",
          "title": "Bottom"
        }
      },
      "title": "Copper_thickness",
      "type": "object"
    },
    "ESC_Class": {
      "description": "Level 2: Class for the ESC parameters",
      "properties": {
        "t_trigger": {
          "default": [],
          "description": "Trigger time of ESC units [s] given as a list with length corresponding to the number of ESC units.",
          "items": {
            "type": "number"
          },
          "title": "T Trigger",
          "type": "array"
        },
        "U0": {
          "default": [],
          "description": "Initial charging voltage of ESC units [V] given as a list with length corresponding to the number of ESC units.The unit is grounded in the middle, so the voltage to ground is half of this value",
          "items": {
            "type": "number"
          },
          "title": "U0",
          "type": "array"
        },
        "C": {
          "default": [],
          "description": "Capacitance of ESC units [F] given as a list with length corresponding to the number of ESC units.The unit is grounded in the middle, with two capacitors in series with value of 2C",
          "items": {
            "type": "number"
          },
          "title": "C",
          "type": "array"
        },
        "L": {
          "default": [],
          "description": "Parasitic inductance of ESC units [H] given as a list with length corresponding to the number of ESC units.The unit is grounded in the middle, with two capacitors in series with value of 2C",
          "items": {
            "type": "number"
          },
          "title": "L",
          "type": "array"
        },
        "R_unit": {
          "default": [],
          "description": "Internal resistance of ESC units [Ohm] given as a list with length corresponding to the number of ESC units.",
          "items": {
            "type": "number"
          },
          "title": "R Unit",
          "type": "array"
        },
        "R_leads": {
          "default": [],
          "description": "Resistance of leads from ESC coil to ESC diode connections [Ohm] given as a list with length corresponding to the number of ESC units.",
          "items": {
            "type": "number"
          },
          "title": "R Leads",
          "type": "array"
        },
        "Ud_Diode": {
          "default": [],
          "description": "Forward diodes voltage across ESC coils [V] given as a list with length corresponding to the number of ESC units.",
          "items": {
            "type": "number"
          },
          "title": "Ud Diode",
          "type": "array"
        },
        "L_Diode": {
          "default": [],
          "description": "Inductance in series with diodes across ESC coils [V] given as a list with length corresponding to the number of ESC units.",
          "items": {
            "type": "number"
          },
          "title": "L Diode",
          "type": "array"
        }
      },
      "title": "ESC_Class",
      "type": "object"
    },
    "E_CLIQ_Class": {
      "description": "Level 2: Class for the E-CLIQ parameters for protection",
      "properties": {
        "t_trigger": {
          "oneOf": [
            {
              "items": {
                "type": "number"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": [],
          "description": "Trigger time of E-CLIQ current sources [s] given as a list with length corresponding to the number of E-CLIQ units.",
          "title": "T Trigger"
        },
        "R_leads": {
          "oneOf": [
            {
              "items": {
                "type": "number"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "List of E-CLIQ unit lead resistances [Ohm]. List length corresponding to the number of E-CLIQ units.",
          "title": "R Leads"
        },
        "L_leads": {
          "oneOf": [
            {
              "items": {
                "type": "number"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "List of E-CLIQ unit lead inductances [H]. List length corresponding to the number of E-CLIQ units.",
          "title": "L Leads"
        },
        "source_type": {
          "default": null,
          "description": "Time evolution of applied current. Supported options are: sine, piecewise.",
          "enum": [
            "sine",
            "piecewise",
            null
          ],
          "title": "Source Type"
        },
        "sine": {
          "$ref": "#/$defs/SourceSine",
          "default": {
            "frequency": null,
            "current_amplitude": null,
            "number_of_periods": null,
            "number_of_turns": null
          },
          "description": "Definition of sine current source parameters."
        },
        "piecewise": {
          "$ref": "#/$defs/SourcePiecewise",
          "default": {
            "csv_file": null,
            "times": null,
            "currents": null,
            "time_multiplier": null,
            "current_multiplier": null
          },
          "description": "Definition of piecewise current source parameters."
        },
        "quench_propagation": {
          "oneOf": [
            {
              "enum": [
                "2Dx1D",
                "full"
              ],
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": "full",
          "description": "Enables to have a variable length for the ecliq implementation, different from the full magnet length. It only affects the Thermal Behaviour of the model.",
          "title": "Quench Propagation"
        },
        "quench_prop_model": {
          "oneOf": [
            {
              "enum": [
                "Wilson",
                "Ts"
              ],
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": "Ts",
          "description": "Selects the model used for the material properties of the quench propagation. \"Wilson\" uses a scaled cv with a function of T_bath and Ts and Ts uses the cv at Ts.",
          "title": "Quench Prop Model"
        },
        "NZPV_multiplier": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 1.0,
          "description": "Factor that multiplies the Normal Zone Propagation Velocity",
          "title": "Nzpv Multiplier"
        },
        "N_units": {
          "oneOf": [
            {
              "items": {
                "type": "integer"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": [],
          "description": "Number of E-CLIQ units along the magnet length per ecliq coil. It must be an odd number for symmetry reasons.",
          "title": "N Units"
        },
        "h_ecliq": {
          "oneOf": [
            {
              "items": {
                "type": "number"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": [],
          "description": "Spacing between the ecliq coils along the magnet length (m).",
          "title": "H Ecliq"
        },
        "l_ecliq": {
          "oneOf": [
            {
              "items": {
                "type": "number"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": [],
          "description": "length of the ecliq coils along the magnet length (m).",
          "title": "L Ecliq"
        },
        "L_ecliq_offset": {
          "oneOf": [
            {
              "items": {
                "type": "number"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": [],
          "description": "Offset of the quench heater strip from the referrence point located  at the middle of the magnet length. Positive values move the quench heater towards higher z values (move quench heater strip towards the front ofthe magnet).",
          "title": "L Ecliq Offset"
        },
        "iECLIQ_toHalfTurn_From": {
          "oneOf": [
            {
              "items": {
                "type": "integer"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": [],
          "description": "List of coils to which the ECLIQ units are connected from, to which half turns they are in direct contact with.",
          "title": "Iecliq Tohalfturn From"
        },
        "iECLIQ_toHalfTurn_To": {
          "oneOf": [
            {
              "items": {
                "type": "integer"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": [],
          "description": "List of half turns to whom the ECLIQ Units are in direct contact with.",
          "title": "Iecliq Tohalfturn To"
        }
      },
      "title": "E_CLIQ_Class",
      "type": "object"
    },
    "EnergyExtraction": {
      "description": "Level 2: Class for the energy extraction parameters",
      "properties": {
        "t_trigger": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 99999.0,
          "description": "Trigger time on the positive lead [s]. tEE (LEDET), tSwitchDelay (ProteCCT)",
          "title": "T Trigger"
        },
        "R_EE": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 0,
          "description": "Energy extraction resistance on the positive lead [Ohm]. R_EE_triggered (ProteCCT)",
          "title": "R Ee"
        },
        "power_R_EE": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 0.0,
          "description": "Varistor power component, R(I) = R_EE*abs(I)^power_R_EE on the positive lead [-]. RDumpPower (ProteCCT)",
          "title": "Power R Ee"
        },
        "L": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 0,
          "description": "Inductance in series with resistor on the positive lead [H].",
          "title": "L"
        },
        "C": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 0,
          "description": "Snubber capacitance in parallel to the EE switch on the positive lead [F].",
          "title": "C"
        },
        "L_c": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 0,
          "description": "Inductance in the snubber capacitance branch in parallel to the EE switch on the positive lead [H].",
          "title": "L C"
        },
        "R_c": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 0,
          "description": "Resistance in the snubber capacitance branch in parallel to the EE switch on the positive lead [Ohm].",
          "title": "R C"
        },
        "Ud_snubber": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 0,
          "description": "Forward voltage of diode in the snubber capacitance branch in parallel to the EE switch on the positive lead [V].",
          "title": "Ud Snubber"
        },
        "L_s": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 0,
          "description": "Inductance in the EE switch branch on the positive lead [H].",
          "title": "L S"
        },
        "R_s": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 0,
          "description": "Resistance in the EE switch branch on the positive lead [Ohm].",
          "title": "R S"
        },
        "Ud_switch": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 0,
          "description": "Forward voltage of diode in the EE switch branch on the positive lead [V].",
          "title": "Ud Switch"
        },
        "t_trigger_n": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 99999.0,
          "description": "Trigger time on the negative lead [s]. tEE (LEDET), tSwitchDelay (ProteCCT)",
          "title": "T Trigger N"
        },
        "R_EE_n": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 0,
          "description": "Energy extraction resistance on the negative lead [Ohm]. R_EE_triggered (ProteCCT)",
          "title": "R Ee N"
        },
        "power_R_EE_n": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 0.0,
          "description": "Varistor power component, R(I) = R_EE*abs(I)^power_R_EE on the negative lead [-]. RDumpPower (ProteCCT)",
          "title": "Power R Ee N"
        },
        "L_n": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 0,
          "description": "Inductance in series with resistor on the negative lead [H].",
          "title": "L N"
        },
        "C_n": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 0,
          "description": "Snubber capacitance in parallel to the EE switch on the negative lead [F].",
          "title": "C N"
        },
        "L_c_n": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 0,
          "description": "Inductance in the snubber capacitance branch in parallel to the EE switch on the negative lead [H].",
          "title": "L C N"
        },
        "R_c_n": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 0,
          "description": "Resistance in the snubber capacitance branch in parallel to the EE switch on the negative lead [Ohm].",
          "title": "R C N"
        },
        "Ud_snubber_n": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 0,
          "description": "Forward voltage of diode in the snubber capacitance branch in parallel to the EE switch on the negative lead [V].",
          "title": "Ud Snubber N"
        },
        "L_s_n": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 0,
          "description": "Inductance in the EE switch branch on the negative lead [H].",
          "title": "L S N"
        },
        "R_s_n": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 0,
          "description": "Resistance in the EE switch branch on the negative lead [Ohm].",
          "title": "R S N"
        },
        "Ud_switch_n": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 0,
          "description": "Forward voltage of diode in the EE switch branch on the negative lead [V].",
          "title": "Ud Switch N"
        }
      },
      "title": "EnergyExtraction",
      "type": "object"
    },
    "FQPL_g": {
      "description": "Level 2: Class for FiQuS CCT",
      "properties": {
        "names": {
          "default": [],
          "items": {
            "type": "string"
          },
          "title": "Names",
          "type": "array"
        },
        "fndpls": {
          "oneOf": [
            {
              "items": {
                "type": "integer"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Fndpls"
        },
        "fwws": {
          "oneOf": [
            {
              "items": {
                "type": "number"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Fwws"
        },
        "fwhs": {
          "oneOf": [
            {
              "items": {
                "type": "number"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Fwhs"
        },
        "r_ins": {
          "oneOf": [
            {
              "items": {
                "type": "number"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "R Ins"
        },
        "r_bs": {
          "oneOf": [
            {
              "items": {
                "type": "number"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "R Bs"
        },
        "n_sbs": {
          "oneOf": [
            {
              "items": {
                "type": "integer"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "N Sbs"
        },
        "thetas": {
          "oneOf": [
            {
              "items": {
                "type": "number"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Thetas"
        },
        "z_starts": {
          "oneOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Z Starts"
        },
        "z_ends": {
          "oneOf": [
            {
              "items": {
                "type": "number"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Z Ends"
        }
      },
      "title": "FQPL_g",
      "type": "object"
    },
    "FQPL_s": {
      "description": "Level 2: Class for FiQuS CCT",
      "properties": {
        "currents": {
          "default": [],
          "items": {
            "type": "number"
          },
          "title": "Currents",
          "type": "array"
        },
        "sigmas": {
          "default": [],
          "items": {
            "type": "number"
          },
          "title": "Sigmas",
          "type": "array"
        },
        "mu_rs": {
          "default": [],
          "items": {
            "type": "number"
          },
          "title": "Mu Rs",
          "type": "array"
        }
      },
      "title": "FQPL_s",
      "type": "object"
    },
    "Former_gFiQuS": {
      "description": "Level 2: Class for FiQuS CCT",
      "properties": {
        "names": {
          "oneOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Names"
        },
        "r_ins": {
          "oneOf": [
            {
              "items": {
                "type": "number"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "R Ins"
        },
        "r_outs": {
          "oneOf": [
            {
              "items": {
                "type": "number"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "R Outs"
        },
        "z_mins": {
          "oneOf": [
            {
              "items": {
                "type": "number"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Z Mins"
        },
        "z_maxs": {
          "oneOf": [
            {
              "items": {
                "type": "number"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Z Maxs"
        }
      },
      "title": "Former_gFiQuS",
      "type": "object"
    },
    "Former_s": {
      "description": "Level 2: Class for FiQuS CCT",
      "properties": {
        "sigmas": {
          "oneOf": [
            {
              "items": {
                "type": "number"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Sigmas"
        },
        "mu_rs": {
          "oneOf": [
            {
              "items": {
                "type": "number"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Mu Rs"
        }
      },
      "title": "Former_s",
      "type": "object"
    },
    "Fujikura": {
      "description": "Level 3: Class for cable Fujikura's fit",
      "properties": {
        "type": {
          "const": "Fujikura",
          "title": "Type",
          "type": "string"
        },
        "Jc_factor": {
          "oneOf": [
            {
              "exclusiveMinimum": 0.0,
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 1.0,
          "description": "This factor multiplies the Jc returned by the function.",
          "title": "Jc Factor"
        }
      },
      "required": [
        "type"
      ],
      "title": "Fujikura",
      "type": "object"
    },
    "GeneralFiQuS": {
      "description": "Class for FiQuS general",
      "properties": {
        "magnet_name": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Magnet Name"
        }
      },
      "title": "GeneralFiQuS",
      "type": "object"
    },
    "GeometryCCTFiQuS": {
      "description": "Level 2: Class for FiQuS CCT for FiQuS input",
      "properties": {
        "windings": {
          "$ref": "#/$defs/Winding_gFiQuS",
          "default": {
            "names": null,
            "r_wms": null,
            "n_turnss": null,
            "ndpts": null,
            "ndpt_ins": null,
            "ndpt_outs": null,
            "lps": null,
            "alphas": null,
            "wwws": null,
            "wwhs": null
          }
        },
        "fqpls": {
          "$ref": "#/$defs/FQPL_g",
          "default": {
            "names": [],
            "fndpls": null,
            "fwws": null,
            "fwhs": null,
            "r_ins": null,
            "r_bs": null,
            "n_sbs": null,
            "thetas": null,
            "z_starts": null,
            "z_ends": null
          }
        },
        "formers": {
          "$ref": "#/$defs/Former_gFiQuS",
          "default": {
            "names": null,
            "r_ins": null,
            "r_outs": null,
            "z_mins": null,
            "z_maxs": null
          }
        },
        "air": {
          "$ref": "#/$defs/Air_g",
          "default": {
            "name": null,
            "sh_type": null,
            "ar": null,
            "z_min": null,
            "z_max": null
          }
        }
      },
      "title": "GeometryCCTFiQuS",
      "type": "object"
    },
    "Homogenized": {
      "description": "Level 2: Class for homogenized strand parameters, to be used in the Rutherford cable model",
      "properties": {
        "type": {
          "const": "Homogenized",
          "title": "Type",
          "type": "string"
        },
        "diameter": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Undeformed round strand diameter. Used in the geometry step if keep_strand_area==true, the strand is deformed while preserving its surface area. Not used otherwise.",
          "title": "Diameter"
        }
      },
      "required": [
        "type"
      ],
      "title": "Homogenized",
      "type": "object"
    },
    "HomogenizedConductorFormulationparameters": {
      "description": "Level 3: Class for finite element formulation parameters",
      "properties": {
        "hphia": {
          "oneOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": false,
          "description": "Use hphia formulation.",
          "title": "Hphia"
        }
      },
      "title": "HomogenizedConductorFormulationparameters",
      "type": "object"
    },
    "HomogenizedConductorFormulationparametersCS": {
      "description": "Level 4: Class for Current Sharing (CS) model parameters",
      "properties": {
        "superconductor_n_value": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 30,
          "description": "n value for the power law (-), used in current sharing law.",
          "title": "Superconductor N Value"
        },
        "superconductor_Ic": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 350,
          "description": "Critical current of the strands (A) (e.g., typical value at T=1.9K and B=10T). Will be taken as a constant as in this model the field dependence is not included (the main purpose of the model is to verify the more efficient Homogenized Conductor model). Including field-dependence could be done but is not trivial because is mixes global and local quantities in this Rutherford model with strand discretized individually as stranded conductors.",
          "title": "Superconductor Ic"
        },
        "matrix_resistance": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 0.0006536208,
          "description": "Resistance of the matrix (per unit length) (Ohm/m) for the current sharing law. Kept constant in this model (for simplicity).",
          "title": "Matrix Resistance"
        }
      },
      "title": "HomogenizedConductorFormulationparametersCS",
      "type": "object"
    },
    "HomogenizedConductorFormulationparametersDISCC": {
      "description": "Level 4: Class for DISCC model parameters",
      "properties": {
        "gamma_c": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 0.43,
          "description": "Main crossing scaling parameter (-) that quantifies crossing coupling due to field perpendicular to cable wide face.",
          "title": "Gamma C"
        },
        "gamma_a": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 0.53,
          "description": "Main adjacent scaling parameter (-) that quantifies adjacent coupling due to field parallel to cable wide face.",
          "title": "Gamma A"
        },
        "lambda_a": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 0.006,
          "description": "Mixing scaling parameter (-) that quantifies adjacent coupling due to field perpendicular to cable wide face.",
          "title": "Lambda A"
        },
        "crossing_coupling_resistance": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 0.00002,
          "description": "Resistance (Ohm) of the contact between crossing strands.",
          "title": "Crossing Coupling Resistance"
        },
        "adjacent_coupling_resistance": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 0.00001,
          "description": "Resistance (Ohm) of the contact between adjacent strands over one periodicity length (strand twist pitch divided by the number of strands).",
          "title": "Adjacent Coupling Resistance"
        }
      },
      "title": "HomogenizedConductorFormulationparametersDISCC",
      "type": "object"
    },
    "HomogenizedConductorFormulationparametersSampleLine": {
      "description": "Level 3: Class for sampling along a predefined line within the model",
      "properties": {
        "start_point": {
          "oneOf": [
            {
              "items": {
                "type": "number"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Start point of the line in cartesian coordinates: [x,y,z].",
          "title": "Start Point"
        },
        "end_point": {
          "oneOf": [
            {
              "items": {
                "type": "number"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "End point of the line in cartesian coordinates: [x,y,z].",
          "title": "End Point"
        },
        "samples": {
          "oneOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Integer number of evenly spaced sample points along the line including start and end point.",
          "title": "Samples"
        }
      },
      "title": "HomogenizedConductorFormulationparametersSampleLine",
      "type": "object"
    },
    "HomogenizedConductorGeometry": {
      "description": "Level 2: Class for strand geometry parameters",
      "properties": {
        "cables_definition": {
          "default": {
            "center_position": null,
            "width": null,
            "height": null
          },
          "items": {
            "$ref": "#/$defs/Rectangle"
          },
          "title": "Cables Definition",
          "type": "array"
        },
        "excitation_coils": {
          "oneOf": [
            {
              "items": {
                "$ref": "#/$defs/Rectangle"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": [],
          "description": "List of excitation coils",
          "title": "Excitation Coils"
        },
        "air": {
          "$ref": "#/$defs/Circle",
          "default": {
            "center_position": null,
            "radius": null
          }
        },
        "air_form": {
          "const": "circle",
          "default": "circle",
          "description": "Type of model geometry which will be generated. Supported options are only circle for now",
          "title": "Air Form",
          "type": "string"
        },
        "io_settings": {
          "$ref": "#/$defs/HomogenizedConductorGeometryIOsettings",
          "default": {
            "load": {
              "filename": null,
              "load_from_yaml": false
            },
            "save": {
              "filename": null,
              "save_to_yaml": false
            }
          }
        }
      },
      "title": "HomogenizedConductorGeometry",
      "type": "object"
    },
    "HomogenizedConductorGeometryIOsettings": {
      "description": "Level 2: Class for Input/Output settings for the cable geometry",
      "properties": {
        "load": {
          "$ref": "#/$defs/HomogenizedConductorIOsettingsLoad",
          "default": {
            "load_from_yaml": false,
            "filename": null
          }
        },
        "save": {
          "$ref": "#/$defs/HomogenizedConductorIOsettingsSave",
          "default": {
            "save_to_yaml": false,
            "filename": null
          }
        }
      },
      "title": "HomogenizedConductorGeometryIOsettings",
      "type": "object"
    },
    "HomogenizedConductorIOsettingsLoad": {
      "description": "Level 3: Class for Input/Output settings for the cable geometry",
      "properties": {
        "load_from_yaml": {
          "oneOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": false,
          "description": "True to load the geometry from a YAML file, false to generate the geometry.",
          "title": "Load From Yaml"
        },
        "filename": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Name of the YAML file from which to load the geometry.",
          "title": "Filename"
        }
      },
      "title": "HomogenizedConductorIOsettingsLoad",
      "type": "object"
    },
    "HomogenizedConductorIOsettingsSave": {
      "description": "Level 3: Class for Input/Output settings for the cable geometry",
      "properties": {
        "save_to_yaml": {
          "oneOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": false,
          "description": "True to save the geometry to a YAML-file, false to not save the geometry.",
          "title": "Save To Yaml"
        },
        "filename": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Name of the output geometry YAML file.",
          "title": "Filename"
        }
      },
      "title": "HomogenizedConductorIOsettingsSave",
      "type": "object"
    },
    "HomogenizedConductorMesh": {
      "description": "Level 2: Class for FiQuS ConductorAC",
      "properties": {
        "scaling_global": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 1,
          "description": "Global scaling factor for mesh size.",
          "title": "Scaling Global"
        },
        "air_boundary_mesh_size_ratio": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 1,
          "description": "Ratio within the air region from boundary to inner elements.",
          "title": "Air Boundary Mesh Size Ratio"
        },
        "cable_mesh_size_ratio": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 1,
          "description": "Scaling factor within the cable regions.",
          "title": "Cable Mesh Size Ratio"
        }
      },
      "title": "HomogenizedConductorMesh",
      "type": "object"
    },
    "HomogenizedConductorNumericalparametersPiecewise": {
      "description": "Level 4: Numerical parameters corresponding to the piecewise source",
      "properties": {
        "time_to_simulate": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Total time to simulate (s). Used for the piecewise source.",
          "title": "Time To Simulate"
        },
        "timesteps_per_time_to_simulate": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "If variable_max_timestep is False. Number of time steps (-) per period for the piecewise source.",
          "title": "Timesteps Per Time To Simulate"
        },
        "force_stepping_at_times_piecewise_linear": {
          "default": false,
          "description": "If True, time-stepping will contain exactly the time instants that are in the times_source_piecewise_linear list (to avoid truncation maximum applied field/current values).",
          "title": "Force Stepping At Times Piecewise Linear",
          "type": "boolean"
        },
        "variable_max_timestep": {
          "default": false,
          "description": "If False, the maximum time step is kept constant through the simulation. If True, it varies according to the piecewise definition.",
          "title": "Variable Max Timestep",
          "type": "boolean"
        },
        "times_max_timestep_piecewise_linear": {
          "oneOf": [
            {
              "items": {
                "type": "number"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Time instants (s) defining the piecewise linear maximum time step.",
          "title": "Times Max Timestep Piecewise Linear"
        },
        "max_timestep_piecewise_linear": {
          "oneOf": [
            {
              "items": {
                "type": "number"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Maximum time steps (s) at the times_max_timestep_piecewise_linear. Above the limits, linear extrapolation of the last two values.",
          "title": "Max Timestep Piecewise Linear"
        }
      },
      "title": "HomogenizedConductorNumericalparametersPiecewise",
      "type": "object"
    },
    "HomogenizedConductorNumericalparametersSine": {
      "description": "Level 4: Numerical parameters corresponding to the sine source",
      "properties": {
        "timesteps_per_period": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Initial value for number of time steps (-) per period for the sine source. Determines the initial time step size.",
          "title": "Timesteps Per Period"
        },
        "number_of_periods_to_simulate": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Number of periods (-) to simulate for the sine source.",
          "title": "Number Of Periods To Simulate"
        }
      },
      "title": "HomogenizedConductorNumericalparametersSine",
      "type": "object"
    },
    "HomogenizedConductorPostproc": {
      "description": "Level 2: Class for FiQuS ConductorAC",
      "properties": {
        "generate_pos_files": {
          "default": true,
          "description": "Set True to generate .pos-files during post-processing",
          "title": "Generate Pos Files",
          "type": "boolean"
        },
        "output_folder": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Batch post-processing creates a folder with the given name in the output directory, where all the plots are saved.",
          "title": "Output Folder"
        },
        "generate_report": {
          "oneOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": false,
          "description": "Generates a PDF report including all postprocessing graphs. File is saved in the output_folder.",
          "title": "Generate Report"
        },
        "save_last_current_density": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Saves the last current density field solution (out-of-plane) in the file given as a string. The '.pos' extension will be appended to it. Nothing is done if None. This can be for using the current density as an initial condition (but not implemented yet).",
          "title": "Save Last Current Density"
        },
        "save_last_magnetic_field": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Saves the last magnetic field solution (in-plane) in the file given as a string. The '.pos' extension will be appended to it. Nothing is done if None. This is for using the magnetic field as an initial condition for another resolution.",
          "title": "Save Last Magnetic Field"
        },
        "cleanup": {
          "$ref": "#/$defs/HomogenizedConductorPostprocCleanup",
          "default": {
            "remove_pre_file": false,
            "remove_res_file": false,
            "remove_msh_file": false
          }
        },
        "sample_line": {
          "$ref": "#/$defs/HomogenizedConductorFormulationparametersSampleLine",
          "default": {
            "start_point": null,
            "end_point": null,
            "samples": null
          }
        }
      },
      "title": "HomogenizedConductorPostproc",
      "type": "object"
    },
    "HomogenizedConductorPostprocCleanup": {
      "description": "Level 3: Class for cleanup settings",
      "properties": {
        "remove_pre_file": {
          "default": false,
          "description": "Set True to remove the .pre-file after post-processing, to save disk space.",
          "title": "Remove Pre File",
          "type": "boolean"
        },
        "remove_res_file": {
          "default": false,
          "description": "Set True to remove the .res-file after post-processing, to save disk space.",
          "title": "Remove Res File",
          "type": "boolean"
        },
        "remove_msh_file": {
          "default": false,
          "description": "Set True to remove the .msh-file after post-processing, to save disk space.",
          "title": "Remove Msh File",
          "type": "boolean"
        }
      },
      "title": "HomogenizedConductorPostprocCleanup",
      "type": "object"
    },
    "HomogenizedConductorRunType": {
      "description": "Level 4: Class for runtype parameters",
      "properties": {
        "mode": {
          "oneOf": [
            {
              "enum": [
                "ramp",
                "isothermal_ramp",
                "quench"
              ],
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": "ramp",
          "description": "Type of simulation to run with homogenized conductors (ramp - real cooling conditions, isothermal_ramp - unlimited cooling, quench - non-zero initial conditions)",
          "title": "Mode"
        },
        "ramp_file": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Name of the ramp model from which to start the simulation",
          "title": "Ramp File"
        }
      },
      "title": "HomogenizedConductorRunType",
      "type": "object"
    },
    "HomogenizedConductorSolve": {
      "description": "Level 2: Class for FiQuS HomogenizedConductor solver settings",
      "properties": {
        "pro_template": {
          "oneOf": [
            {
              "const": "HomogenizedConductor_template.pro",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": "HomogenizedConductor_template.pro",
          "description": "Name of the .pro template file.",
          "title": "Pro Template"
        },
        "general_parameters": {
          "$ref": "#/$defs/HomogenizedConductorSolveGeneralparameters",
          "default": {
            "superconductor_linear": false,
            "noOfMPITasks": false,
            "rho_cables": 1.0,
            "strand_transposition_length": 0.1,
            "n_strands": 36,
            "strand_filling_factor": 0.8617
          }
        },
        "formulation_parameters": {
          "$ref": "#/$defs/HomogenizedConductorFormulationparameters",
          "default": {
            "hphia": false
          }
        },
        "discc": {
          "$ref": "#/$defs/HomogenizedConductorFormulationparametersDISCC",
          "default": {
            "gamma_c": 0.43,
            "gamma_a": 0.53,
            "lambda_a": 0.006,
            "crossing_coupling_resistance": 0.00002,
            "adjacent_coupling_resistance": 0.00001
          }
        },
        "rohf": {
          "$ref": "#/$defs/fiqus__data__DataFiQuSHomogenizedConductor__HomogenizedConductorFormulationparametersROHF",
          "default": {
            "enable": false,
            "parameter_csv_file": null
          }
        },
        "rohm": {
          "$ref": "#/$defs/fiqus__data__DataFiQuSHomogenizedConductor__HomogenizedConductorFormulationparametersROHM",
          "default": {
            "enable": false,
            "parameter_csv_file": null,
            "weight_scaling": 1.0,
            "tau_scaling": 1.0
          }
        },
        "current_sharing": {
          "$ref": "#/$defs/HomogenizedConductorFormulationparametersCS",
          "default": {
            "superconductor_n_value": 30.0,
            "superconductor_Ic": 350.0,
            "matrix_resistance": 0.0006536208
          }
        },
        "initial_conditions": {
          "$ref": "#/$defs/HomogenizedConductorSolveInitialconditions",
          "default": {
            "init_from_pos_file": false,
            "pos_file_to_init_from": null
          }
        },
        "source_parameters": {
          "$ref": "#/$defs/HomogenizedConductorSolveSourceparameters",
          "default": {
            "boundary_condition_type": "Natural",
            "source_type": "sine",
            "parallel_resistor": false,
            "excitation_coils": {
              "enable": false
            },
            "sine": {
              "current_amplitude": null,
              "field_amplitude": null,
              "frequency": null,
              "superimposed_DC": {
                "current_magnitude": 0.0,
                "field_magnitude": 0.0
              }
            },
            "piecewise": {
              "applied_field_multiplier": null,
              "applied_fields_relative": null,
              "source_csv_file": null,
              "time_multiplier": null,
              "times": null,
              "transport_current_multiplier": null,
              "transport_currents_relative": null
            },
            "field_angle": 90.0,
            "cable_current_multipliers": null
          }
        },
        "numerical_parameters": {
          "$ref": "#/$defs/HomogenizedConductorSolveNumericalparameters",
          "default": {
            "sine": {
              "number_of_periods_to_simulate": null,
              "timesteps_per_period": null
            },
            "piecewise": {
              "force_stepping_at_times_piecewise_linear": false,
              "max_timestep_piecewise_linear": null,
              "time_to_simulate": null,
              "times_max_timestep_piecewise_linear": null,
              "timesteps_per_time_to_simulate": null,
              "variable_max_timestep": false
            }
          }
        },
        "frequency_domain_solver": {
          "$ref": "#/$defs/HomogenizedConductorSolveFrequencyDomain",
          "default": {
            "enable": false,
            "frequency_sweep": {
              "end_frequency": 100.0,
              "number_of_frequencies": 3,
              "run_sweep": false,
              "start_frequency": 1.0
            }
          }
        }
      },
      "title": "HomogenizedConductorSolve",
      "type": "object"
    },
    "HomogenizedConductorSolveFrequencyDomain": {
      "description": "Level 3: Class for frequency domain solver parameters",
      "properties": {
        "enable": {
          "oneOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": false,
          "description": "Enable frequency solver functionality in the solve step.",
          "title": "Enable"
        },
        "frequency_sweep": {
          "$ref": "#/$defs/HomogenizedConductorSolveFrequencyDomainSweep",
          "default": {
            "run_sweep": false,
            "start_frequency": 1.0,
            "end_frequency": 100.0,
            "number_of_frequencies": 3
          }
        }
      },
      "title": "HomogenizedConductorSolveFrequencyDomain",
      "type": "object"
    },
    "HomogenizedConductorSolveFrequencyDomainSweep": {
      "description": "Level 4: Class for the frequency sweep definition within a frequency domain solver.",
      "properties": {
        "run_sweep": {
          "oneOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": false,
          "description": "Enabling a frequency sweep.",
          "title": "Run Sweep"
        },
        "start_frequency": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 1,
          "description": "Start frequency of the sweep in Hz.",
          "title": "Start Frequency"
        },
        "end_frequency": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 100,
          "description": "End frequency of the sweep in Hz.",
          "title": "End Frequency"
        },
        "number_of_frequencies": {
          "oneOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": 3,
          "description": "Total number of frequencies in the sweep (logspaced)",
          "title": "Number Of Frequencies"
        }
      },
      "title": "HomogenizedConductorSolveFrequencyDomainSweep",
      "type": "object"
    },
    "HomogenizedConductorSolveGeneralparameters": {
      "description": "Level 3: Class for general parameters",
      "properties": {
        "superconductor_linear": {
          "oneOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": false,
          "description": "For debugging: replace LTS by normal conductor.",
          "title": "Superconductor Linear"
        },
        "noOfMPITasks": {
          "oneOf": [
            {
              "type": "boolean"
            },
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": false,
          "description": "If integer, GetDP will be run in parallel using MPI. This is only valid if MPI is installed on the system and an MPI-enabled GetDP is used. If False, GetDP will be run in serial without invoking mpiexec.",
          "title": "No. of tasks for MPI parallel run of GetDP"
        },
        "rho_cables": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 1,
          "description": "Resistance for cables when modelled as linear conductors (no current sharing with power law) [Ohm*m].",
          "title": "Rho Cables"
        },
        "strand_transposition_length": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 0.1,
          "description": "Transposition length of the strands in the Rutherford cable (m).",
          "title": "Strand Transposition Length"
        },
        "n_strands": {
          "oneOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": 36,
          "description": "Number of strands in the cable (-).",
          "title": "N Strands"
        },
        "strand_filling_factor": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 0.8617,
          "description": "Filling factor of the strands in the rectangular cable envelope (-).",
          "title": "Strand Filling Factor"
        }
      },
      "title": "HomogenizedConductorSolveGeneralparameters",
      "type": "object"
    },
    "HomogenizedConductorSolveInitialconditions": {
      "description": "Level 3: Class for initial conditions",
      "properties": {
        "init_from_pos_file": {
          "default": false,
          "description": "This field is used to initialize the solution from a non-zero field solution stored in a .pos file.",
          "title": "Init From Pos File",
          "type": "boolean"
        },
        "pos_file_to_init_from": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Name of .pos file for magnetic field (A/m) from which the solution should be initialized. Should be in the Geometry_xxx/Mesh_xxx/ folder in which the Solution_xxx will be saved.",
          "title": "Pos File To Init From"
        }
      },
      "title": "HomogenizedConductorSolveInitialconditions",
      "type": "object"
    },
    "HomogenizedConductorSolveNumericalparameters": {
      "description": "Level 3: Class for numerical parameters",
      "properties": {
        "sine": {
          "$ref": "#/$defs/HomogenizedConductorNumericalparametersSine",
          "default": {
            "timesteps_per_period": null,
            "number_of_periods_to_simulate": null
          }
        },
        "piecewise": {
          "$ref": "#/$defs/HomogenizedConductorNumericalparametersPiecewise",
          "default": {
            "time_to_simulate": null,
            "timesteps_per_time_to_simulate": null,
            "force_stepping_at_times_piecewise_linear": false,
            "variable_max_timestep": false,
            "times_max_timestep_piecewise_linear": null,
            "max_timestep_piecewise_linear": null
          }
        }
      },
      "title": "HomogenizedConductorSolveNumericalparameters",
      "type": "object"
    },
    "HomogenizedConductorSolveSourceparameters": {
      "description": "Level 3: Class for material properties",
      "properties": {
        "boundary_condition_type": {
          "default": "Natural",
          "description": "Type of boundary condition applied at the outer domain boundary.",
          "enum": [
            "Natural",
            "Essential"
          ],
          "title": "Boundary Condition Type",
          "type": "string"
        },
        "source_type": {
          "default": "sine",
          "description": "Time evolution of applied current and magnetic field. Supported options are: sine, sine_with_DC, piecewise_linear, from_list.",
          "enum": [
            "sine",
            "piecewise"
          ],
          "title": "Source Type",
          "type": "string"
        },
        "parallel_resistor": {
          "oneOf": [
            {
              "type": "boolean"
            },
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": false,
          "description": "If False, no parallel resistor and the current source directly and only feeds the cable. If True, a resistor is placed in parallel with the cable, with a default resistance of 1 Ohm. If float (cannot be zero), this defines the value of the resistance. If more than one cable is modelled, they are all connected in series (and carry the same current).",
          "title": "Resistor parallel to the cable(s)"
        },
        "excitation_coils": {
          "$ref": "#/$defs/SolveExcitationCoils",
          "default": {
            "enable": false
          }
        },
        "sine": {
          "$ref": "#/$defs/SolveSineSource",
          "default": {
            "frequency": null,
            "field_amplitude": null,
            "current_amplitude": null,
            "superimposed_DC": {
              "current_magnitude": 0.0,
              "field_magnitude": 0.0
            }
          }
        },
        "piecewise": {
          "$ref": "#/$defs/SolvePiecewiseSource",
          "default": {
            "source_csv_file": null,
            "times": null,
            "applied_fields_relative": null,
            "transport_currents_relative": null,
            "time_multiplier": null,
            "applied_field_multiplier": null,
            "transport_current_multiplier": null
          }
        },
        "field_angle": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 90,
          "description": "Angle of the source magnetic field, with respect to the x-axis (degrees).",
          "title": "Field Angle"
        },
        "cable_current_multipliers": {
          "oneOf": [
            {
              "items": {
                "type": "number"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Individual multipliers applied to the transport current imposed in each cable. factors are applied according to the cable declarations in the geometry section of the yaml.",
          "title": "Cable Current Multipliers"
        }
      },
      "title": "HomogenizedConductorSolveSourceparameters",
      "type": "object"
    },
    "Ic_A_NbTi": {
      "description": "Level 3: Class for setting IcNbTi fit",
      "properties": {
        "type": {
          "const": "Ic_A_NbTi",
          "title": "Type",
          "type": "string"
        },
        "Jc_5T_4_2K": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Jc 5T 4 2K"
        }
      },
      "required": [
        "type"
      ],
      "title": "Ic_A_NbTi",
      "type": "object"
    },
    "MeshCCT": {
      "description": "Level 2: Class for FiQuS CCT",
      "properties": {
        "MaxAspectWindings": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Maxaspectwindings"
        },
        "ThresholdSizeMin": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Thresholdsizemin"
        },
        "ThresholdSizeMax": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Thresholdsizemax"
        },
        "ThresholdDistMin": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Thresholddistmin"
        },
        "ThresholdDistMax": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Thresholddistmax"
        }
      },
      "title": "MeshCCT",
      "type": "object"
    },
    "Mono": {
      "description": "Mono cable type: This is basically type of cable consisting of one strand - not really a cable",
      "properties": {
        "type": {
          "const": "Mono",
          "title": "Type",
          "type": "string"
        },
        "bare_cable_width": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Bare Cable Width"
        },
        "bare_cable_height_low": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Bare Cable Height Low"
        },
        "bare_cable_height_high": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Bare Cable Height High"
        },
        "bare_cable_height_mean": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Bare Cable Height Mean"
        },
        "th_insulation_along_width": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Th Insulation Along Width"
        },
        "th_insulation_along_height": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Th Insulation Along Height"
        },
        "f_superconductor": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "F Superconductor"
        },
        "f_stabilizer": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "F Stabilizer"
        },
        "f_insulation": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "F Insulation"
        },
        "f_inner_voids": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "F Inner Voids"
        },
        "f_outer_voids": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "F Outer Voids"
        },
        "material_insulation": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Material Insulation"
        },
        "material_inner_voids": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Material Inner Voids"
        },
        "material_outer_voids": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Material Outer Voids"
        }
      },
      "required": [
        "type"
      ],
      "title": "Mono",
      "type": "object"
    },
    "MultipleSolveCollarHeCooling": {
      "properties": {
        "enabled": {
          "oneOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": false,
          "description": "It determines whether the helium cooling is enabled or not (adiabatic conditions).",
          "title": "Enabled"
        },
        "which": {
          "oneOf": [
            {
              "const": "all",
              "type": "string"
            },
            {
              "items": {},
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": "all",
          "description": "It specifies the boundaries where the collar cooling is applied. If 'all', it applies to all boundaries. If a list, it applies to the specified boundaries numbered counter-clockwise.",
          "title": "Which"
        },
        "heat_transfer_coefficient": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": "CFUN_hHe_T_THe",
          "description": "It specifies the value or name of the function of the constant heat transfer coefficient.",
          "title": "Heat Transfer Coefficient"
        },
        "ref_temperature": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 0.0,
          "description": "It specifies the reference temperature for the collar cooling. If not specified, it takes the value of the initial temperature.",
          "title": "Ref Temperature"
        },
        "move_cooling_holes": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "integer"
            },
            {
              "items": {
                "items": {
                  "type": "number"
                },
                "type": "array"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "It specifies if and how cooling holes are to be moved. Either choose '1' or '2' for predefined positions or a list [[dx,dy], [dx2,dy2]].. to shift each hole manually",
          "title": "Move Cooling Holes"
        }
      },
      "title": "MultipleSolveCollarHeCooling",
      "type": "object"
    },
    "Multipole": {
      "description": "Level 1: Class for FiQuS Multipole",
      "properties": {
        "type": {
          "const": "multipole",
          "default": "multipole",
          "title": "Type",
          "type": "string"
        },
        "geometry": {
          "$ref": "#/$defs/MultipoleGeometry",
          "default": {
            "geom_file_path": null,
            "plot_preview": false,
            "electromagnetics": {
              "areas": [],
              "create": true,
              "symmetry": "none",
              "with_wedges": true
            },
            "thermal": {
              "areas": [],
              "correct_block_coil_tsa_checkered_scheme": false,
              "create": true,
              "use_TSA": false,
              "use_TSA_new": false,
              "with_wedges": true
            }
          },
          "description": "This dictionary contains the geometry information."
        },
        "mesh": {
          "$ref": "#/$defs/MultipoleMesh",
          "default": {
            "electromagnetics": {
              "bore_field": {
                "DistMax": null,
                "DistMin": null,
                "SizeMax": null,
                "SizeMin": null,
                "enabled": false
              },
              "collar": {
                "DistMax": null,
                "DistMin": null,
                "Enforce_TSA_mapping": false,
                "SizeMax": null,
                "SizeMin": null,
                "enabled": false
              },
              "conductors": {
                "field": {
                  "DistMax": null,
                  "DistMin": null,
                  "SizeMax": null,
                  "SizeMin": null,
                  "enabled": false
                },
                "transfinite": {
                  "curve_target_size_height": 1.0,
                  "curve_target_size_width": 1.0,
                  "enabled_for": null
                }
              },
              "create": true,
              "iron_field": {
                "DistMax": null,
                "DistMin": null,
                "SizeMax": null,
                "SizeMin": null,
                "enabled": false
              },
              "poles": {
                "DistMax": null,
                "DistMin": null,
                "SizeMax": null,
                "SizeMin": null,
                "enabled": false
              },
              "wedges": {
                "field": {
                  "DistMax": null,
                  "DistMin": null,
                  "SizeMax": null,
                  "SizeMin": null,
                  "enabled": false
                },
                "transfinite": {
                  "curve_target_size_height": 1.0,
                  "curve_target_size_width": 1.0,
                  "enabled_for": null
                }
              }
            },
            "thermal": {
              "collar": {
                "DistMax": null,
                "DistMin": null,
                "Enforce_TSA_mapping": false,
                "SizeMax": null,
                "SizeMin": null,
                "enabled": false
              },
              "conductors": {
                "field": {
                  "DistMax": null,
                  "DistMin": null,
                  "SizeMax": null,
                  "SizeMin": null,
                  "enabled": false
                },
                "transfinite": {
                  "curve_target_size_height": 1.0,
                  "curve_target_size_width": 1.0,
                  "enabled_for": null
                }
              },
              "create": true,
              "insulation": {
                "TSA": {
                  "global_size_COL": 0.0001,
                  "global_size_QH": 0.0001,
                  "minimum_discretizations": 1,
                  "minimum_discretizations_COL": 1,
                  "minimum_discretizations_QH": 1,
                  "scale_factor_azimuthal": -1.0,
                  "scale_factor_radial": -1.0
                },
                "global_size": 0.0001
              },
              "iron_field": {
                "DistMax": null,
                "DistMin": null,
                "SizeMax": null,
                "SizeMin": null,
                "enabled": false
              },
              "isothermal_conductors": false,
              "isothermal_wedges": false,
              "poles": {
                "DistMax": null,
                "DistMin": null,
                "SizeMax": null,
                "SizeMin": null,
                "enabled": false
              },
              "reference": {
                "DistMax": null,
                "DistMin": null,
                "SizeMax": null,
                "SizeMin": null,
                "enabled": false
              },
              "wedges": {
                "field": {
                  "DistMax": null,
                  "DistMin": null,
                  "SizeMax": null,
                  "SizeMin": null,
                  "enabled": false
                },
                "transfinite": {
                  "curve_target_size_height": 1.0,
                  "curve_target_size_width": 1.0,
                  "enabled_for": null
                }
              }
            }
          },
          "description": "This dictionary contains the mesh information."
        },
        "solve": {
          "$ref": "#/$defs/MultipoleSolve",
          "default": {
            "coil_windings": {
              "conductor_to_group": [],
              "electrical_pairs": {
                "group_together": [],
                "overwrite_electrical_order": [],
                "reversed": []
              },
              "group_to_coil_section": [],
              "half_turn_length": [],
              "polarities_in_group": []
            },
            "electromagnetics": {
              "non_linear_solver": {
                "abs_tolerance": 0.1,
                "max_iterations": 20,
                "norm_type": "LinfNorm",
                "rel_tolerance": 0.0001,
                "relaxation_factor": 0.7
              },
              "solve_type": null,
              "time_stepping": {
                "T_sim": 1.9,
                "abs_tol_time": 0.0001,
                "breakpoints": [],
                "final_time": 0.0,
                "initial_time": 0.0,
                "initial_time_step": 1e-10,
                "integration_method": "Euler",
                "max_time_step": 10.0,
                "min_time_step": 1e-12,
                "norm_type": "LinfNorm",
                "rel_tol_time": 0.0001
              }
            },
            "thermal": {
              "He_cooling": {
                "enabled": false,
                "heat_transfer_coefficient": 0.0,
                "sides": "outer"
              },
              "collar_cooling": {
                "enabled": false,
                "heat_transfer_coefficient": "CFUN_hHe_T_THe",
                "move_cooling_holes": null,
                "ref_temperature": 0.0,
                "which": "all"
              },
              "enforce_init_temperature_as_minimum": false,
              "init_temperature": 1.9,
              "insulation_TSA": {
                "between_collar": {
                  "material": null
                },
                "block_to_block": {
                  "blocks_connection_overwrite": [],
                  "material": null,
                  "materials_overwrite": [],
                  "thicknesses_overwrite": []
                },
                "exterior": {
                  "blocks": [],
                  "materials_append": [],
                  "thicknesses_append": []
                }
              },
              "jc_degradation_to_zero": {
                "t_trigger": [],
                "turns": []
              },
              "non_linear_solver": {
                "abs_tolerance": 0.1,
                "max_iterations": 20,
                "norm_type": "LinfNorm",
                "rel_tolerance": 0.0001,
                "relaxation_factor": 0.7
              },
              "overwrite_boundary_conditions": {
                "cooling": {},
                "heat_flux": {},
                "temperature": {}
              },
              "solve_type": null,
              "time_stepping": {
                "abs_tol_time": 0.0001,
                "breakpoints": [],
                "final_time": 0.0,
                "initial_time": 0.0,
                "initial_time_step": 1e-10,
                "integration_method": "Euler",
                "max_time_step": 10.0,
                "min_time_step": 1e-12,
                "norm_type": "LinfNorm",
                "rel_tol_time": 0.0001,
                "stop_temperature": 300.0
              }
            },
            "wedges": {
              "RRR": null,
              "T_ref_RRR_high": null,
              "material": null,
              "transient_effects_enabled": false
            },
            "collar": {
              "RRR": null,
              "T_ref_RRR_high": null,
              "material": null,
              "transient_effects_enabled": false
            },
            "iron_yoke": {
              "RRR": null,
              "T_ref_RRR_high": null,
              "material": null,
              "transient_effects_enabled": false
            },
            "poles": {
              "RRR": null,
              "T_ref_RRR_high": null,
              "material": null,
              "transient_effects_enabled": false
            },
            "noOfMPITasks": false,
            "time_stepping": {
              "abs_tol_time": [
                0.0001,
                0.0001
              ],
              "breakpoints": [],
              "final_time": 0.0,
              "initial_time": 0.0,
              "initial_time_step": 1e-10,
              "integration_method": "Euler",
              "max_time_step": 10.0,
              "min_time_step": 1e-12,
              "norm_type": [
                "LinfNorm",
                "LinfNorm"
              ],
              "rel_tol_time": [
                0.0001,
                0.0001
              ],
              "seq_NL": true,
              "stop_temperature": 300.0
            },
            "cable_homogenization": {
              "enabled": false,
              "rohf": {
                "enabled": false,
                "gather_cell_systems": false,
                "parameter_csv_file": null
              },
              "rohm": {
                "enabled": false,
                "gather_cell_systems": false,
                "parameter_csv_file": null,
                "tau_scaling": 1.0,
                "weight_scaling": 1.0
              },
              "run_type": {
                "mode": "ramp",
                "ramp_file": null
              }
            }
          },
          "description": "This dictionary contains the solution information."
        },
        "postproc": {
          "$ref": "#/$defs/MultipolePostProc",
          "default": {
            "electromagnetics": {
              "compare_to_ROXIE": null,
              "output_time_steps_pos": true,
              "output_time_steps_txt": true,
              "plot_all": false,
              "save_pos_at_the_end": true,
              "save_txt_at_the_end": false,
              "variables": [],
              "volumes": []
            },
            "thermal": {
              "output_time_steps_pos": true,
              "output_time_steps_txt": true,
              "plot_all": false,
              "save_pos_at_the_end": true,
              "save_txt_at_the_end": false,
              "take_average_conductor_temperature": true,
              "variables": [
                "T"
              ],
              "volumes": [
                "powered"
              ]
            },
            "circuit_coupling": {
              "assemble_veusz": false,
              "variables_I": [],
              "variables_U": []
            }
          },
          "description": "This dictionary contains the post-process information."
        }
      },
      "title": "Multipole",
      "type": "object"
    },
    "MultipoleGeometry": {
      "description": "Level 2: Class for FiQuS Multipole",
      "properties": {
        "geom_file_path": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "It contains the path to a .geom file. If null, the default .geom file produced by steam-sdk BuilderFiQuS will be used.",
          "title": "Geom File Path"
        },
        "plot_preview": {
          "oneOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": false,
          "description": "If true, it displays matplotlib figures of the magnet geometry with relevant information (e.g., conductor and block numbers).",
          "title": "Plot Preview"
        },
        "electromagnetics": {
          "$ref": "#/$defs/MultipoleGeometryElectromagnetics",
          "default": {
            "create": true,
            "with_wedges": true,
            "areas": [],
            "symmetry": "none"
          },
          "description": "This dictionary contains the geometry information for the electromagnetic solution."
        },
        "thermal": {
          "$ref": "#/$defs/MultipoleGeometryThermal",
          "default": {
            "create": true,
            "with_wedges": true,
            "areas": [],
            "use_TSA": false,
            "correct_block_coil_tsa_checkered_scheme": false,
            "use_TSA_new": false
          },
          "description": "This dictionary contains the geometry information for the thermal solution."
        }
      },
      "title": "MultipoleGeometry",
      "type": "object"
    },
    "MultipoleGeometryElectromagnetics": {
      "description": "Level 2: Class for FiQuS Multipole",
      "properties": {
        "create": {
          "default": true,
          "description": "It determines whether the geometry is built or not.",
          "title": "Create",
          "type": "boolean"
        },
        "with_wedges": {
          "oneOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": true,
          "description": "It determines whether the wedge regions are built or not.",
          "title": "With Wedges"
        },
        "areas": {
          "oneOf": [
            {
              "items": {
                "enum": [
                  "iron_yoke",
                  "collar",
                  "poles"
                ],
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": [],
          "description": "List with areas to build.",
          "title": "Areas"
        },
        "symmetry": {
          "oneOf": [
            {
              "enum": [
                "none",
                "xy",
                "x",
                "y"
              ],
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": "none",
          "description": "It determines the model regions to build according to the specified axis/axes.",
          "title": "Symmetry"
        }
      },
      "title": "MultipoleGeometryElectromagnetics",
      "type": "object"
    },
    "MultipoleGeometryThermal": {
      "description": "Level 2: Class for FiQuS Multipole",
      "properties": {
        "create": {
          "default": true,
          "description": "It determines whether the geometry is built or not.",
          "title": "Create",
          "type": "boolean"
        },
        "with_wedges": {
          "oneOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": true,
          "description": "It determines whether the wedge regions are built or not.",
          "title": "With Wedges"
        },
        "areas": {
          "oneOf": [
            {
              "items": {
                "enum": [
                  "iron_yoke",
                  "collar",
                  "poles"
                ],
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": [],
          "description": "List with areas to build.",
          "title": "Areas"
        },
        "use_TSA": {
          "oneOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": false,
          "description": "It determines whether the insulation regions are explicitly built or modeled via thin-shell approximation.",
          "title": "Use Tsa"
        },
        "correct_block_coil_tsa_checkered_scheme": {
          "oneOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": false,
          "description": "There is a bug in the TSA naming scheme for block coils, this flag activates a simple (not clean) bug fix that will be replaced in a future version.",
          "title": "Correct Block Coil Tsa Checkered Scheme"
        },
        "use_TSA_new": {
          "oneOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": false,
          "description": "It determines whether the regions between collar and coils are modeled via thin-shell approximation.",
          "title": "Use Tsa New"
        }
      },
      "title": "MultipoleGeometryThermal",
      "type": "object"
    },
    "MultipoleMesh": {
      "description": "Level 2: Class for FiQuS Multipole",
      "properties": {
        "electromagnetics": {
          "$ref": "#/$defs/MultipoleMeshElectromagnetics",
          "default": {
            "create": true,
            "conductors": {
              "field": {
                "DistMax": null,
                "DistMin": null,
                "SizeMax": null,
                "SizeMin": null,
                "enabled": false
              },
              "transfinite": {
                "curve_target_size_height": 1.0,
                "curve_target_size_width": 1.0,
                "enabled_for": null
              }
            },
            "wedges": {
              "field": {
                "DistMax": null,
                "DistMin": null,
                "SizeMax": null,
                "SizeMin": null,
                "enabled": false
              },
              "transfinite": {
                "curve_target_size_height": 1.0,
                "curve_target_size_width": 1.0,
                "enabled_for": null
              }
            },
            "iron_field": {
              "DistMax": null,
              "DistMin": null,
              "SizeMax": null,
              "SizeMin": null,
              "enabled": false
            },
            "collar": {
              "DistMax": null,
              "DistMin": null,
              "Enforce_TSA_mapping": false,
              "SizeMax": null,
              "SizeMin": null,
              "enabled": false
            },
            "poles": {
              "DistMax": null,
              "DistMin": null,
              "SizeMax": null,
              "SizeMin": null,
              "enabled": false
            },
            "bore_field": {
              "DistMax": null,
              "DistMin": null,
              "SizeMax": null,
              "SizeMin": null,
              "enabled": false
            }
          },
          "description": "This dictionary contains the mesh information for the electromagnetic solution."
        },
        "thermal": {
          "$ref": "#/$defs/MultipoleMeshThermal",
          "default": {
            "create": true,
            "conductors": {
              "field": {
                "DistMax": null,
                "DistMin": null,
                "SizeMax": null,
                "SizeMin": null,
                "enabled": false
              },
              "transfinite": {
                "curve_target_size_height": 1.0,
                "curve_target_size_width": 1.0,
                "enabled_for": null
              }
            },
            "wedges": {
              "field": {
                "DistMax": null,
                "DistMin": null,
                "SizeMax": null,
                "SizeMin": null,
                "enabled": false
              },
              "transfinite": {
                "curve_target_size_height": 1.0,
                "curve_target_size_width": 1.0,
                "enabled_for": null
              }
            },
            "iron_field": {
              "DistMax": null,
              "DistMin": null,
              "SizeMax": null,
              "SizeMin": null,
              "enabled": false
            },
            "collar": {
              "DistMax": null,
              "DistMin": null,
              "Enforce_TSA_mapping": false,
              "SizeMax": null,
              "SizeMin": null,
              "enabled": false
            },
            "poles": {
              "DistMax": null,
              "DistMin": null,
              "SizeMax": null,
              "SizeMin": null,
              "enabled": false
            },
            "reference": {
              "DistMax": null,
              "DistMin": null,
              "SizeMax": null,
              "SizeMin": null,
              "enabled": false
            },
            "insulation": {
              "TSA": {
                "global_size_COL": 0.0001,
                "global_size_QH": 0.0001,
                "minimum_discretizations": 1,
                "minimum_discretizations_COL": 1,
                "minimum_discretizations_QH": 1,
                "scale_factor_azimuthal": -1.0,
                "scale_factor_radial": -1.0
              },
              "global_size": 0.0001
            },
            "isothermal_conductors": false,
            "isothermal_wedges": false
          },
          "description": "This dictionary contains the mesh information for the thermal solution."
        }
      },
      "title": "MultipoleMesh",
      "type": "object"
    },
    "MultipoleMeshElectromagnetics": {
      "description": "Level 2: Class for FiQuS Multipole",
      "properties": {
        "create": {
          "default": true,
          "description": "It determines whether the mesh is built or not.",
          "title": "Create",
          "type": "boolean"
        },
        "conductors": {
          "oneOf": [
            {
              "$ref": "#/$defs/MultipoleMeshTransfiniteOrField"
            },
            {
              "type": "null"
            }
          ],
          "default": {
            "transfinite": {
              "curve_target_size_height": 1.0,
              "curve_target_size_width": 1.0,
              "enabled_for": null
            },
            "field": {
              "DistMax": null,
              "DistMin": null,
              "SizeMax": null,
              "SizeMin": null,
              "enabled": false
            }
          },
          "description": "This dictionary contains the mesh information for the conductor regions."
        },
        "wedges": {
          "oneOf": [
            {
              "$ref": "#/$defs/MultipoleMeshTransfiniteOrField"
            },
            {
              "type": "null"
            }
          ],
          "default": {
            "transfinite": {
              "curve_target_size_height": 1.0,
              "curve_target_size_width": 1.0,
              "enabled_for": null
            },
            "field": {
              "DistMax": null,
              "DistMin": null,
              "SizeMax": null,
              "SizeMin": null,
              "enabled": false
            }
          },
          "description": "This dictionary contains the mesh information for the wedge regions."
        },
        "iron_field": {
          "oneOf": [
            {
              "$ref": "#/$defs/MultipoleMeshThreshold"
            },
            {
              "type": "null"
            }
          ],
          "default": {
            "enabled": false,
            "SizeMin": null,
            "SizeMax": null,
            "DistMin": null,
            "DistMax": null
          },
          "description": "This dictionary contains the gmsh Field information for the iron yoke region."
        },
        "collar": {
          "oneOf": [
            {
              "$ref": "#/$defs/MultipoleMeshThresholdCollar"
            },
            {
              "type": "null"
            }
          ],
          "default": {
            "enabled": false,
            "SizeMin": null,
            "SizeMax": null,
            "DistMin": null,
            "DistMax": null,
            "Enforce_TSA_mapping": false
          },
          "description": "This dictionary contains the gmsh Field information for the collar region."
        },
        "poles": {
          "oneOf": [
            {
              "$ref": "#/$defs/MultipoleMeshThreshold"
            },
            {
              "type": "null"
            }
          ],
          "default": {
            "enabled": false,
            "SizeMin": null,
            "SizeMax": null,
            "DistMin": null,
            "DistMax": null
          },
          "description": "This dictionary contains the mesh information for the poles region."
        },
        "bore_field": {
          "oneOf": [
            {
              "$ref": "#/$defs/MultipoleMeshThreshold"
            },
            {
              "type": "null"
            }
          ],
          "default": {
            "enabled": false,
            "SizeMin": null,
            "SizeMax": null,
            "DistMin": null,
            "DistMax": null
          },
          "description": "This dictionary contains the gmsh Field information for the bore region."
        }
      },
      "title": "MultipoleMeshElectromagnetics",
      "type": "object"
    },
    "MultipoleMeshThermal": {
      "description": "Level 2: Class for FiQuS Multipole",
      "properties": {
        "create": {
          "default": true,
          "description": "It determines whether the mesh is built or not.",
          "title": "Create",
          "type": "boolean"
        },
        "conductors": {
          "oneOf": [
            {
              "$ref": "#/$defs/MultipoleMeshTransfiniteOrField"
            },
            {
              "type": "null"
            }
          ],
          "default": {
            "transfinite": {
              "curve_target_size_height": 1.0,
              "curve_target_size_width": 1.0,
              "enabled_for": null
            },
            "field": {
              "DistMax": null,
              "DistMin": null,
              "SizeMax": null,
              "SizeMin": null,
              "enabled": false
            }
          },
          "description": "This dictionary contains the mesh information for the conductor regions."
        },
        "wedges": {
          "oneOf": [
            {
              "$ref": "#/$defs/MultipoleMeshTransfiniteOrField"
            },
            {
              "type": "null"
            }
          ],
          "default": {
            "transfinite": {
              "curve_target_size_height": 1.0,
              "curve_target_size_width": 1.0,
              "enabled_for": null
            },
            "field": {
              "DistMax": null,
              "DistMin": null,
              "SizeMax": null,
              "SizeMin": null,
              "enabled": false
            }
          },
          "description": "This dictionary contains the mesh information for the wedge regions."
        },
        "iron_field": {
          "oneOf": [
            {
              "$ref": "#/$defs/MultipoleMeshThreshold"
            },
            {
              "type": "null"
            }
          ],
          "default": {
            "enabled": false,
            "SizeMin": null,
            "SizeMax": null,
            "DistMin": null,
            "DistMax": null
          },
          "description": "This dictionary contains the gmsh Field information for the iron yoke region."
        },
        "collar": {
          "oneOf": [
            {
              "$ref": "#/$defs/MultipoleMeshThresholdCollar"
            },
            {
              "type": "null"
            }
          ],
          "default": {
            "enabled": false,
            "SizeMin": null,
            "SizeMax": null,
            "DistMin": null,
            "DistMax": null,
            "Enforce_TSA_mapping": false
          },
          "description": "This dictionary contains the gmsh Field information for the collar region."
        },
        "poles": {
          "oneOf": [
            {
              "$ref": "#/$defs/MultipoleMeshThreshold"
            },
            {
              "type": "null"
            }
          ],
          "default": {
            "enabled": false,
            "SizeMin": null,
            "SizeMax": null,
            "DistMin": null,
            "DistMax": null
          },
          "description": "This dictionary contains the mesh information for the poles region."
        },
        "reference": {
          "oneOf": [
            {
              "$ref": "#/$defs/MultipoleMeshThreshold"
            },
            {
              "type": "null"
            }
          ],
          "default": {
            "enabled": false,
            "SizeMin": null,
            "SizeMax": null,
            "DistMin": null,
            "DistMax": null
          },
          "description": "It determines whether the reference mesh is built or not. If True, an additional layer between the insulation and collar is meshed"
        },
        "insulation": {
          "oneOf": [
            {
              "$ref": "#/$defs/MultipoleThermalInsulationMesh"
            },
            {
              "type": "null"
            }
          ],
          "default": {
            "global_size": 0.0001,
            "TSA": {
              "global_size_COL": 0.0001,
              "global_size_QH": 0.0001,
              "minimum_discretizations": 1,
              "minimum_discretizations_COL": 1,
              "minimum_discretizations_QH": 1,
              "scale_factor_azimuthal": -1.0,
              "scale_factor_radial": -1.0
            }
          },
          "description": "This dictionary contains the mesh information for the insulation regions."
        },
        "isothermal_conductors": {
          "oneOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": false,
          "description": "It determines whether the conductors are considered isothermal or not using getDP constraints.",
          "title": "Isothermal Conductors"
        },
        "isothermal_wedges": {
          "oneOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": false,
          "description": "It determines whether the wedges are considered isothermal or not using getDP Link constraints.",
          "title": "Isothermal Wedges"
        }
      },
      "title": "MultipoleMeshThermal",
      "type": "object"
    },
    "MultipoleMeshThinShellApproximationParameters": {
      "description": "Level 4: Class for FiQuS Multipole",
      "properties": {
        "minimum_discretizations": {
          "oneOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": 1,
          "description": "It specifies the number of minimum spacial discretizations across a thin-shell.",
          "title": "Minimum Discretizations"
        },
        "global_size_QH": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 0.0001,
          "description": "The thickness of the quench heater region is divided by this parameter to determine the number of spacial discretizations across the thin-shell.",
          "title": "Global Size Qh"
        },
        "minimum_discretizations_QH": {
          "oneOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": 1,
          "description": "It specifies the number of minimum spacial discretizations across a thin-shell.",
          "title": "Minimum Discretizations Qh"
        },
        "global_size_COL": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 0.0001,
          "description": "The thickness of the region between ht and collar is divided by this parameter to determine the number of spacial discretizations across the thin-shell.",
          "title": "Global Size Col"
        },
        "minimum_discretizations_COL": {
          "oneOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": 1,
          "description": "It specifies the number of minimum spacial discretizations across a thin-shell.",
          "title": "Minimum Discretizations Col"
        },
        "scale_factor_radial": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": -1.0,
          "description": "Scaling factor for radially directed thin-shells (e.g. halfturns to collar). Set to -1.0 to use default scaling. Wedge scalings are always ignored.",
          "title": "Scale Factor Radial"
        },
        "scale_factor_azimuthal": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": -1.0,
          "description": "Scaling factor for azimuthally directed thin-shells (e.g. halfturns to pole). Set to -1.0 to use default scaling. Wedge scalings are always ignored.",
          "title": "Scale Factor Azimuthal"
        }
      },
      "title": "MultipoleMeshThinShellApproximationParameters",
      "type": "object"
    },
    "MultipoleMeshThreshold": {
      "description": "Level 3: Class for FiQuS Multipole",
      "properties": {
        "enabled": {
          "oneOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": false,
          "description": "It determines whether the gmsh Field is enabled or not.",
          "title": "Enabled"
        },
        "SizeMin": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "It sets gmsh Mesh.MeshSizeMin.",
          "title": "Sizemin"
        },
        "SizeMax": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "It sets gmsh Mesh.MeshSizeMax.",
          "title": "Sizemax"
        },
        "DistMin": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "It sets gmsh Mesh.MeshDistMin.",
          "title": "Distmin"
        },
        "DistMax": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "It sets gmsh Mesh.MeshDistMax.",
          "title": "Distmax"
        }
      },
      "title": "MultipoleMeshThreshold",
      "type": "object"
    },
    "MultipoleMeshThresholdCollar": {
      "description": "Level 3: Class for FiQuS Multipole",
      "properties": {
        "enabled": {
          "oneOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": false,
          "description": "It determines whether the gmsh Field is enabled or not.",
          "title": "Enabled"
        },
        "SizeMin": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "It sets gmsh Mesh.MeshSizeMin.",
          "title": "Sizemin"
        },
        "SizeMax": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "It sets gmsh Mesh.MeshSizeMax.",
          "title": "Sizemax"
        },
        "DistMin": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "It sets gmsh Mesh.MeshDistMin.",
          "title": "Distmin"
        },
        "DistMax": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "It sets gmsh Mesh.MeshDistMax.",
          "title": "Distmax"
        },
        "Enforce_TSA_mapping": {
          "oneOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": false,
          "description": "Enfocres matching nodes for the TSA layer. Uses SizeMin to determine the size of the nodes.",
          "title": "Enforce Tsa Mapping"
        }
      },
      "title": "MultipoleMeshThresholdCollar",
      "type": "object"
    },
    "MultipoleMeshTransfinite": {
      "description": "Level 3: Class for FiQuS Multipole",
      "properties": {
        "enabled_for": {
          "default": null,
          "description": "It determines on what entities the transfinite algorithm is applied.",
          "enum": [
            null,
            "curves",
            "curves_and_surfaces"
          ],
          "title": "Enabled For"
        },
        "curve_target_size_height": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 1.0,
          "description": "The height of the region (short side) is divided by this parameter to determine the number of elements to apply via transfinite curves.",
          "title": "Curve Target Size Height"
        },
        "curve_target_size_width": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 1.0,
          "description": "The width of the region (long side) is divided by this parameter to determine the number of elements to apply via transfinite curves.",
          "title": "Curve Target Size Width"
        }
      },
      "title": "MultipoleMeshTransfinite",
      "type": "object"
    },
    "MultipoleMeshTransfiniteOrField": {
      "description": "Level 3: Class for FiQuS Multipole",
      "properties": {
        "transfinite": {
          "$ref": "#/$defs/MultipoleMeshTransfinite",
          "default": {
            "enabled_for": null,
            "curve_target_size_height": 1.0,
            "curve_target_size_width": 1.0
          },
          "description": "This dictionary contains the mesh information for transfinite curves."
        },
        "field": {
          "$ref": "#/$defs/MultipoleMeshThreshold",
          "default": {
            "enabled": false,
            "SizeMin": null,
            "SizeMax": null,
            "DistMin": null,
            "DistMax": null
          },
          "description": "This dictionary contains the gmsh Field information."
        }
      },
      "title": "MultipoleMeshTransfiniteOrField",
      "type": "object"
    },
    "MultipolePostProc": {
      "description": "Level 2: Class for FiQuS Multipole",
      "properties": {
        "electromagnetics": {
          "$ref": "#/$defs/MultipolePostProcElectromagnetics",
          "default": {
            "output_time_steps_pos": true,
            "output_time_steps_txt": true,
            "save_pos_at_the_end": true,
            "save_txt_at_the_end": false,
            "plot_all": false,
            "compare_to_ROXIE": null,
            "variables": [],
            "volumes": []
          },
          "description": "This dictionary contains the post-processing information for the electromagnetic solution."
        },
        "thermal": {
          "$ref": "#/$defs/MultipolePostProcThermal",
          "default": {
            "output_time_steps_pos": true,
            "output_time_steps_txt": true,
            "save_pos_at_the_end": true,
            "save_txt_at_the_end": false,
            "plot_all": false,
            "take_average_conductor_temperature": true,
            "variables": [
              "T"
            ],
            "volumes": [
              "powered"
            ]
          },
          "description": "This dictionary contains the post-processing information for the thermal solution."
        },
        "circuit_coupling": {
          "$ref": "#/$defs/CCPostProc",
          "default": {
            "variables_I": [],
            "variables_U": [],
            "assemble_veusz": false
          },
          "description": "This dictionary contains the post-processing information for the circuit variables calculated in the solution."
        }
      },
      "title": "MultipolePostProc",
      "type": "object"
    },
    "MultipolePostProcElectromagnetics": {
      "description": "Level 2: Class for FiQuS Multipole",
      "properties": {
        "output_time_steps_pos": {
          "oneOf": [
            {
              "type": "boolean"
            },
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": true,
          "description": "It determines whether the solution for the .pos file is saved for all time steps (True), none (False), or equidistant time steps (int).",
          "title": "Output Time Steps Pos"
        },
        "output_time_steps_txt": {
          "oneOf": [
            {
              "type": "boolean"
            },
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": true,
          "description": "It determines whether the solution for the .txt file is saved for all time steps (True), none (False), or equidistant time steps (int).",
          "title": "Output Time Steps Txt"
        },
        "save_pos_at_the_end": {
          "oneOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": true,
          "description": "It determines whether the solution for the .pos file is saved at the end of the simulation or during run time.",
          "title": "Save Pos At The End"
        },
        "save_txt_at_the_end": {
          "oneOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": false,
          "description": "It determines whether the solution for the .txt file is saved at the end of the simulation or during run time.",
          "title": "Save Txt At The End"
        },
        "plot_all": {
          "oneOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": false,
          "description": "It determines whether the figures are generated and shown (true), generated only (null), or not generated (false). Useful for tests.",
          "title": "Plot All"
        },
        "compare_to_ROXIE": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "It contains the absolute path to a reference ROXIE map2d file. If provided, comparative plots with respect to the reference are generated.",
          "title": "Compare To Roxie"
        },
        "variables": {
          "oneOf": [
            {
              "items": {
                "enum": [
                  "a",
                  "az",
                  "b",
                  "h",
                  "js",
                  "jOverJc",
                  "sigma_collar",
                  "is"
                ],
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": [],
          "description": "It specifies the physical quantity to be output.",
          "title": "Variables"
        },
        "volumes": {
          "oneOf": [
            {
              "items": {
                "enum": [
                  "omega",
                  "powered",
                  "induced",
                  "air",
                  "air_far_field",
                  "iron",
                  "conducting",
                  "insulator"
                ],
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": [],
          "description": "It specifies the regions associated with the physical quantity to be output.",
          "title": "Volumes"
        }
      },
      "title": "MultipolePostProcElectromagnetics",
      "type": "object"
    },
    "MultipolePostProcThermal": {
      "description": "Level 2: Class for FiQuS Multipole",
      "properties": {
        "output_time_steps_pos": {
          "oneOf": [
            {
              "type": "boolean"
            },
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": true,
          "description": "It determines whether the solution for the .pos file is saved for all time steps (True), none (False), or equidistant time steps (int).",
          "title": "Output Time Steps Pos"
        },
        "output_time_steps_txt": {
          "oneOf": [
            {
              "type": "boolean"
            },
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": true,
          "description": "It determines whether the solution for the .txt file is saved for all time steps (True), none (False), or equidistant time steps (int).",
          "title": "Output Time Steps Txt"
        },
        "save_pos_at_the_end": {
          "oneOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": true,
          "description": "It determines whether the solution for the .pos file is saved at the end of the simulation or during run time.",
          "title": "Save Pos At The End"
        },
        "save_txt_at_the_end": {
          "oneOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": false,
          "description": "It determines whether the solution for the .txt file is saved at the end of the simulation or during run time.",
          "title": "Save Txt At The End"
        },
        "plot_all": {
          "oneOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": false,
          "description": "It determines whether the figures are generated and shown (true), generated only (null), or not generated (false). Useful for tests.",
          "title": "Plot All"
        },
        "take_average_conductor_temperature": {
          "oneOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": true,
          "description": "It determines whether the output files are based on the average conductor temperature or not (map2d).",
          "title": "Take Average Conductor Temperature"
        },
        "variables": {
          "oneOf": [
            {
              "items": {
                "enum": [
                  "T",
                  "jOverJc",
                  "rho",
                  "az_thermal",
                  "ac_loss"
                ],
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": [
            "T"
          ],
          "description": "It specifies the physical quantity to be output.",
          "title": "Variables"
        },
        "volumes": {
          "oneOf": [
            {
              "items": {
                "enum": [
                  "omega",
                  "powered",
                  "induced",
                  "iron",
                  "conducting",
                  "insulator"
                ],
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": [
            "powered"
          ],
          "description": "It specifies the regions associated with the physical quantity to be output.",
          "title": "Volumes"
        }
      },
      "title": "MultipolePostProcThermal",
      "type": "object"
    },
    "MultipoleSolve": {
      "description": "Level 2: Class for FiQuS Multipole",
      "properties": {
        "coil_windings": {
          "oneOf": [
            {
              "$ref": "#/$defs/MultipoleSolveCoilWindings"
            },
            {
              "type": "null"
            }
          ],
          "default": {
            "conductor_to_group": [],
            "group_to_coil_section": [],
            "polarities_in_group": [],
            "half_turn_length": [],
            "electrical_pairs": {
              "group_together": [],
              "overwrite_electrical_order": [],
              "reversed": []
            }
          },
          "description": "This dictionary contains the information pertaining the number of coils and electrical order necessary to generate the associated electrical circuit"
        },
        "electromagnetics": {
          "$ref": "#/$defs/MultipoleSolveElectromagnetics",
          "default": {
            "non_linear_solver": {
              "abs_tolerance": 0.1,
              "max_iterations": 20,
              "norm_type": "LinfNorm",
              "rel_tolerance": 0.0001,
              "relaxation_factor": 0.7
            },
            "solve_type": null,
            "time_stepping": {
              "T_sim": 1.9,
              "abs_tol_time": 0.0001,
              "breakpoints": [],
              "final_time": 0.0,
              "initial_time": 0.0,
              "initial_time_step": 1e-10,
              "integration_method": "Euler",
              "max_time_step": 10.0,
              "min_time_step": 1e-12,
              "norm_type": "LinfNorm",
              "rel_tol_time": 0.0001
            }
          },
          "description": "This dictionary contains the solver information for the electromagnetic solution."
        },
        "thermal": {
          "$ref": "#/$defs/MultipoleSolveThermal",
          "default": {
            "non_linear_solver": {
              "abs_tolerance": 0.1,
              "max_iterations": 20,
              "norm_type": "LinfNorm",
              "rel_tolerance": 0.0001,
              "relaxation_factor": 0.7
            },
            "solve_type": null,
            "insulation_TSA": {
              "between_collar": {
                "material": null
              },
              "block_to_block": {
                "blocks_connection_overwrite": [],
                "material": null,
                "materials_overwrite": [],
                "thicknesses_overwrite": []
              },
              "exterior": {
                "blocks": [],
                "materials_append": [],
                "thicknesses_append": []
              }
            },
            "He_cooling": {
              "enabled": false,
              "heat_transfer_coefficient": 0.0,
              "sides": "outer"
            },
            "collar_cooling": {
              "enabled": false,
              "heat_transfer_coefficient": "CFUN_hHe_T_THe",
              "move_cooling_holes": null,
              "ref_temperature": 0.0,
              "which": "all"
            },
            "overwrite_boundary_conditions": {
              "cooling": {},
              "heat_flux": {},
              "temperature": {}
            },
            "time_stepping": {
              "abs_tol_time": 0.0001,
              "breakpoints": [],
              "final_time": 0.0,
              "initial_time": 0.0,
              "initial_time_step": 1e-10,
              "integration_method": "Euler",
              "max_time_step": 10.0,
              "min_time_step": 1e-12,
              "norm_type": "LinfNorm",
              "rel_tol_time": 0.0001,
              "stop_temperature": 300.0
            },
            "jc_degradation_to_zero": {
              "t_trigger": [],
              "turns": []
            },
            "init_temperature": 1.9,
            "enforce_init_temperature_as_minimum": false
          },
          "description": "This dictionary contains the solver information for the thermal solution."
        },
        "wedges": {
          "$ref": "#/$defs/MultipoleSolveSpecificMaterial",
          "default": {
            "material": null,
            "RRR": null,
            "T_ref_RRR_high": null,
            "transient_effects_enabled": false
          },
          "description": "This dictionary contains the material information of wedges."
        },
        "collar": {
          "$ref": "#/$defs/MultipoleSolveSpecificMaterial",
          "default": {
            "material": null,
            "RRR": null,
            "T_ref_RRR_high": null,
            "transient_effects_enabled": false
          },
          "description": "This dictionary contains the material information of the collar region."
        },
        "iron_yoke": {
          "$ref": "#/$defs/MultipoleSolveSpecificMaterial",
          "default": {
            "material": null,
            "RRR": null,
            "T_ref_RRR_high": null,
            "transient_effects_enabled": false
          },
          "description": "This dictionary contains the material information of the iron yoke region."
        },
        "poles": {
          "$ref": "#/$defs/MultipoleSolveSpecificMaterial",
          "default": {
            "material": null,
            "RRR": null,
            "T_ref_RRR_high": null,
            "transient_effects_enabled": false
          },
          "description": "This dictionary contains the material information of the pole region."
        },
        "noOfMPITasks": {
          "oneOf": [
            {
              "type": "boolean"
            },
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": false,
          "description": "If integer, GetDP will be run in parallel using MPI. This is only valid if MPI is installed on the system and an MPI-enabled GetDP is used. If False, GetDP will be run in serial without invoking mpiexec.",
          "title": "No. of tasks for MPI parallel run of GetDP"
        },
        "time_stepping": {
          "oneOf": [
            {
              "$ref": "#/$defs/MultipoleSolveTransientCoupled"
            },
            {
              "type": "null"
            }
          ],
          "default": {
            "initial_time": 0.0,
            "final_time": 0.0,
            "initial_time_step": 1e-10,
            "min_time_step": 1e-12,
            "max_time_step": 10.0,
            "breakpoints": [],
            "integration_method": "Euler",
            "rel_tol_time": [
              0.0001,
              0.0001
            ],
            "abs_tol_time": [
              0.0001,
              0.0001
            ],
            "norm_type": [
              "LinfNorm",
              "LinfNorm"
            ],
            "stop_temperature": 300.0,
            "seq_NL": true
          },
          "description": "This dictionary contains the information about the parameters for the transient solver."
        },
        "cable_homogenization": {
          "oneOf": [
            {
              "$ref": "#/$defs/fiqus__data__DataFiQuSMultipole__HomogenizedConductor"
            },
            {
              "type": "null"
            }
          ],
          "default": {
            "enabled": false,
            "run_type": {
              "mode": "ramp",
              "ramp_file": null
            },
            "rohm": {
              "enabled": false,
              "gather_cell_systems": false,
              "parameter_csv_file": null,
              "tau_scaling": 1.0,
              "weight_scaling": 1.0
            },
            "rohf": {
              "enabled": false,
              "gather_cell_systems": false,
              "parameter_csv_file": null
            }
          },
          "description": "This dictionary contains the information about the homogenized conductor properties."
        }
      },
      "title": "MultipoleSolve",
      "type": "object"
    },
    "MultipoleSolveBoundaryConditionsThermal": {
      "description": "Level 4: Class for FiQuS Multipole",
      "properties": {
        "temperature": {
          "oneOf": [
            {
              "type": "object",
              "additionalProperties": {
                "$ref": "#/$defs/MultipoleSolveTemperatureBoundaryCondition"
              }
            },
            {
              "type": "null"
            }
          ],
          "default": {},
          "description": "This dictionary contains the information about the Dirichlet boundary conditions.The keys are chosen names for each boundary condition.",
          "title": "Temperature"
        },
        "heat_flux": {
          "oneOf": [
            {
              "type": "object",
              "additionalProperties": {
                "$ref": "#/$defs/MultipoleSolveHeatFluxBoundaryCondition"
              }
            },
            {
              "type": "null"
            }
          ],
          "default": {},
          "description": "This dictionary contains the information about the Neumann boundary conditions.The keys are chosen names for each boundary condition.",
          "title": "Heat Flux"
        },
        "cooling": {
          "oneOf": [
            {
              "type": "object",
              "additionalProperties": {
                "$ref": "#/$defs/MultipoleSolveConvectionBoundaryCondition"
              }
            },
            {
              "type": "null"
            }
          ],
          "default": {},
          "description": "This dictionary contains the information about the Robin boundary conditions.The keys are chosen names for each boundary condition.",
          "title": "Cooling"
        }
      },
      "title": "MultipoleSolveBoundaryConditionsThermal",
      "type": "object"
    },
    "MultipoleSolveCoilWindings": {
      "description": "Level 1: Class for winding information",
      "properties": {
        "conductor_to_group": {
          "oneOf": [
            {
              "items": {
                "type": "integer"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": [],
          "title": "Conductor To Group"
        },
        "group_to_coil_section": {
          "oneOf": [
            {
              "items": {
                "type": "integer"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": [],
          "title": "Group To Coil Section"
        },
        "polarities_in_group": {
          "oneOf": [
            {
              "items": {
                "type": "integer"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": [],
          "title": "Polarities In Group"
        },
        "half_turn_length": {
          "oneOf": [
            {
              "items": {
                "type": "number"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": [],
          "title": "Half Turn Length"
        },
        "electrical_pairs": {
          "oneOf": [
            {
              "$ref": "#/$defs/MultipoleSolveCoilWindingsElectricalOrder"
            },
            {
              "type": "null"
            }
          ],
          "default": {
            "group_together": [],
            "reversed": [],
            "overwrite_electrical_order": []
          }
        }
      },
      "title": "MultipoleSolveCoilWindings",
      "type": "object"
    },
    "MultipoleSolveCoilWindingsElectricalOrder": {
      "description": "Level 2: Class for the order of the electrical pairs",
      "properties": {
        "group_together": {
          "oneOf": [
            {
              "items": {
                "items": {
                  "type": "integer"
                },
                "type": "array"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": [],
          "title": "Group Together"
        },
        "reversed": {
          "oneOf": [
            {
              "items": {
                "type": "integer"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": [],
          "title": "Reversed"
        },
        "overwrite_electrical_order": {
          "oneOf": [
            {
              "items": {
                "type": "integer"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": [],
          "title": "Overwrite Electrical Order"
        }
      },
      "title": "MultipoleSolveCoilWindingsElectricalOrder",
      "type": "object"
    },
    "MultipoleSolveConvectionBoundaryCondition": {
      "description": "Level 5: Class for FiQuS Multipole",
      "properties": {
        "boundaries": {
          "oneOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": [],
          "description": "It specifies the list of boundaries where the condition is applied.Each boundary is identified by a string of the form <half-turn/wedge reference number><side>,where the accepted sides are i, o, l, h which correspond respectively to inner, outer, lower (angle), higher (angle): e.g., 1o",
          "title": "Boundaries"
        },
        "heat_transfer_coefficient": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "It specifies the value or function name of the heat transfer coefficient for this boundary condition.",
          "title": "Heat Transfer Coefficient"
        }
      },
      "title": "MultipoleSolveConvectionBoundaryCondition",
      "type": "object"
    },
    "MultipoleSolveElectromagnetics": {
      "description": "Level 3: Class for FiQuS Multipole",
      "properties": {
        "non_linear_solver": {
          "$ref": "#/$defs/MultipoleSolveNonLinearSolver",
          "default": {
            "rel_tolerance": 0.0001,
            "abs_tolerance": 0.1,
            "relaxation_factor": 0.7,
            "max_iterations": 20,
            "norm_type": "LinfNorm"
          },
          "description": "This dictionary contains the information about the parameters for the non-linear solver."
        },
        "solve_type": {
          "oneOf": [
            {
              "enum": [
                null,
                "stationary",
                "transient"
              ]
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "It determines whether the magneto-static problem is solved ('stationary') or not ('null').",
          "title": "Solve Type"
        },
        "time_stepping": {
          "oneOf": [
            {
              "$ref": "#/$defs/MultipoleSolveTransientElectromagnetics"
            },
            {
              "type": "null"
            }
          ],
          "default": {
            "initial_time": 0.0,
            "final_time": 0.0,
            "initial_time_step": 1e-10,
            "min_time_step": 1e-12,
            "max_time_step": 10.0,
            "breakpoints": [],
            "integration_method": "Euler",
            "rel_tol_time": 0.0001,
            "abs_tol_time": 0.0001,
            "norm_type": "LinfNorm",
            "T_sim": 1.9
          },
          "description": "This dictionary contains the information about the parameters for the transient solver."
        }
      },
      "title": "MultipoleSolveElectromagnetics",
      "type": "object"
    },
    "MultipoleSolveHeCooling": {
      "description": "Level 4: Class for FiQuS Multipole",
      "properties": {
        "enabled": {
          "oneOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": false,
          "description": "It determines whether the helium cooling is enabled or not (adiabatic conditions).",
          "title": "Enabled"
        },
        "sides": {
          "oneOf": [
            {
              "enum": [
                "external",
                "inner",
                "outer",
                "inner_outer"
              ],
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": "outer",
          "description": "It specifies the general grouping of the boundaries where to apply cooling:'external': all external boundaries; 'inner': only inner boundaries; 'outer': only outer boundaries; 'inner_outer': inner and outer boundaries.",
          "title": "Sides"
        },
        "heat_transfer_coefficient": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 0.0,
          "description": "It specifies the value or name of the function of the constant heat transfer coefficient.",
          "title": "Heat Transfer Coefficient"
        }
      },
      "title": "MultipoleSolveHeCooling",
      "type": "object"
    },
    "MultipoleSolveHeatFluxBoundaryCondition": {
      "description": "Level 5: Class for FiQuS Multipole",
      "properties": {
        "boundaries": {
          "oneOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": [],
          "description": "It specifies the list of boundaries where the condition is applied.Each boundary is identified by a string of the form <half-turn/wedge reference number><side>,where the accepted sides are i, o, l, h which correspond respectively to inner, outer, lower (angle), higher (angle): e.g., 1o",
          "title": "Boundaries"
        },
        "const_heat_flux": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "It specifies the value of the heat flux for this boundary condition.",
          "title": "Const Heat Flux"
        }
      },
      "title": "MultipoleSolveHeatFluxBoundaryCondition",
      "type": "object"
    },
    "MultipoleSolveInsulationBlockToBlock": {
      "description": "Level 4: Class for FiQuS Multipole\nIt contains the information about the materials and thicknesses of the inner insulation regions (between blocks) modeled via thin-shell approximation.",
      "properties": {
        "material": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "It specifies the default material of the insulation regions between the blocks insulation regions.",
          "title": "Material"
        },
        "blocks_connection_overwrite": {
          "default": [],
          "description": "It specifies the blocks couples adjacent to the insulation region.The blocks must be ordered from inner to outer block for mid-layer insulation regions and from lower to higher angle block for mid-pole and mid-winding insulation regions.",
          "items": {
            "maxItems": 2,
            "minItems": 2,
            "prefixItems": [
              {
                "type": "string"
              },
              {
                "type": "string"
              }
            ],
            "type": "array"
          },
          "title": "Blocks Connection Overwrite",
          "type": "array"
        },
        "materials_overwrite": {
          "oneOf": [
            {
              "items": {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": [],
          "description": "It specifies the list of materials making up the layered insulation region to be placed between the specified blocks.The materials must be ordered from inner to outer layers and lower to higher angle layers.",
          "title": "Materials Overwrite"
        },
        "thicknesses_overwrite": {
          "oneOf": [
            {
              "items": {
                "items": {
                  "oneOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "type": "array"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": [],
          "description": "It specifies the list of thicknesses of the specified insulation layers. The order must match the one of the materials list.",
          "title": "Thicknesses Overwrite"
        }
      },
      "title": "MultipoleSolveInsulationBlockToBlock",
      "type": "object"
    },
    "MultipoleSolveInsulationExterior": {
      "description": "Level 4: Class for FiQuS Multipole\nIt contains the information about the materials and thicknesses of the outer insulation regions (exterior boundaries) modeled via thin-shell approximation.",
      "properties": {
        "blocks": {
          "oneOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": [],
          "description": "It specifies the reference numbers of the blocks adjacent to the exterior insulation regions to modify.",
          "title": "Blocks"
        },
        "materials_append": {
          "oneOf": [
            {
              "items": {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": [],
          "description": "It specifies the list of materials making up the layered insulation region to be appended to the block insulation.The materials must be ordered from the block outward.",
          "title": "Materials Append"
        },
        "thicknesses_append": {
          "oneOf": [
            {
              "items": {
                "items": {
                  "type": "number"
                },
                "type": "array"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": [],
          "description": "It specifies the list of thicknesses of the specified insulation layers. The order must match the one of the materials list.",
          "title": "Thicknesses Append"
        }
      },
      "title": "MultipoleSolveInsulationExterior",
      "type": "object"
    },
    "MultipoleSolveInsulationTSA": {
      "description": "Level 3: Class for FiQuS Multipole",
      "properties": {
        "block_to_block": {
          "$ref": "#/$defs/MultipoleSolveInsulationBlockToBlock",
          "default": {
            "material": null,
            "blocks_connection_overwrite": [],
            "materials_overwrite": [],
            "thicknesses_overwrite": []
          },
          "description": "This dictionary contains the information about the materials and thicknesses of the inner insulation regions (between blocks) modeled via thin-shell approximation."
        },
        "exterior": {
          "oneOf": [
            {
              "$ref": "#/$defs/MultipoleSolveInsulationExterior"
            },
            {
              "type": "null"
            }
          ],
          "default": {
            "blocks": [],
            "materials_append": [],
            "thicknesses_append": []
          },
          "description": "This dictionary contains the information about the materials and thicknesses of the outer insulation regions (exterior boundaries) modeled via thin-shell approximation."
        },
        "between_collar": {
          "oneOf": [
            {
              "$ref": "#/$defs/MultipoleSolveInsulationBlockToBlock"
            },
            {
              "type": "null"
            }
          ],
          "default": {
            "material": null
          },
          "description": "This dictionary contains the information about the materials and thicknesses of the insulation regions between the collar and the outer insulation regions for thin-shell approximation."
        }
      },
      "title": "MultipoleSolveInsulationTSA",
      "type": "object"
    },
    "MultipoleSolveNonLinearSolver": {
      "description": "Level 4: Class for FiQuS Multipole",
      "properties": {
        "rel_tolerance": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 0.0001,
          "description": "It specifies the relative tolerance.",
          "title": "Rel Tolerance"
        },
        "abs_tolerance": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 0.1,
          "description": "It specifies the absolute tolerance.",
          "title": "Abs Tolerance"
        },
        "relaxation_factor": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 0.7,
          "description": "It specifies the relaxation factor.",
          "title": "Relaxation Factor"
        },
        "max_iterations": {
          "oneOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": 20,
          "description": "It specifies the maximum number of iterations if no convergence is reached.",
          "title": "Max Iterations"
        },
        "norm_type": {
          "default": "LinfNorm",
          "description": "It specifies the type of norm to be calculated for convergence assessment.",
          "enum": [
            "L1Norm",
            "MeanL1Norm",
            "L2Norm",
            "MeanL2Norm",
            "LinfNorm"
          ],
          "title": "Norm Type",
          "type": "string"
        }
      },
      "title": "MultipoleSolveNonLinearSolver",
      "type": "object"
    },
    "MultipoleSolveQuenchInitiation": {
      "description": "Level 4: Class for FiQuS Multipole",
      "properties": {
        "turns": {
          "oneOf": [
            {
              "items": {
                "type": "integer"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": [],
          "description": "It specifies the list of reference numbers of half-turns whose critical currents are set to zero.",
          "title": "Turns"
        },
        "t_trigger": {
          "oneOf": [
            {
              "items": {
                "type": "number"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": [],
          "description": "It specifies the list of time instants at which the critical current is set to zero.",
          "title": "T Trigger"
        }
      },
      "title": "MultipoleSolveQuenchInitiation",
      "type": "object"
    },
    "MultipoleSolveSpecificMaterial": {
      "description": "Level 3: Class for FiQuS Multipole",
      "properties": {
        "material": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "It specifies the material of the region.",
          "title": "Material"
        },
        "RRR": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "It specifies the RRR of the region.",
          "title": "Rrr"
        },
        "T_ref_RRR_high": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "It specifies the reference temperature associated with the RRR.",
          "title": "T Ref Rrr High"
        },
        "transient_effects_enabled": {
          "oneOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": false,
          "description": "It determines whether the transient effects are enabled or not.",
          "title": "Transient Effects Enabled"
        }
      },
      "title": "MultipoleSolveSpecificMaterial",
      "type": "object"
    },
    "MultipoleSolveTemperatureBoundaryCondition": {
      "description": "Level 5: Class for FiQuS Multipole",
      "properties": {
        "boundaries": {
          "oneOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": [],
          "description": "It specifies the list of boundaries where the condition is applied.Each boundary is identified by a string of the form <half-turn/wedge reference number><side>,where the accepted sides are i, o, l, h which correspond respectively to inner, outer, lower (angle), higher (angle): e.g., 1o",
          "title": "Boundaries"
        },
        "const_temperature": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "It specifies the value of the temperature for this boundary condition.",
          "title": "Const Temperature"
        }
      },
      "title": "MultipoleSolveTemperatureBoundaryCondition",
      "type": "object"
    },
    "MultipoleSolveThermal": {
      "description": "Level 3: Class for FiQuS Multipole",
      "properties": {
        "non_linear_solver": {
          "$ref": "#/$defs/MultipoleSolveNonLinearSolver",
          "default": {
            "rel_tolerance": 0.0001,
            "abs_tolerance": 0.1,
            "relaxation_factor": 0.7,
            "max_iterations": 20,
            "norm_type": "LinfNorm"
          },
          "description": "This dictionary contains the information about the parameters for the non-linear solver."
        },
        "solve_type": {
          "oneOf": [
            {
              "enum": [
                null,
                "transient"
              ]
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "It determines whether the thermal transient problem is solved ('transient') or not ('null').",
          "title": "Solve Type"
        },
        "insulation_TSA": {
          "oneOf": [
            {
              "$ref": "#/$defs/MultipoleSolveInsulationTSA"
            },
            {
              "type": "null"
            }
          ],
          "default": {
            "block_to_block": {
              "blocks_connection_overwrite": [],
              "material": null,
              "materials_overwrite": [],
              "thicknesses_overwrite": []
            },
            "exterior": {
              "blocks": [],
              "materials_append": [],
              "thicknesses_append": []
            },
            "between_collar": {
              "material": null
            }
          },
          "description": "This dictionary contains the information about the materials and thicknesses of the insulation regions modeled via thin-shell approximation."
        },
        "He_cooling": {
          "$ref": "#/$defs/MultipoleSolveHeCooling",
          "default": {
            "enabled": false,
            "sides": "outer",
            "heat_transfer_coefficient": 0.0
          },
          "description": "This dictionary contains the information about the Robin boundary condition for generic groups of boundaries."
        },
        "collar_cooling": {
          "$ref": "#/$defs/MultipleSolveCollarHeCooling",
          "default": {
            "enabled": false,
            "which": "all",
            "heat_transfer_coefficient": "CFUN_hHe_T_THe",
            "ref_temperature": 0.0,
            "move_cooling_holes": null
          },
          "description": "This dictionary contains the information about the cooling for the collar region."
        },
        "overwrite_boundary_conditions": {
          "oneOf": [
            {
              "$ref": "#/$defs/MultipoleSolveBoundaryConditionsThermal"
            },
            {
              "type": "null"
            }
          ],
          "default": {
            "temperature": {},
            "heat_flux": {},
            "cooling": {}
          },
          "description": "This dictionary contains the information about boundary conditions for explicitly specified boundaries."
        },
        "time_stepping": {
          "$ref": "#/$defs/MultipoleSolveTransientThermal",
          "default": {
            "initial_time": 0.0,
            "final_time": 0.0,
            "initial_time_step": 1e-10,
            "min_time_step": 1e-12,
            "max_time_step": 10.0,
            "breakpoints": [],
            "integration_method": "Euler",
            "rel_tol_time": 0.0001,
            "abs_tol_time": 0.0001,
            "norm_type": "LinfNorm",
            "stop_temperature": 300.0
          },
          "description": "This dictionary contains the information about the parameters for the transient solver."
        },
        "jc_degradation_to_zero": {
          "oneOf": [
            {
              "$ref": "#/$defs/MultipoleSolveQuenchInitiation"
            },
            {
              "type": "null"
            }
          ],
          "default": {
            "turns": [],
            "t_trigger": []
          },
          "description": "This dictionary contains the information about half turns with zero critical current."
        },
        "init_temperature": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 1.9,
          "description": "It specifies the initial temperature of the simulation.",
          "title": "Init Temperature"
        },
        "enforce_init_temperature_as_minimum": {
          "oneOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": false,
          "description": "It determines whether the initial temperature is enforced as the minimum temperature of the simulation.",
          "title": "Enforce Init Temperature As Minimum"
        }
      },
      "title": "MultipoleSolveThermal",
      "type": "object"
    },
    "MultipoleSolveTransientCoupled": {
      "description": "Level 4: Class for FiQuS Multipole",
      "properties": {
        "initial_time": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 0.0,
          "description": "It specifies the initial time of the simulation.",
          "title": "Initial Time"
        },
        "final_time": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 0.0,
          "description": "It specifies the final time of the simulation.",
          "title": "Final Time"
        },
        "initial_time_step": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 1e-10,
          "description": "It specifies the initial time step used at the beginning of the transient simulation.",
          "title": "Initial Time Step"
        },
        "min_time_step": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 1e-12,
          "description": "It specifies the minimum possible value of the time step.",
          "title": "Min Time Step"
        },
        "max_time_step": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 10,
          "description": "It specifies the maximum possible value of the time step.",
          "title": "Max Time Step"
        },
        "breakpoints": {
          "oneOf": [
            {
              "items": {
                "type": "number"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": [],
          "description": "It forces the transient simulation to hit the time instants contained in this list.",
          "title": "Breakpoints"
        },
        "integration_method": {
          "oneOf": [
            {
              "enum": [
                "Euler",
                "Gear_2",
                "Gear_3",
                "Gear_4",
                "Gear_5",
                "Gear_6"
              ],
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": "Euler",
          "description": "It specifies the type of integration method to be used.",
          "title": "Integration Method"
        },
        "rel_tol_time": {
          "oneOf": [
            {
              "items": {
                "type": "number"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": [
            0.0001,
            0.0001
          ],
          "description": "It specifies the relative tolerance.",
          "title": "Rel Tol Time"
        },
        "abs_tol_time": {
          "oneOf": [
            {
              "items": {
                "type": "number"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": [
            0.0001,
            0.0001
          ],
          "description": "It specifies the absolute tolerance.",
          "title": "Abs Tol Time"
        },
        "norm_type": {
          "default": [
            "LinfNorm",
            "LinfNorm"
          ],
          "description": "It specifies the type of norm to be calculated for convergence assessment.",
          "items": {
            "enum": [
              "L1Norm",
              "MeanL1Norm",
              "L2Norm",
              "MeanL2Norm",
              "LinfNorm"
            ],
            "type": "string"
          },
          "title": "Norm Type",
          "type": "array"
        },
        "stop_temperature": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 300,
          "description": "If one half turn reaches this temperature, the simulation is stopped.",
          "title": "Stop Temperature"
        },
        "seq_NL": {
          "oneOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": true,
          "description": "The non-linear solver is sequential Mag->Thermal, or its fully coupled.",
          "title": "Seq Nl"
        }
      },
      "title": "MultipoleSolveTransientCoupled",
      "type": "object"
    },
    "MultipoleSolveTransientElectromagnetics": {
      "description": "Level 4: Class for FiQuS Multipole",
      "properties": {
        "initial_time": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 0.0,
          "description": "It specifies the initial time of the simulation.",
          "title": "Initial Time"
        },
        "final_time": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 0.0,
          "description": "It specifies the final time of the simulation.",
          "title": "Final Time"
        },
        "initial_time_step": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 1e-10,
          "description": "It specifies the initial time step used at the beginning of the transient simulation.",
          "title": "Initial Time Step"
        },
        "min_time_step": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 1e-12,
          "description": "It specifies the minimum possible value of the time step.",
          "title": "Min Time Step"
        },
        "max_time_step": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 10,
          "description": "It specifies the maximum possible value of the time step.",
          "title": "Max Time Step"
        },
        "breakpoints": {
          "oneOf": [
            {
              "items": {
                "type": "number"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": [],
          "description": "It forces the transient simulation to hit the time instants contained in this list.",
          "title": "Breakpoints"
        },
        "integration_method": {
          "oneOf": [
            {
              "enum": [
                "Euler",
                "Gear_2",
                "Gear_3",
                "Gear_4",
                "Gear_5",
                "Gear_6"
              ],
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": "Euler",
          "description": "It specifies the type of integration method to be used.",
          "title": "Integration Method"
        },
        "rel_tol_time": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 0.0001,
          "description": "It specifies the relative tolerance.",
          "title": "Rel Tol Time"
        },
        "abs_tol_time": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 0.0001,
          "description": "It specifies the absolute tolerance.",
          "title": "Abs Tol Time"
        },
        "norm_type": {
          "oneOf": [
            {
              "enum": [
                "L1Norm",
                "MeanL1Norm",
                "L2Norm",
                "MeanL2Norm",
                "LinfNorm"
              ],
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": "LinfNorm",
          "description": "It specifies the type of norm to be calculated for convergence assessment.",
          "title": "Norm Type"
        },
        "T_sim": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 1.9,
          "description": "It specifies the temperature used to calculate the resistivity of the superconductor during the transient sim.",
          "title": "T Sim"
        }
      },
      "title": "MultipoleSolveTransientElectromagnetics",
      "type": "object"
    },
    "MultipoleSolveTransientThermal": {
      "description": "Level 4: Class for FiQuS Multipole",
      "properties": {
        "initial_time": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 0.0,
          "description": "It specifies the initial time of the simulation.",
          "title": "Initial Time"
        },
        "final_time": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 0.0,
          "description": "It specifies the final time of the simulation.",
          "title": "Final Time"
        },
        "initial_time_step": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 1e-10,
          "description": "It specifies the initial time step used at the beginning of the transient simulation.",
          "title": "Initial Time Step"
        },
        "min_time_step": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 1e-12,
          "description": "It specifies the minimum possible value of the time step.",
          "title": "Min Time Step"
        },
        "max_time_step": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 10,
          "description": "It specifies the maximum possible value of the time step.",
          "title": "Max Time Step"
        },
        "breakpoints": {
          "oneOf": [
            {
              "items": {
                "type": "number"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": [],
          "description": "It forces the transient simulation to hit the time instants contained in this list.",
          "title": "Breakpoints"
        },
        "integration_method": {
          "oneOf": [
            {
              "enum": [
                "Euler",
                "Gear_2",
                "Gear_3",
                "Gear_4",
                "Gear_5",
                "Gear_6"
              ],
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": "Euler",
          "description": "It specifies the type of integration method to be used.",
          "title": "Integration Method"
        },
        "rel_tol_time": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 0.0001,
          "description": "It specifies the relative tolerance.",
          "title": "Rel Tol Time"
        },
        "abs_tol_time": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 0.0001,
          "description": "It specifies the absolute tolerance.",
          "title": "Abs Tol Time"
        },
        "norm_type": {
          "oneOf": [
            {
              "enum": [
                "L1Norm",
                "MeanL1Norm",
                "L2Norm",
                "MeanL2Norm",
                "LinfNorm"
              ],
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": "LinfNorm",
          "description": "It specifies the type of norm to be calculated for convergence assessment.",
          "title": "Norm Type"
        },
        "stop_temperature": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 300,
          "description": "If one half turn reaches this temperature, the simulation is stopped.",
          "title": "Stop Temperature"
        }
      },
      "title": "MultipoleSolveTransientThermal",
      "type": "object"
    },
    "MultipoleThermalInsulationMesh": {
      "description": "Level 3: Class for FiQuS Multipole",
      "properties": {
        "global_size": {
          "default": 0.0001,
          "description": "It specifies the global size of the mesh for the insulation regions. It is enforced as a constant mesh field for surface insulation and by fixing the number of TSA layers for thin-shell approximation.",
          "title": "Global Size",
          "type": "number"
        },
        "TSA": {
          "oneOf": [
            {
              "$ref": "#/$defs/MultipoleMeshThinShellApproximationParameters"
            },
            {
              "type": "null"
            }
          ],
          "default": {
            "minimum_discretizations": 1,
            "global_size_QH": 0.0001,
            "minimum_discretizations_QH": 1,
            "global_size_COL": 0.0001,
            "minimum_discretizations_COL": 1,
            "scale_factor_radial": -1.0,
            "scale_factor_azimuthal": -1.0
          },
          "description": "This dictionary contains the mesh information for thin-shells."
        }
      },
      "title": "MultipoleThermalInsulationMesh",
      "type": "object"
    },
    "Nb3Sn_HFM": {
      "description": "Level 3: Class for cable HFM Nb3Sn fit",
      "properties": {
        "type": {
          "const": "Nb3Sn_HFM",
          "title": "Type",
          "type": "string"
        },
        "Tc0_Nb3Sn_HFM": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Tc0 Nb3Sn Hfm"
        },
        "Bc20_Nb3Sn_HFM": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Bc20 Nb3Sn Hfm"
        },
        "C0_Nb3Sn_HFM": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "C0 Nb3Sn Hfm"
        },
        "alpha_Nb3Sn_HFM": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Alpha Nb3Sn Hfm"
        },
        "nu_Nb3Sn_HFM": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Nu Nb3Sn Hfm"
        },
        "p_Nb3Sn_HFM": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "P Nb3Sn Hfm"
        },
        "q_Nb3Sn_HFM": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Q Nb3Sn Hfm"
        }
      },
      "required": [
        "type"
      ],
      "title": "Nb3Sn_HFM",
      "type": "object"
    },
    "Pancake3D": {
      "description": "Level 1: Class for FiQuS Pancake3D",
      "properties": {
        "type": {
          "const": "Pancake3D",
          "title": "Type",
          "type": "string"
        },
        "geometry": {
          "$ref": "#/$defs/Pancake3DGeometry",
          "default": null,
          "description": "This dictionary contains the geometry information.",
          "title": "Geometry"
        },
        "mesh": {
          "$ref": "#/$defs/Pancake3DMesh",
          "default": null,
          "description": "This dictionary contains the mesh information.",
          "title": "Mesh"
        },
        "solve": {
          "$ref": "#/$defs/Pancake3DSolve",
          "default": null,
          "description": "This dictionary contains the solve information.",
          "title": "Solve"
        },
        "postproc": {
          "$ref": "#/$defs/Pancake3DPostprocess",
          "default": {
            "timeSeriesPlots": null,
            "magneticFieldOnCutPlane": null
          },
          "description": "This dictionary contains the postprocess information.",
          "title": "Postprocess"
        },
        "input_file_path": {
          "default": null,
          "description": "path of the input file (calculated by FiQuS)",
          "title": "Input File Path",
          "type": "string"
        }
      },
      "required": [
        "type"
      ],
      "title": "Pancake3D",
      "type": "object"
    },
    "Pancake3DGeometry": {
      "properties": {
        "conductorWrite": {
          "default": false,
          "description": "To Write the Conductor File",
          "title": "Flag:to Write the Conductor File",
          "type": "boolean"
        },
        "numberOfPancakes": {
          "description": "Number of pancake coils stacked on top of each other.",
          "exclusiveMinimum": 0,
          "minimum": 1,
          "title": "Number of Pancakes",
          "type": "integer"
        },
        "gapBetweenPancakes": {
          "description": "Gap distance between the pancake coils.",
          "exclusiveMinimum": 0,
          "title": "Gap Between Pancakes",
          "type": "number"
        },
        "winding": {
          "$ref": "#/$defs/Pancake3DGeometryWinding",
          "description": "This dictionary contains the winding geometry information.",
          "title": "Winding Geometry"
        },
        "contactLayer": {
          "$ref": "#/$defs/Pancake3DGeometryContactLayer",
          "description": "This dictionary contains the contact layer geometry information.",
          "title": "Contact Layer Geometry"
        },
        "terminals": {
          "$ref": "#/$defs/Pancake3DGeometryTerminals",
          "description": "This dictionary contains the terminals geometry information.",
          "title": "Terminals Geometry"
        },
        "air": {
          "description": "This dictionary contains the air geometry information.",
          "discriminator": {
            "mapping": {
              "cuboid": "#/$defs/Pancake3DGeometryAirCuboid",
              "cylinder": "#/$defs/Pancake3DGeometryAirCylinder"
            },
            "propertyName": "type"
          },
          "oneOf": [
            {
              "$ref": "#/$defs/Pancake3DGeometryAirCylinder"
            },
            {
              "$ref": "#/$defs/Pancake3DGeometryAirCuboid"
            }
          ],
          "title": "Air Geometry"
        },
        "dimensionTolerance": {
          "default": 1e-8,
          "description": "dimension tolerance (CAD related, not physical)",
          "exclusiveMinimum": 0,
          "title": "Dimensiontolerance",
          "type": "number"
        },
        "pancakeBoundaryName": {
          "default": "PancakeBoundary",
          "description": "name of the pancake's curves that touches the air to be used in the mesh",
          "title": "Pancakeboundaryname",
          "type": "string"
        },
        "contactLayerBoundaryName": {
          "default": "contactLayerBoundary",
          "description": "name of the contact layers's curves that touches the air to be used in the mesh (only for TSA)",
          "title": "Contactlayerboundaryname",
          "type": "string"
        }
      },
      "required": [
        "numberOfPancakes",
        "gapBetweenPancakes",
        "winding",
        "contactLayer",
        "terminals",
        "air"
      ],
      "title": "Pancake3DGeometry",
      "type": "object"
    },
    "Pancake3DGeometryAirCuboid": {
      "properties": {
        "axialMargin": {
          "description": "Axial margin between the ends of the air and first/last pancake coils.",
          "exclusiveMinimum": 0,
          "title": "Axial Margin of the Air",
          "type": "number"
        },
        "name": {
          "default": "air",
          "description": "The name to be used in the mesh.",
          "examples": [
            "air",
            "myAir"
          ],
          "title": "Air Name",
          "type": "string"
        },
        "shellTransformation": {
          "default": false,
          "description": "Generate outer shell air to apply shell transformation if True (GetDP related, not physical)",
          "title": "Use Shell Transformation",
          "type": "boolean"
        },
        "shellTransformationMultiplier": {
          "default": 1.2,
          "description": "multiply the air's outer dimension by this value to get the shell's outer dimension",
          "exclusiveMinimum": 1.1,
          "title": "Shell Transformation Multiplier (Advanced Input)",
          "type": "number"
        },
        "cutName": {
          "default": "Air-Cut",
          "description": "name of the cut (cochain) to be used in the mesh",
          "examples": [
            "Air-Cut",
            "myAirCut"
          ],
          "title": "Air Cut Name",
          "type": "string"
        },
        "shellVolumeName": {
          "default": "air-Shell",
          "description": "name of the shell volume to be used in the mesh",
          "examples": [
            "air-Shell",
            "myAirShell"
          ],
          "title": "Air Shell Volume Name",
          "type": "string"
        },
        "generateGapAirWithFragment": {
          "default": false,
          "description": "generate the gap air with gmsh/model/occ/fragment if true (CAD related, not physical)",
          "title": "Generate Gap Air with Fragment (Advanced Input)",
          "type": "boolean"
        },
        "type": {
          "const": "cuboid",
          "default": "cuboid",
          "title": "Air Type",
          "type": "string"
        },
        "sideLength": {
          "default": null,
          "description": "Side length of the air (for cuboid type air).",
          "exclusiveMinimum": 0,
          "title": "Air Side Length",
          "type": "number"
        }
      },
      "required": [
        "axialMargin"
      ],
      "title": "Pancake3DGeometryAirCuboid",
      "type": "object"
    },
    "Pancake3DGeometryAirCylinder": {
      "properties": {
        "axialMargin": {
          "description": "Axial margin between the ends of the air and first/last pancake coils.",
          "exclusiveMinimum": 0,
          "title": "Axial Margin of the Air",
          "type": "number"
        },
        "name": {
          "default": "air",
          "description": "The name to be used in the mesh.",
          "examples": [
            "air",
            "myAir"
          ],
          "title": "Air Name",
          "type": "string"
        },
        "shellTransformation": {
          "default": false,
          "description": "Generate outer shell air to apply shell transformation if True (GetDP related, not physical)",
          "title": "Use Shell Transformation",
          "type": "boolean"
        },
        "shellTransformationMultiplier": {
          "default": 1.2,
          "description": "multiply the air's outer dimension by this value to get the shell's outer dimension",
          "exclusiveMinimum": 1.1,
          "title": "Shell Transformation Multiplier (Advanced Input)",
          "type": "number"
        },
        "cutName": {
          "default": "Air-Cut",
          "description": "name of the cut (cochain) to be used in the mesh",
          "examples": [
            "Air-Cut",
            "myAirCut"
          ],
          "title": "Air Cut Name",
          "type": "string"
        },
        "shellVolumeName": {
          "default": "air-Shell",
          "description": "name of the shell volume to be used in the mesh",
          "examples": [
            "air-Shell",
            "myAirShell"
          ],
          "title": "Air Shell Volume Name",
          "type": "string"
        },
        "generateGapAirWithFragment": {
          "default": false,
          "description": "generate the gap air with gmsh/model/occ/fragment if true (CAD related, not physical)",
          "title": "Generate Gap Air with Fragment (Advanced Input)",
          "type": "boolean"
        },
        "type": {
          "const": "cylinder",
          "default": "cylinder",
          "title": "Air Type",
          "type": "string"
        },
        "radius": {
          "default": null,
          "description": "Radius of the air (for cylinder type air).",
          "exclusiveMinimum": 0,
          "title": "Air Radius",
          "type": "number"
        }
      },
      "required": [
        "axialMargin"
      ],
      "title": "Pancake3DGeometryAirCylinder",
      "type": "object"
    },
    "Pancake3DGeometryContactLayer": {
      "properties": {
        "thinShellApproximation": {
          "description": "If True, the contact layer will be modeled with 2D shell elements (thin shell approximation), and if False, the contact layer will be modeled with 3D elements.",
          "title": "Use Thin Shell Approximation",
          "type": "boolean"
        },
        "thickness": {
          "description": "Thickness of the contact layer.It is the total thickness of the contact or insulation layer.In particular, for perfect insulation this would be the sum of the insulation layer of the two adjacent CC with an insulation layer of thickness t/2 on each side.",
          "exclusiveMinimum": 0,
          "title": "Contact Layer Thickness",
          "type": "number"
        },
        "name": {
          "default": "contactLayer",
          "description": "The name to be used in the mesh.",
          "examples": [
            "myContactLayer"
          ],
          "title": "Contact Layer Name",
          "type": "string"
        }
      },
      "required": [
        "thinShellApproximation",
        "thickness"
      ],
      "title": "Pancake3DGeometryContactLayer",
      "type": "object"
    },
    "Pancake3DGeometryInnerTerminal": {
      "properties": {
        "thickness": {
          "description": "Thickness of the terminal's tube.",
          "exclusiveMinimum": 0,
          "title": "Terminal Thickness",
          "type": "number"
        },
        "name": {
          "default": "innerTerminal",
          "description": "The name to be used in the mesh.",
          "examples": [
            "innerTerminal",
            "outerTeminal"
          ],
          "title": "Terminal Name",
          "type": "string"
        }
      },
      "required": [
        "thickness"
      ],
      "title": "Pancake3DGeometryInnerTerminal",
      "type": "object"
    },
    "Pancake3DGeometryOuterTerminal": {
      "properties": {
        "thickness": {
          "description": "Thickness of the terminal's tube.",
          "exclusiveMinimum": 0,
          "title": "Terminal Thickness",
          "type": "number"
        },
        "name": {
          "default": "outerTerminal",
          "description": "The name to be used in the mesh.",
          "examples": [
            "innerTerminal",
            "outerTeminal"
          ],
          "title": "Terminal Name",
          "type": "string"
        }
      },
      "required": [
        "thickness"
      ],
      "title": "Pancake3DGeometryOuterTerminal",
      "type": "object"
    },
    "Pancake3DGeometryTerminals": {
      "properties": {
        "inner": {
          "$ref": "#/$defs/Pancake3DGeometryInnerTerminal"
        },
        "outer": {
          "$ref": "#/$defs/Pancake3DGeometryOuterTerminal"
        },
        "firstName": {
          "default": "firstTerminal",
          "description": "name of the first terminal",
          "title": "Firstname",
          "type": "string"
        },
        "lastName": {
          "default": "lastTerminal",
          "description": "name of the last terminal",
          "title": "Lastname",
          "type": "string"
        }
      },
      "required": [
        "inner",
        "outer"
      ],
      "title": "Pancake3DGeometryTerminals",
      "type": "object"
    },
    "Pancake3DGeometryWinding": {
      "properties": {
        "innerRadius": {
          "description": "Inner radius of the winding.",
          "exclusiveMinimum": 0,
          "title": "Inner Radius",
          "type": "number"
        },
        "thickness": {
          "description": "Thickness of the winding.",
          "exclusiveMinimum": 0,
          "title": "Winding Thickness",
          "type": "number"
        },
        "numberOfTurns": {
          "description": "Number of turns of the winding.",
          "minimum": 3,
          "title": "Number of Turns",
          "type": "number"
        },
        "height": {
          "description": "Height/width of the winding.",
          "exclusiveMinimum": 0,
          "title": "Winding Height",
          "type": "number"
        },
        "name": {
          "default": "winding",
          "description": "The The name to be used in the mesh..",
          "examples": [
            "winding",
            "myWinding"
          ],
          "title": "Winding Name",
          "type": "string"
        },
        "numberOfVolumesPerTurn": {
          "default": 2,
          "description": "The number of volumes per turn (CAD related, not physical).",
          "minimum": 2,
          "title": "Number of Volumes Per Turn (Advanced Input)",
          "type": "integer"
        }
      },
      "required": [
        "innerRadius",
        "thickness",
        "numberOfTurns",
        "height"
      ],
      "title": "Pancake3DGeometryWinding",
      "type": "object"
    },
    "Pancake3DMesh": {
      "properties": {
        "winding": {
          "$ref": "#/$defs/Pancake3DMeshWinding",
          "description": "This dictionary contains the winding mesh information.",
          "title": "Winding Mesh"
        },
        "contactLayer": {
          "$ref": "#/$defs/Pancake3DMeshContactLayer",
          "description": "This dictionary contains the contact layer mesh information.",
          "title": "Contact Layer Mesh"
        },
        "terminals": {
          "$ref": "#/$defs/Pancake3DMeshAirAndTerminals",
          "default": {
            "structured": false,
            "radialElementSize": 1.0
          },
          "description": "This dictionary contains the terminal mesh information.",
          "title": "Terminal Mesh"
        },
        "air": {
          "$ref": "#/$defs/Pancake3DMeshAirAndTerminals",
          "default": {
            "structured": false,
            "radialElementSize": 1.0
          },
          "description": "This dictionary contains the air mesh information.",
          "title": "Air Mesh"
        },
        "computeCohomologyForInsulating": {
          "default": true,
          "description": "Expert option only. If False, the cohomology regions needed for simulating an insulating coilwill not be computed. This will reduce the time spent for the meshing or more accurately the cohomology computing phase. BEWARE: The simulation will fail if set to False and a perfectlyInsulating coil is simulated.",
          "title": "Compute Cohomology for Insulating",
          "type": "boolean"
        },
        "minimumElementSize": {
          "description": "The minimum mesh element size in terms of the largest mesh size in the winding. This mesh size will be used in the regions close the the winding, and then the mesh size will increate to maximum mesh element size as it gets away from the winding.",
          "exclusiveMinimum": 0,
          "title": "Minimum Element Size",
          "type": "number"
        },
        "maximumElementSize": {
          "description": "The maximum mesh element size in terms of the largest mesh size in the winding. This mesh size will be used in the regions close the the winding, and then the mesh size will increate to maximum mesh element size as it gets away from the winding.",
          "exclusiveMinimum": 0,
          "title": "Maximum Element Size",
          "type": "number"
        }
      },
      "required": [
        "winding",
        "contactLayer",
        "minimumElementSize",
        "maximumElementSize"
      ],
      "title": "Pancake3DMesh",
      "type": "object"
    },
    "Pancake3DMeshAirAndTerminals": {
      "properties": {
        "structured": {
          "default": false,
          "description": "If True, the mesh will be structured. If False, the mesh will be unstructured.",
          "title": "Structure Mesh",
          "type": "boolean"
        },
        "radialElementSize": {
          "default": 1,
          "description": "If structured mesh is used, the radial element size can be set. It is the radial element size in terms of the winding's radial element size.",
          "exclusiveMinimum": 0,
          "title": "Radial Element Size",
          "type": "number"
        }
      },
      "title": "Pancake3DMeshAirAndTerminals",
      "type": "object"
    },
    "Pancake3DMeshContactLayer": {
      "properties": {
        "radialNumberOfElementsPerTurn": {
          "description": "The number of radial elements per tape of the contact layer. It can be either a list of integers to specify the value for each pancake coil separately or an integer to use the same setting for each pancake coil.",
          "items": {
            "exclusiveMinimum": 0,
            "type": "integer"
          },
          "title": "Contact Layer Radial Number of Elements Per Turn",
          "type": "array"
        }
      },
      "required": [
        "radialNumberOfElementsPerTurn"
      ],
      "title": "Pancake3DMeshContactLayer",
      "type": "object"
    },
    "Pancake3DMeshWinding": {
      "properties": {
        "axialNumberOfElements": {
          "oneOf": [
            {
              "items": {
                "exclusiveMinimum": 0,
                "type": "integer"
              },
              "type": "array"
            },
            {
              "exclusiveMinimum": 0,
              "type": "integer"
            }
          ],
          "description": "The number of axial elements for the whole height of the coil. It can be either a list of integers to specify the value for each pancake coil separately or an integer to use the same setting for each pancake coil.",
          "title": "Axial Number of Elements"
        },
        "azimuthalNumberOfElementsPerTurn": {
          "oneOf": [
            {
              "items": {
                "exclusiveMinimum": 0,
                "type": "integer"
              },
              "type": "array"
            },
            {
              "exclusiveMinimum": 0,
              "type": "integer"
            }
          ],
          "description": "The number of azimuthal elements per turn of the coil. It can be either a list of integers to specify the value for each pancake coil separately or an integer to use the same setting for each pancake coil.",
          "title": "Azimuthal Number of Elements Per Turn"
        },
        "radialNumberOfElementsPerTurn": {
          "oneOf": [
            {
              "items": {
                "exclusiveMinimum": 0,
                "type": "integer"
              },
              "type": "array"
            },
            {
              "exclusiveMinimum": 0,
              "type": "integer"
            }
          ],
          "description": "The number of radial elements per tape of the winding. It can be either a list of integers to specify the value for each pancake coil separately or an integer to use the same setting for each pancake coil.",
          "title": "Winding Radial Number of Elements Per Turn"
        },
        "axialDistributionCoefficient": {
          "oneOf": [
            {
              "items": {
                "exclusiveMinimum": 0,
                "type": "number"
              },
              "type": "array"
            },
            {
              "exclusiveMinimum": 0,
              "type": "number"
            }
          ],
          "default": [
            1
          ],
          "description": "If 1, it won't affect anything. If smaller than 1, elements will get finer in the axial direction at the ends of the coil. If greater than 1, elements will get coarser in the axial direction at the ends of the coil. It can be either a list of floats to specify the value for each pancake coil separately or a float to use the same setting for each pancake coil.",
          "title": "Axial Bump Coefficients"
        },
        "elementType": {
          "oneOf": [
            {
              "items": {
                "enum": [
                  "tetrahedron",
                  "hexahedron",
                  "prism"
                ],
                "type": "string"
              },
              "type": "array"
            },
            {
              "enum": [
                "tetrahedron",
                "hexahedron",
                "prism"
              ],
              "type": "string"
            }
          ],
          "default": [
            "tetrahedron"
          ],
          "description": "The element type of windings and contact layers. It can be either a tetrahedron, hexahedron, or a prism. It can be either a list of strings to specify the value for each pancake coil separately or a string to use the same setting for each pancake coil.",
          "title": "Element Type"
        }
      },
      "required": [
        "axialNumberOfElements",
        "azimuthalNumberOfElementsPerTurn",
        "radialNumberOfElementsPerTurn"
      ],
      "title": "Pancake3DMeshWinding",
      "type": "object"
    },
    "Pancake3DPositionInCoordinates": {
      "properties": {
        "x": {
          "description": "x coordinate of the position.",
          "title": "x coordinate",
          "type": "number"
        },
        "y": {
          "description": "y coordinate of the position.",
          "title": "y coordinate",
          "type": "number"
        },
        "z": {
          "description": "z coordinate of the position.",
          "title": "z coordinate",
          "type": "number"
        }
      },
      "required": [
        "x",
        "y",
        "z"
      ],
      "title": "Pancake3DPositionInCoordinates",
      "type": "object"
    },
    "Pancake3DPositionInTurnNumbers": {
      "properties": {
        "turnNumber": {
          "description": "Winding turn number as a position input. It starts from 0 and it can be a float.",
          "title": "Turn Number",
          "type": "number"
        },
        "whichPancakeCoil": {
          "oneOf": [
            {
              "exclusiveMinimum": 0,
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The first pancake coil is 1, the second is 2, etc.",
          "title": "Pancake Coil Number"
        }
      },
      "required": [
        "turnNumber"
      ],
      "title": "Pancake3DPositionInTurnNumbers",
      "type": "object"
    },
    "Pancake3DPostprocess": {
      "description": "TO BE UPDATED",
      "properties": {
        "timeSeriesPlots": {
          "oneOf": [
            {
              "items": {
                "oneOf": [
                  {
                    "discriminator": {
                      "mapping": {
                        "arcLength": "#/$defs/Pancake3DPostprocessTimeSeriesPlotPositionRequired",
                        "axialComponentOfTheMagneticField": "#/$defs/Pancake3DPostprocessTimeSeriesPlotPositionRequired",
                        "criticalCurrent": "#/$defs/Pancake3DPostprocessTimeSeriesPlotPositionRequired",
                        "criticalCurrentDensity": "#/$defs/Pancake3DPostprocessTimeSeriesPlotPositionRequired",
                        "cryocoolerAveragePower": "#/$defs/Pancake3DPostprocessTimeSeriesPlotPositionNotRequired",
                        "cryocoolerAverageTemperature": "#/$defs/Pancake3DPostprocessTimeSeriesPlotPositionNotRequired",
                        "currentDensity": "#/$defs/Pancake3DPostprocessTimeSeriesPlotPositionRequired",
                        "currentSharingIndex": "#/$defs/Pancake3DPostprocessTimeSeriesPlotPositionRequired",
                        "currentThroughCoil": "#/$defs/Pancake3DPostprocessTimeSeriesPlotPositionNotRequired",
                        "debug": "#/$defs/Pancake3DPostprocessTimeSeriesPlotPositionRequired",
                        "heatFlux": "#/$defs/Pancake3DPostprocessTimeSeriesPlotPositionRequired",
                        "inductance": "#/$defs/Pancake3DPostprocessTimeSeriesPlotPositionNotRequired",
                        "jHTS": "#/$defs/Pancake3DPostprocessTimeSeriesPlotPositionRequired",
                        "jHTSOverjCritical": "#/$defs/Pancake3DPostprocessTimeSeriesPlotPositionRequired",
                        "magneticEnergy": "#/$defs/Pancake3DPostprocessTimeSeriesPlotPositionNotRequired",
                        "magneticField": "#/$defs/Pancake3DPostprocessTimeSeriesPlotPositionRequired",
                        "magnitudeOfCurrentDensity": "#/$defs/Pancake3DPostprocessTimeSeriesPlotPositionRequired",
                        "magnitudeOfMagneticField": "#/$defs/Pancake3DPostprocessTimeSeriesPlotPositionRequired",
                        "maximumTemperature": "#/$defs/Pancake3DPostprocessTimeSeriesPlotPositionNotRequired",
                        "resistiveHeating": "#/$defs/Pancake3DPostprocessTimeSeriesPlotPositionRequired",
                        "resistivity": "#/$defs/Pancake3DPostprocessTimeSeriesPlotPositionRequired",
                        "specificHeatCapacity": "#/$defs/Pancake3DPostprocessTimeSeriesPlotPositionRequired",
                        "temperature": "#/$defs/Pancake3DPostprocessTimeSeriesPlotPositionRequired",
                        "thermalConductivity": "#/$defs/Pancake3DPostprocessTimeSeriesPlotPositionRequired",
                        "timeConstant": "#/$defs/Pancake3DPostprocessTimeSeriesPlotPositionNotRequired",
                        "totalResistiveHeating": "#/$defs/Pancake3DPostprocessTimeSeriesPlotPositionNotRequired",
                        "turnNumber": "#/$defs/Pancake3DPostprocessTimeSeriesPlotPositionRequired",
                        "voltageBetweenTerminals": "#/$defs/Pancake3DPostprocessTimeSeriesPlotPositionNotRequired"
                      },
                      "propertyName": "quantity"
                    },
                    "oneOf": [
                      {
                        "$ref": "#/$defs/Pancake3DPostprocessTimeSeriesPlotPositionRequired"
                      },
                      {
                        "$ref": "#/$defs/Pancake3DPostprocessTimeSeriesPlotPositionNotRequired"
                      }
                    ]
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Values can be plotted with respect to time.",
          "title": "Time Series Plots"
        },
        "magneticFieldOnCutPlane": {
          "oneOf": [
            {
              "$ref": "#/$defs/Pancake3DPostprocessMagneticFieldOnPlane"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Color map of the magnetic field on the YZ plane can be plotted with streamlines.",
          "title": "Magnetic Field on a Cut Plane"
        }
      },
      "title": "Pancake3DPostprocess",
      "type": "object"
    },
    "Pancake3DPostprocessMagneticFieldOnPlane": {
      "properties": {
        "colormap": {
          "default": "viridis",
          "description": "Colormap for the plot.",
          "title": "Colormap",
          "type": "string"
        },
        "streamLines": {
          "default": true,
          "description": "If True, streamlines will be plotted. Note that magnetic field vectors may have components perpendicular to the plane, and streamlines will be drawn depending on the vectors' projection onto the plane.",
          "title": "Stream Lines",
          "type": "boolean"
        },
        "interpolationMethod": {
          "default": "linear",
          "description": "Interpolation type for the plot.Because of the FEM basis function selections of FiQuS, each mesh element has a constant magnetic field vector. Therefore, for smooth 2D plots, interpolation can be used.Types:nearest: it will plot the nearest magnetic field value to the plotting point.linear: it will do linear interpolation to the magnetic field values.cubic: it will do cubic interpolation to the magnetic field values.",
          "enum": [
            "nearest",
            "linear",
            "cubic"
          ],
          "title": "Interpolation Method",
          "type": "string"
        },
        "timesToBePlotted": {
          "oneOf": [
            {
              "items": {
                "type": "number"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "List of times that wanted to be plotted. If not given, all the time steps will be plotted.",
          "title": "Times to be Plotted"
        },
        "planeNormal": {
          "default": [
            1,
            0,
            0
          ],
          "description": "Normal vector of the plane. The default is YZ-plane (1, 0, 0).",
          "items": {
            "type": "number"
          },
          "maxItems": 3,
          "minItems": 3,
          "title": "Plane Normal",
          "type": "array"
        },
        "planeXAxisUnitVector": {
          "default": [
            0,
            1,
            0
          ],
          "description": "If an arbitrary plane is wanted to be plotted, the arbitrary plane's X axis unit vector must be specified. The dot product of the plane's X axis and the plane's normal vector must be zero.",
          "items": {
            "type": "number"
          },
          "maxItems": 3,
          "minItems": 3,
          "title": "Plane X Axis",
          "type": "array"
        }
      },
      "title": "Pancake3DPostprocessMagneticFieldOnPlane",
      "type": "object"
    },
    "Pancake3DPostprocessTimeSeriesPlotPositionNotRequired": {
      "properties": {
        "quantity": {
          "description": "Name of the quantity to be plotted.",
          "enum": [
            "currentThroughCoil",
            "voltageBetweenTerminals",
            "inductance",
            "timeConstant",
            "totalResistiveHeating",
            "magneticEnergy",
            "maximumTemperature",
            "cryocoolerAveragePower",
            "cryocoolerAverageTemperature"
          ],
          "title": "Quantity",
          "type": "string"
        }
      },
      "required": [
        "quantity"
      ],
      "title": "Pancake3DPostprocessTimeSeriesPlotPositionNotRequired",
      "type": "object"
    },
    "Pancake3DPostprocessTimeSeriesPlotPositionRequired": {
      "properties": {
        "quantity": {
          "description": "Name of the quantity to be plotted.",
          "enum": [
            "magneticField",
            "magnitudeOfMagneticField",
            "currentDensity",
            "magnitudeOfCurrentDensity",
            "resistiveHeating",
            "temperature",
            "criticalCurrentDensity",
            "heatFlux",
            "resistivity",
            "thermalConductivity",
            "specificHeatCapacity",
            "jHTSOverjCritical",
            "criticalCurrent",
            "axialComponentOfTheMagneticField",
            "debug",
            "jHTS",
            "currentSharingIndex",
            "arcLength",
            "turnNumber"
          ],
          "title": "Quantity",
          "type": "string"
        },
        "position": {
          "oneOf": [
            {
              "$ref": "#/$defs/Pancake3DPositionInCoordinates"
            },
            {
              "$ref": "#/$defs/Pancake3DPositionInTurnNumbers"
            }
          ],
          "description": "Probing position of the quantity for time series plot.",
          "title": "Probing Position"
        }
      },
      "required": [
        "quantity",
        "position"
      ],
      "title": "Pancake3DPostprocessTimeSeriesPlotPositionRequired",
      "type": "object"
    },
    "Pancake3DSolve": {
      "properties": {
        "time": {
          "description": "All the time related settings for transient analysis.",
          "discriminator": {
            "mapping": {
              "adaptive": "#/$defs/Pancake3DSolveTimeAdaptive",
              "fixed": "#/$defs/Pancake3DSolveTimeFixed"
            },
            "propertyName": "timeSteppingType"
          },
          "oneOf": [
            {
              "$ref": "#/$defs/Pancake3DSolveTimeAdaptive"
            },
            {
              "$ref": "#/$defs/Pancake3DSolveTimeFixed"
            }
          ],
          "title": "Time Settings"
        },
        "nonlinearSolver": {
          "oneOf": [
            {
              "$ref": "#/$defs/Pancake3DSolveNonlinearSolverSettings"
            },
            {
              "type": "null"
            }
          ],
          "description": "All the nonlinear solver related settings.",
          "title": "Nonlinear Solver Settings"
        },
        "winding": {
          "$ref": "#/$defs/Pancake3DSolveWindingMaterial",
          "description": "This dictionary contains the winding material properties.",
          "title": "Winding Properties"
        },
        "contactLayer": {
          "$ref": "#/$defs/Pancake3DSolveContactLayerMaterial",
          "description": "This dictionary contains the contact layer material properties.",
          "title": "Contact Layer Properties"
        },
        "terminals": {
          "$ref": "#/$defs/Pancake3DSolveTerminalMaterialAndBoundaryCondition",
          "description": "This dictionary contains the terminals material properties and cooling condition.",
          "title": "Terminals Properties"
        },
        "air": {
          "$ref": "#/$defs/Pancake3DSolveAir",
          "description": "This dictionary contains the air material properties.",
          "title": "Air Properties"
        },
        "initialConditions": {
          "$ref": "#/$defs/Pancake3DSolveInitialConditions",
          "description": "Initial conditions of the problem.",
          "title": "Initial Conditions"
        },
        "boundaryConditions": {
          "oneOf": [
            {
              "const": "vanishingTangentialElectricField",
              "type": "string"
            },
            {
              "$ref": "#/$defs/Pancake3DSolveImposedField"
            }
          ],
          "default": "vanishingTangentialElectricField",
          "description": "Boundary conditions of the problem.",
          "title": "Boundary Conditions"
        },
        "quantitiesToBeSaved": {
          "default": null,
          "description": "List of quantities to be saved.",
          "items": {
            "$ref": "#/$defs/Pancake3DSolveSaveQuantity"
          },
          "title": "Quantities to be Saved",
          "type": "array"
        },
        "type": {
          "description": "FiQuS/Pancake3D can solve only electromagnetic and thermal or electromagnetic and thermal coupled. In the weaklyCoupled setting, thermal and electromagnetics systems will be put into different matrices, whereas in the stronglyCoupled setting, they all will be combined into the same matrix. The solution should remain the same.",
          "enum": [
            "electromagnetic",
            "thermal",
            "weaklyCoupled",
            "stronglyCoupled"
          ],
          "title": "Simulation Type",
          "type": "string"
        },
        "proTemplate": {
          "default": "Pancake3D_template.pro",
          "description": "file name of the .pro template file",
          "title": "Protemplate",
          "type": "string"
        },
        "localDefects": {
          "$ref": "#/$defs/Pancake3DSolveLocalDefects",
          "default": {
            "criticalCurrentDensity": null
          },
          "description": "Local defects (like making a small part of the winding normal conductor at some time) can be introduced.",
          "title": "Local Defects"
        },
        "initFromPrevious": {
          "default": "",
          "description": "The simulation is continued from an existing .res file.  The .res file is from a previous computation on the same geometry and mesh. The .res file is taken from the folder Solution_<<initFromPrevious>>. IMPORTANT: When the option is used, the start time should be identical to the last  time value for the <<initFromPrevious>> simulation.",
          "title": "Full path to res file to continue from",
          "type": "string"
        },
        "isothermalInAxialDirection": {
          "default": false,
          "description": "If True, the DoF along the axial direction will be equated. This means that the temperature will be the same along the axial direction reducing the number of DoF. This is only valid for the thermal analysis.",
          "title": "Equate DoF along axial direction",
          "type": "boolean"
        },
        "voltageTapPositions": {
          "oneOf": [
            {
              "items": {
                "oneOf": [
                  {
                    "$ref": "#/$defs/Pancake3DPositionInCoordinates"
                  },
                  {
                    "$ref": "#/$defs/Pancake3DPositionInTurnNumbers"
                  }
                ]
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": [],
          "description": "List of voltage tap positions. The position can be given in the form of a list of [x, y, z] coordinates or as turnNumber and number of pancake coil.",
          "title": "Voltage Tap Positions"
        },
        "EECircuit": {
          "oneOf": [
            {
              "$ref": "#/$defs/Pancake3DSolveEECircuit"
            },
            {
              "type": "null"
            }
          ],
          "default": {
            "inductanceInSeriesWithPancakeCoil": 0.0,
            "enable": false,
            "ResistanceEnergyExtractionOpenSwitch": 1000000.0,
            "ResistanceEnergyExtractionClosedSwitch": 1e-6,
            "ResistanceCrowbarOpenSwitch": 1000000.0,
            "ResistanceCrowbarClosedSwitch": 1e-6,
            "stopSimulationAtCurrent": 0.0,
            "stopSimulationWaitingTime": 0.0,
            "TurnOffDeltaTimePowerSupply": 0.0
          },
          "description": "This dictionary contains the detection circuit settings.",
          "title": "Detection Circuit"
        },
        "noOfMPITasks": {
          "oneOf": [
            {
              "type": "boolean"
            },
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": false,
          "description": "If integer, GetDP will be run in parallel using MPI. This is only valid if MPI is installed on the system and an MPI-enabled GetDP is used. If False, GetDP will be run in serial without invoking mpiexec.",
          "title": "No. of tasks for MPI parallel run of GetDP"
        },
        "resistiveHeatingTerminals": {
          "default": true,
          "description": "If True, terminals are subject to Joule heating. If False, terminal regions are not subject to Joule heating. In both cases, heat conduction through the terminal is  considered.",
          "title": "Resistive Heating in Terminals",
          "type": "boolean"
        },
        "solveHeatEquationTerminalsTransitionNotch": {
          "default": true,
          "description": "If True, the heat equation is solved in the terminals and transition notch.If False, the heat equation is not solved in the terminals and transition notches.In the latter case, neither heat conduction nor generation are considered.In other words, the temperature is not an unknown of the problem in the terminals.",
          "title": "Solve Heat Equation in Terminals",
          "type": "boolean"
        },
        "heatFlowBetweenTurns": {
          "default": true,
          "description": "If True, heat flow between turns is considered. If False, it is not considered. In the latter case, heat conduction is only considered to the middle of the winding in the thin shell approximation in order to keep the thermal mass of the insulation included. In the middle between the turns, an adiabatic condition is applied. Between the turns refers to the region between the winding turns, NOT to the region between terminals and the first and last turn. This feature is only implemented for the thin shell approximation.",
          "title": "Heat Equation Between Turns",
          "type": "boolean"
        },
        "convectiveCooling": {
          "oneOf": [
            {
              "$ref": "#/$defs/Pancake3DSolveConvectiveCooling"
            },
            {
              "type": "null"
            }
          ],
          "default": {
            "heatTransferCoefficient": 0,
            "exteriorBathTemperature": 4.2
          },
          "description": "This dictionary contains the convective cooling settings.",
          "title": "Convective Cooling"
        },
        "imposedPowerDensity": {
          "oneOf": [
            {
              "$ref": "#/$defs/Pancake3DSolvePowerDensity"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The power density for an imposed power density in the winding.",
          "title": "Power Density"
        },
        "materialParametersUseCoilField": {
          "default": true,
          "description": "If True, the total field (i.e., coil field plus potentially imposed field)will be used for the material (default).If False, only the imposed field (can be zero) will be used.",
          "title": "Use Coil Field for Critical Current",
          "type": "boolean"
        },
        "stopWhenTemperatureReaches": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 0,
          "description": "If the maximum temperature reaches this value, the simulation will be stopped.",
          "title": "Stop When Temperature Reaches"
        }
      },
      "required": [
        "time",
        "nonlinearSolver",
        "winding",
        "contactLayer",
        "terminals",
        "air",
        "initialConditions",
        "type"
      ],
      "title": "Pancake3DSolve",
      "type": "object"
    },
    "Pancake3DSolveAdaptiveTimeLoopSettings": {
      "properties": {
        "tolerances": {
          "description": "Time steps or nonlinear iterations will be refined until the tolerances are satisfied.",
          "items": {
            "discriminator": {
              "mapping": {
                "arcLength": "#/$defs/Pancake3DSolvePositionRequiredTolerance",
                "axialComponentOfTheMagneticField": "#/$defs/Pancake3DSolvePositionRequiredTolerance",
                "coupledSolutionVector": "#/$defs/Pancake3DSolvePositionNotRequiredTolerance",
                "criticalCurrent": "#/$defs/Pancake3DSolvePositionRequiredTolerance",
                "criticalCurrentDensity": "#/$defs/Pancake3DSolvePositionRequiredTolerance",
                "cryocoolerAveragePower": "#/$defs/Pancake3DSolvePositionNotRequiredTolerance",
                "cryocoolerAverageTemperature": "#/$defs/Pancake3DSolvePositionNotRequiredTolerance",
                "currentDensity": "#/$defs/Pancake3DSolvePositionRequiredTolerance",
                "currentSharingIndex": "#/$defs/Pancake3DSolvePositionRequiredTolerance",
                "currentThroughCoil": "#/$defs/Pancake3DSolvePositionNotRequiredTolerance",
                "debug": "#/$defs/Pancake3DSolvePositionRequiredTolerance",
                "electromagneticSolutionVector": "#/$defs/Pancake3DSolvePositionNotRequiredTolerance",
                "heatFlux": "#/$defs/Pancake3DSolvePositionRequiredTolerance",
                "inductance": "#/$defs/Pancake3DSolvePositionNotRequiredTolerance",
                "jHTS": "#/$defs/Pancake3DSolvePositionRequiredTolerance",
                "jHTSOverjCritical": "#/$defs/Pancake3DSolvePositionRequiredTolerance",
                "magneticEnergy": "#/$defs/Pancake3DSolvePositionNotRequiredTolerance",
                "magneticField": "#/$defs/Pancake3DSolvePositionRequiredTolerance",
                "magnitudeOfCurrentDensity": "#/$defs/Pancake3DSolvePositionRequiredTolerance",
                "magnitudeOfMagneticField": "#/$defs/Pancake3DSolvePositionRequiredTolerance",
                "maximumTemperature": "#/$defs/Pancake3DSolvePositionNotRequiredTolerance",
                "resistiveHeating": "#/$defs/Pancake3DSolvePositionRequiredTolerance",
                "resistivity": "#/$defs/Pancake3DSolvePositionRequiredTolerance",
                "specificHeatCapacity": "#/$defs/Pancake3DSolvePositionRequiredTolerance",
                "temperature": "#/$defs/Pancake3DSolvePositionRequiredTolerance",
                "thermalConductivity": "#/$defs/Pancake3DSolvePositionRequiredTolerance",
                "thermalSolutionVector": "#/$defs/Pancake3DSolvePositionNotRequiredTolerance",
                "timeConstant": "#/$defs/Pancake3DSolvePositionNotRequiredTolerance",
                "totalResistiveHeating": "#/$defs/Pancake3DSolvePositionNotRequiredTolerance",
                "turnNumber": "#/$defs/Pancake3DSolvePositionRequiredTolerance",
                "voltageBetweenTerminals": "#/$defs/Pancake3DSolvePositionNotRequiredTolerance"
              },
              "propertyName": "quantity"
            },
            "oneOf": [
              {
                "$ref": "#/$defs/Pancake3DSolvePositionRequiredTolerance"
              },
              {
                "$ref": "#/$defs/Pancake3DSolvePositionNotRequiredTolerance"
              }
            ]
          },
          "title": "Tolerances for Adaptive Time Stepping",
          "type": "array"
        },
        "initialStep": {
          "description": "Initial step for adaptive time stepping",
          "exclusiveMinimum": 0,
          "title": "Initial Step for Adaptive Time Stepping",
          "type": "number"
        },
        "minimumStep": {
          "description": "The simulation will be aborted if a finer time step is required than this minimum step value.",
          "exclusiveMinimum": 0,
          "title": "Minimum Step for Adaptive Time Stepping",
          "type": "number"
        },
        "maximumStep": {
          "description": "Bigger steps than this won't be allowed",
          "exclusiveMinimum": 0,
          "title": "Maximumstep",
          "type": "number"
        },
        "integrationMethod": {
          "default": "Euler",
          "description": "Integration method for transient analysis",
          "enum": [
            "Euler",
            "Gear_2",
            "Gear_3",
            "Gear_4",
            "Gear_5",
            "Gear_6"
          ],
          "title": "Integration Method",
          "type": "string"
        },
        "breakPoints_input": {
          "default": [
            0
          ],
          "description": "Make sure to solve the system for these times.",
          "items": {
            "type": "number"
          },
          "title": "Break Points for Adaptive Time Stepping",
          "type": "array"
        }
      },
      "required": [
        "tolerances",
        "initialStep",
        "minimumStep",
        "maximumStep"
      ],
      "title": "Pancake3DSolveAdaptiveTimeLoopSettings",
      "type": "object"
    },
    "Pancake3DSolveAir": {
      "properties": {
        "permeability": {
          "description": "Permeability of air.",
          "exclusiveMinimum": 0,
          "title": "Permeability of Air",
          "type": "number"
        }
      },
      "required": [
        "permeability"
      ],
      "title": "Pancake3DSolveAir",
      "type": "object"
    },
    "Pancake3DSolveContactLayerMaterial": {
      "properties": {
        "resistivity": {
          "oneOf": [
            {
              "exclusiveMinimum": 0,
              "type": "number"
            },
            {
              "const": "perfectlyInsulating",
              "type": "string"
            }
          ],
          "default": null,
          "description": "A scalar value or \"perfectlyInsulating\". If \"perfectlyInsulating\" is given, the contact layer will be perfectly insulating. If this value is given, material properties won't be used for resistivity.",
          "title": "Resistivity"
        },
        "thermalConductivity": {
          "oneOf": [
            {
              "exclusiveMinimum": 0,
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "A scalar value. If this is given, material properties won't be used for thermal conductivity.",
          "title": "Thermal Conductivity"
        },
        "specificHeatCapacity": {
          "oneOf": [
            {
              "exclusiveMinimum": 0,
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "A scalar value. If this is given, material properties won't be used for specific heat capacity.",
          "title": "Specific Heat Capacity"
        },
        "material": {
          "oneOf": [
            {
              "$ref": "#/$defs/Pancake3DSolveNormalMaterial"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Material from STEAM material library.",
          "title": "Material"
        },
        "numberOfThinShellElements": {
          "default": 1,
          "description": "Number of thin shell elements in the FE formulation (GetDP related, not physical and only used when TSA is set to True)",
          "exclusiveMinimum": 0,
          "title": "Number of Thin Shell Elements (Advanced Input)",
          "type": "integer"
        }
      },
      "title": "Pancake3DSolveContactLayerMaterial",
      "type": "object"
    },
    "Pancake3DSolveConvectiveCooling": {
      "properties": {
        "heatTransferCoefficient": {
          "oneOf": [
            {
              "minimum": 0,
              "type": "number"
            },
            {
              "const": "nitrogenBath",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": 0,
          "description": "The heat transfer coefficient for the heat transfer between the winding and the air. If zero, no heat transfer to the air is considered.This feature is only implemented for the thin shell approximation.At the moment, only constant values are supported.",
          "title": "Heat Transfer Coefficient"
        },
        "exteriorBathTemperature": {
          "oneOf": [
            {
              "minimum": 0,
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 4.2,
          "description": "The temperature of the exterior bath for convective cooling boundary condition. ",
          "title": "Exterior Bath Temperature"
        }
      },
      "title": "Pancake3DSolveConvectiveCooling",
      "type": "object"
    },
    "Pancake3DSolveEECircuit": {
      "properties": {
        "inductanceInSeriesWithPancakeCoil": {
          "oneOf": [
            {
              "minimum": 0,
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 0,
          "description": "A lumped inductance in series with the pancake coil to model a bigger coil. ",
          "title": "Inductance in Series with Pancake Coil"
        },
        "enable": {
          "default": false,
          "description": "Enable the detection circuit for the pancake coil. ",
          "title": "Enable Detection Circuit",
          "type": "boolean"
        },
        "ResistanceEnergyExtractionOpenSwitch": {
          "oneOf": [
            {
              "minimum": 0,
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 1000000.0,
          "description": "The resistance of the energy extraction switch when modeled as open. ",
          "title": "Resistance of Energy Extraction Open Switch"
        },
        "ResistanceEnergyExtractionClosedSwitch": {
          "oneOf": [
            {
              "minimum": 0,
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 1e-6,
          "description": "The resistance of the energy extraction switch when modeled as closed. ",
          "title": "Resistance of Energy Extraction Closed Switch"
        },
        "ResistanceCrowbarOpenSwitch": {
          "oneOf": [
            {
              "minimum": 0,
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 1000000.0,
          "description": "The resistance of the crowbar switch when modeled as open. ",
          "title": "Resistance of Crowbar Open Switch"
        },
        "ResistanceCrowbarClosedSwitch": {
          "oneOf": [
            {
              "minimum": 0,
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 1e-6,
          "description": "The resistance of the crowbar switch when modeled as closed. ",
          "title": "Resistance of Crowbar Closed Switch"
        },
        "stopSimulationAtCurrent": {
          "oneOf": [
            {
              "minimum": 0,
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 0,
          "description": "If a quench is detected and the current reaches this value, the simulation will be stopped after. stopSimulationWaitingTime seconds.",
          "title": "Stop Simulation at Current"
        },
        "stopSimulationWaitingTime": {
          "oneOf": [
            {
              "minimum": 0,
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 0,
          "description": "The time to wait after a quench is detected and the current reaches stopSimulationAtCurrent before stopping the simulation.",
          "title": "Stop Simulation Waiting Time"
        },
        "TurnOffDeltaTimePowerSupply": {
          "oneOf": [
            {
              "minimum": 0,
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 0,
          "description": "The time it takes for the power supply to be turned off after quench detection. A linear ramp-down is assumed between the time of quench detection and the time of power supply turn off.",
          "title": "Time Interval Between Quench Detection and Power Supply Turn Off"
        }
      },
      "title": "Pancake3DSolveEECircuit",
      "type": "object"
    },
    "Pancake3DSolveFixedLoopInterval": {
      "properties": {
        "startTime": {
          "description": "Start time of the interval.",
          "minimum": 0,
          "title": "Start Time of the Interval",
          "type": "number"
        },
        "endTime": {
          "description": "End time of the interval.",
          "minimum": 0,
          "title": "End Time of the Interval",
          "type": "number"
        },
        "step": {
          "description": "Time step for the interval",
          "exclusiveMinimum": 0,
          "title": "Step for the Interval",
          "type": "number"
        }
      },
      "required": [
        "startTime",
        "endTime",
        "step"
      ],
      "title": "Pancake3DSolveFixedLoopInterval",
      "type": "object"
    },
    "Pancake3DSolveFixedTimeLoopSettings": {
      "properties": {
        "step": {
          "description": "Time step for fixed time stepping.",
          "exclusiveMinimum": 0,
          "title": "Step for Fixed Time Stepping",
          "type": "number"
        }
      },
      "required": [
        "step"
      ],
      "title": "Pancake3DSolveFixedTimeLoopSettings",
      "type": "object"
    },
    "Pancake3DSolveHTSNormalMaterial": {
      "properties": {
        "name": {
          "enum": [
            "Copper",
            "Hastelloy",
            "Silver",
            "Indium",
            "Stainless Steel",
            "Kapton",
            "G10"
          ],
          "title": "Material Name",
          "type": "string"
        },
        "RRR": {
          "default": 100,
          "description": "Residual-resistivity ratio (also known as Residual-resistance ratio or just RRR) is the ratio of the resistivity of a material at reference temperature and at 0 K.",
          "exclusiveMinimum": 0,
          "title": "Residual Resistance Ratio",
          "type": "number"
        },
        "RRRRefTemp": {
          "default": 295,
          "description": "Reference temperature for residual resistance ratio",
          "exclusiveMinimum": 0,
          "title": "Residual Resistance Ratio Reference Temperature",
          "type": "number"
        },
        "relativeThickness": {
          "description": "Winding tapes generally consist of more than one material. Therefore, when materials are given as a list in winding, their relative thickness, (thickness of the material) / (thickness of the bare conductor), should be specified.",
          "maximum": 1,
          "title": "Relative Thickness (only for winding)",
          "type": "number"
        }
      },
      "required": [
        "name",
        "relativeThickness"
      ],
      "title": "Pancake3DSolveHTSNormalMaterial",
      "type": "object"
    },
    "Pancake3DSolveHTSShuntLayerMaterial": {
      "properties": {
        "name": {
          "default": "Copper",
          "enum": [
            "Copper",
            "Hastelloy",
            "Silver",
            "Indium",
            "Stainless Steel",
            "Kapton",
            "G10"
          ],
          "title": "Material Name",
          "type": "string"
        },
        "RRR": {
          "default": 100,
          "description": "Residual-resistivity ratio (also known as Residual-resistance ratio or just RRR) is the ratio of the resistivity of a material at reference temperature and at 0 K.",
          "exclusiveMinimum": 0,
          "title": "Residual Resistance Ratio",
          "type": "number"
        },
        "RRRRefTemp": {
          "default": 295,
          "description": "Reference temperature for residual resistance ratio",
          "exclusiveMinimum": 0,
          "title": "Residual Resistance Ratio Reference Temperature",
          "type": "number"
        },
        "relativeHeight": {
          "default": 0.0,
          "description": "HTS 2G coated conductor are typically plated, usually  using copper. The relative height of the shunt layer is the  width of the shunt layer divided by the width of the tape.  0 means no shunt layer.",
          "maximum": 1,
          "minimum": 0,
          "title": "Relative Height of the Shunt Layer",
          "type": "number"
        }
      },
      "title": "Pancake3DSolveHTSShuntLayerMaterial",
      "type": "object"
    },
    "Pancake3DSolveHTSSuperconductingMaterial": {
      "properties": {
        "name": {
          "enum": [
            "HTSSuperPower",
            "HTSFujikura",
            "HTSSucci"
          ],
          "title": "Superconducting Material Name",
          "type": "string"
        },
        "RRR": {
          "default": 100,
          "description": "Residual-resistivity ratio (also known as Residual-resistance ratio or just RRR) is the ratio of the resistivity of a material at reference temperature and at 0 K.",
          "exclusiveMinimum": 0,
          "title": "Residual Resistance Ratio",
          "type": "number"
        },
        "RRRRefTemp": {
          "default": 295,
          "description": "Reference temperature for residual resistance ratio",
          "exclusiveMinimum": 0,
          "title": "Residual Resistance Ratio Reference Temperature",
          "type": "number"
        },
        "nValue": {
          "default": 30,
          "description": "N-value for E-J power law.",
          "exclusiveMinimum": 0,
          "title": "Nvalue",
          "type": "number"
        },
        "IcAtTAndBref": {
          "oneOf": [
            {
              "exclusiveMinimum": 0,
              "type": "number"
            },
            {
              "$ref": "#/$defs/Pancake3DSolveIcVsLengthCSV"
            },
            {
              "$ref": "#/$defs/Pancake3DSolveIcVsLengthList"
            }
          ],
          "description": "Critical current in A at reference temperature and magnetic field.The critical current value will change with temperature depending on the superconductor material.Either the same critical current for the whole tape or the critical current with respect to the tape length can be specified. To specify the same critical current for the entire tape, just use a scalar. To specify critical current with respect to the tape length: a CSV file can be used, or lengthValues and criticalCurrentValues can be given as lists. The data will be linearly interpolated.If a CSV file is to be used, the input should be the name of a CSV file (which is in the same folder as the input file) instead of a scalar. The first column of the CSV file will be the tape length in m, and the second column will be the critical current in A. ",
          "examples": [
            230,
            "IcVSlength.csv"
          ],
          "title": "Critical Current at Reference Temperature and Field in A"
        },
        "electricFieldCriterion": {
          "default": 0.0001,
          "description": "The electric field that defines the critical current density, i.e., the electric field at which the current density reaches the critical current density.",
          "exclusiveMinimum": 0,
          "title": "Electric Field Criterion",
          "type": "number"
        },
        "jCriticalScalingNormalToWinding": {
          "default": 1,
          "description": "Critical current scaling normal to winding, i.e., along the c_axis.  We have Jc_cAxis = scalingFactor * Jc_abPlane. A factor of 1 means no scaling such that the HTS layer is isotropic.",
          "exclusiveMinimum": 0,
          "title": "Critical Current Scaling Normal to Winding",
          "type": "number"
        },
        "IcReferenceTemperature": {
          "default": 77,
          "description": "Critical current reference temperature in Kelvin.",
          "exclusiveMinimum": 0,
          "title": "Critical Current Reference Temperature",
          "type": "number"
        },
        "IcReferenceBmagnitude": {
          "default": 0.0,
          "description": "Critical current reference magnetic field magnitude in Tesla.",
          "minimum": 0,
          "title": "Critical Current Reference Magnetic Field Magnitude",
          "type": "number"
        },
        "IcReferenceBangle": {
          "default": 90.0,
          "description": "Critical current reference magnetic field angle in degrees.0 degrees means the magnetic field is normal to the tape's wide surfaceand 90 degrees means the magnetic field is parallel to the tape's widesurface.",
          "minimum": 0,
          "title": "Critical Current Reference Magnetic Field Angle",
          "type": "number"
        },
        "relativeThickness": {
          "description": "Winding tapes generally consist of more than one material. Therefore, when materials are given as a list in winding, their relative thickness, (thickness of the material) / (thickness of the bare conductor), should be specified.",
          "maximum": 1,
          "title": "Relative Thickness (only for winding)",
          "type": "number"
        }
      },
      "required": [
        "name",
        "IcAtTAndBref",
        "relativeThickness"
      ],
      "title": "Pancake3DSolveHTSSuperconductingMaterial",
      "type": "object"
    },
    "Pancake3DSolveIcVsLengthCSV": {
      "properties": {
        "csvFile": {
          "description": "The path of the CSV file that contains the critical current values.",
          "title": "CSV File",
          "type": "string"
        },
        "lengthUnit": {
          "description": "Unit of the critical current values. It can be either the arc length in meter or the number of turns.",
          "examples": [
            "meter",
            "turnNumber"
          ],
          "title": "Unit",
          "type": "string"
        }
      },
      "required": [
        "csvFile",
        "lengthUnit"
      ],
      "title": "Pancake3DSolveIcVsLengthCSV",
      "type": "object"
    },
    "Pancake3DSolveIcVsLengthList": {
      "properties": {
        "lengthValues": {
          "description": "Tape length values that corresponds to criticalCurrentValues.",
          "items": {
            "type": "number"
          },
          "title": "Tape Length Values",
          "type": "array"
        },
        "criticalCurrentValues": {
          "description": "Critical current values that corresponds to lengthValues.",
          "items": {
            "type": "number"
          },
          "title": "Critical Current Values",
          "type": "array"
        },
        "lengthUnit": {
          "description": "Unit of the critical current values. It can be either the arc length in meter or the number of turns.",
          "examples": [
            "meter",
            "turnNumber"
          ],
          "title": "Unit",
          "type": "string"
        }
      },
      "required": [
        "lengthValues",
        "criticalCurrentValues",
        "lengthUnit"
      ],
      "title": "Pancake3DSolveIcVsLengthList",
      "type": "object"
    },
    "Pancake3DSolveImposedField": {
      "properties": {
        "imposedAxialField": {
          "description": "Imposed axial magnetic field in Tesla. Only constant, purely axial magnetic fields are supported at the moment.",
          "title": "Imposed Axial Magnetic Field",
          "type": "number"
        }
      },
      "required": [
        "imposedAxialField"
      ],
      "title": "Pancake3DSolveImposedField",
      "type": "object"
    },
    "Pancake3DSolveInitialConditions": {
      "properties": {
        "temperature": {
          "description": "Initial temperature of the pancake coils.",
          "exclusiveMinimum": 0,
          "title": "Initial Temperature",
          "type": "number"
        }
      },
      "required": [
        "temperature"
      ],
      "title": "Pancake3DSolveInitialConditions",
      "type": "object"
    },
    "Pancake3DSolveLocalDefect": {
      "properties": {
        "value": {
          "description": "Value of the local defect.",
          "minimum": 0,
          "title": "Value",
          "type": "number"
        },
        "startTurn": {
          "description": "Start turn of the local defect.",
          "minimum": 0,
          "title": "Start Turn",
          "type": "number"
        },
        "endTurn": {
          "description": "End turn of the local defect.",
          "exclusiveMinimum": 0,
          "title": "End Turn",
          "type": "number"
        },
        "startTime": {
          "description": "Start time of the local defect.",
          "minimum": 0,
          "title": "Start Time",
          "type": "number"
        },
        "transitionDuration": {
          "default": 0,
          "description": "Transition duration of the local defect. If not given, the transition will be instantly.",
          "minimum": 0,
          "title": "Transition Duration",
          "type": "number"
        },
        "whichPancakeCoil": {
          "oneOf": [
            {
              "exclusiveMinimum": 0,
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The first pancake coil is 1, the second is 2, etc.",
          "title": "Pancake Coil Number"
        }
      },
      "required": [
        "value",
        "startTurn",
        "endTurn",
        "startTime"
      ],
      "title": "Pancake3DSolveLocalDefect",
      "type": "object"
    },
    "Pancake3DSolveLocalDefects": {
      "properties": {
        "criticalCurrentDensity": {
          "oneOf": [
            {
              "$ref": "#/$defs/Pancake3DSolveLocalDefect"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Set critical current density locally.",
          "title": "Local Defect for Critical Current Density"
        }
      },
      "title": "Pancake3DSolveLocalDefects",
      "type": "object"
    },
    "Pancake3DSolveMaterial": {
      "properties": {
        "resistivity": {
          "oneOf": [
            {
              "exclusiveMinimum": 0,
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "A scalar value. If this is given, material properties won't be used for resistivity.",
          "title": "Resistivity"
        },
        "thermalConductivity": {
          "oneOf": [
            {
              "exclusiveMinimum": 0,
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "A scalar value. If this is given, material properties won't be used for thermal conductivity.",
          "title": "Thermal Conductivity"
        },
        "specificHeatCapacity": {
          "oneOf": [
            {
              "exclusiveMinimum": 0,
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "A scalar value. If this is given, material properties won't be used for specific heat capacity.",
          "title": "Specific Heat Capacity"
        },
        "material": {
          "oneOf": [
            {
              "$ref": "#/$defs/Pancake3DSolveNormalMaterial"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Material from STEAM material library.",
          "title": "Material"
        }
      },
      "title": "Pancake3DSolveMaterial",
      "type": "object"
    },
    "Pancake3DSolveNonlinearSolverSettings": {
      "properties": {
        "tolerances": {
          "description": "Time steps or nonlinear iterations will be refined until the tolerances are satisfied.",
          "items": {
            "discriminator": {
              "mapping": {
                "arcLength": "#/$defs/Pancake3DSolvePositionRequiredTolerance",
                "axialComponentOfTheMagneticField": "#/$defs/Pancake3DSolvePositionRequiredTolerance",
                "coupledSolutionVector": "#/$defs/Pancake3DSolvePositionNotRequiredTolerance",
                "criticalCurrent": "#/$defs/Pancake3DSolvePositionRequiredTolerance",
                "criticalCurrentDensity": "#/$defs/Pancake3DSolvePositionRequiredTolerance",
                "cryocoolerAveragePower": "#/$defs/Pancake3DSolvePositionNotRequiredTolerance",
                "cryocoolerAverageTemperature": "#/$defs/Pancake3DSolvePositionNotRequiredTolerance",
                "currentDensity": "#/$defs/Pancake3DSolvePositionRequiredTolerance",
                "currentSharingIndex": "#/$defs/Pancake3DSolvePositionRequiredTolerance",
                "currentThroughCoil": "#/$defs/Pancake3DSolvePositionNotRequiredTolerance",
                "debug": "#/$defs/Pancake3DSolvePositionRequiredTolerance",
                "electromagneticSolutionVector": "#/$defs/Pancake3DSolvePositionNotRequiredTolerance",
                "heatFlux": "#/$defs/Pancake3DSolvePositionRequiredTolerance",
                "inductance": "#/$defs/Pancake3DSolvePositionNotRequiredTolerance",
                "jHTS": "#/$defs/Pancake3DSolvePositionRequiredTolerance",
                "jHTSOverjCritical": "#/$defs/Pancake3DSolvePositionRequiredTolerance",
                "magneticEnergy": "#/$defs/Pancake3DSolvePositionNotRequiredTolerance",
                "magneticField": "#/$defs/Pancake3DSolvePositionRequiredTolerance",
                "magnitudeOfCurrentDensity": "#/$defs/Pancake3DSolvePositionRequiredTolerance",
                "magnitudeOfMagneticField": "#/$defs/Pancake3DSolvePositionRequiredTolerance",
                "maximumTemperature": "#/$defs/Pancake3DSolvePositionNotRequiredTolerance",
                "resistiveHeating": "#/$defs/Pancake3DSolvePositionRequiredTolerance",
                "resistivity": "#/$defs/Pancake3DSolvePositionRequiredTolerance",
                "specificHeatCapacity": "#/$defs/Pancake3DSolvePositionRequiredTolerance",
                "temperature": "#/$defs/Pancake3DSolvePositionRequiredTolerance",
                "thermalConductivity": "#/$defs/Pancake3DSolvePositionRequiredTolerance",
                "thermalSolutionVector": "#/$defs/Pancake3DSolvePositionNotRequiredTolerance",
                "timeConstant": "#/$defs/Pancake3DSolvePositionNotRequiredTolerance",
                "totalResistiveHeating": "#/$defs/Pancake3DSolvePositionNotRequiredTolerance",
                "turnNumber": "#/$defs/Pancake3DSolvePositionRequiredTolerance",
                "voltageBetweenTerminals": "#/$defs/Pancake3DSolvePositionNotRequiredTolerance"
              },
              "propertyName": "quantity"
            },
            "oneOf": [
              {
                "$ref": "#/$defs/Pancake3DSolvePositionRequiredTolerance"
              },
              {
                "$ref": "#/$defs/Pancake3DSolvePositionNotRequiredTolerance"
              }
            ]
          },
          "title": "Tolerances for Adaptive Time Stepping",
          "type": "array"
        },
        "maximumNumberOfIterations": {
          "default": 100,
          "description": "Maximum number of iterations allowed for the nonlinear solver.",
          "exclusiveMinimum": 0,
          "title": "Maximum Number of Iterations",
          "type": "integer"
        },
        "relaxationFactor": {
          "default": 0.7,
          "description": "Calculated step changes of the solution vector will be multiplied with this value for better convergence.",
          "exclusiveMinimum": 0,
          "title": "Relaxation Factor",
          "type": "number"
        }
      },
      "required": [
        "tolerances"
      ],
      "title": "Pancake3DSolveNonlinearSolverSettings",
      "type": "object"
    },
    "Pancake3DSolveNormalMaterial": {
      "properties": {
        "name": {
          "enum": [
            "Copper",
            "Hastelloy",
            "Silver",
            "Indium",
            "Stainless Steel",
            "Kapton",
            "G10"
          ],
          "title": "Material Name",
          "type": "string"
        },
        "RRR": {
          "default": 100,
          "description": "Residual-resistivity ratio (also known as Residual-resistance ratio or just RRR) is the ratio of the resistivity of a material at reference temperature and at 0 K.",
          "exclusiveMinimum": 0,
          "title": "Residual Resistance Ratio",
          "type": "number"
        },
        "RRRRefTemp": {
          "default": 295,
          "description": "Reference temperature for residual resistance ratio",
          "exclusiveMinimum": 0,
          "title": "Residual Resistance Ratio Reference Temperature",
          "type": "number"
        }
      },
      "required": [
        "name"
      ],
      "title": "Pancake3DSolveNormalMaterial",
      "type": "object"
    },
    "Pancake3DSolvePositionNotRequiredTolerance": {
      "properties": {
        "quantity": {
          "oneOf": [
            {
              "enum": [
                "electromagneticSolutionVector",
                "thermalSolutionVector",
                "coupledSolutionVector"
              ],
              "type": "string"
            },
            {
              "enum": [
                "currentThroughCoil",
                "voltageBetweenTerminals",
                "inductance",
                "timeConstant",
                "totalResistiveHeating",
                "magneticEnergy",
                "maximumTemperature",
                "cryocoolerAveragePower",
                "cryocoolerAverageTemperature"
              ],
              "type": "string"
            }
          ],
          "description": "Name of the quantity for tolerance.",
          "title": "Quantity"
        },
        "relative": {
          "description": "Relative tolerance for the quantity.",
          "minimum": 0,
          "title": "Relative Tolerance",
          "type": "number"
        },
        "absolute": {
          "description": "Absolute tolerance for the quantity",
          "minimum": 0,
          "title": "Absolute Tolerance",
          "type": "number"
        },
        "normType": {
          "default": "L2Norm",
          "description": "Sometimes, tolerances return a vector instead of a scalar (ex, solutionVector). Then, the magnitude of the tolerance should be calculated with a method. Norm type selects this method.",
          "enum": [
            "L1Norm",
            "MeanL1Norm",
            "L2Norm",
            "MeanL2Norm",
            "LinfNorm"
          ],
          "title": "Norm Type",
          "type": "string"
        }
      },
      "required": [
        "quantity",
        "relative",
        "absolute"
      ],
      "title": "Pancake3DSolvePositionNotRequiredTolerance",
      "type": "object"
    },
    "Pancake3DSolvePositionRequiredTolerance": {
      "properties": {
        "quantity": {
          "description": "Name of the quantity for tolerance.",
          "enum": [
            "magneticField",
            "magnitudeOfMagneticField",
            "currentDensity",
            "magnitudeOfCurrentDensity",
            "resistiveHeating",
            "temperature",
            "criticalCurrentDensity",
            "heatFlux",
            "resistivity",
            "thermalConductivity",
            "specificHeatCapacity",
            "jHTSOverjCritical",
            "criticalCurrent",
            "axialComponentOfTheMagneticField",
            "debug",
            "jHTS",
            "currentSharingIndex",
            "arcLength",
            "turnNumber"
          ],
          "title": "Quantity",
          "type": "string"
        },
        "relative": {
          "description": "Relative tolerance for the quantity.",
          "minimum": 0,
          "title": "Relative Tolerance",
          "type": "number"
        },
        "absolute": {
          "description": "Absolute tolerance for the quantity",
          "minimum": 0,
          "title": "Absolute Tolerance",
          "type": "number"
        },
        "normType": {
          "default": "L2Norm",
          "description": "Sometimes, tolerances return a vector instead of a scalar (ex, solutionVector). Then, the magnitude of the tolerance should be calculated with a method. Norm type selects this method.",
          "enum": [
            "L1Norm",
            "MeanL1Norm",
            "L2Norm",
            "MeanL2Norm",
            "LinfNorm"
          ],
          "title": "Norm Type",
          "type": "string"
        },
        "position": {
          "oneOf": [
            {
              "$ref": "#/$defs/Pancake3DPositionInCoordinates"
            },
            {
              "$ref": "#/$defs/Pancake3DPositionInTurnNumbers"
            }
          ],
          "description": "Probing position of the quantity for tolerance.",
          "title": "Probing Position of the Quantity"
        }
      },
      "required": [
        "quantity",
        "relative",
        "absolute",
        "position"
      ],
      "title": "Pancake3DSolvePositionRequiredTolerance",
      "type": "object"
    },
    "Pancake3DSolvePowerDensity": {
      "properties": {
        "power": {
          "oneOf": [
            {
              "minimum": 0,
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 0,
          "description": "The power in W for an imposed power density in the winding. 'startTime', 'endTime', 'startTurn', and 'endTurn' are also required to be set.",
          "title": "Power Density"
        },
        "startTime": {
          "oneOf": [
            {
              "minimum": 0,
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 0,
          "description": "The start time for the imposed power density in the winding. 'power', 'endTime', 'startTurn', and 'endTurn' are also required to be set.",
          "title": "Power Density Start Time"
        },
        "endTime": {
          "oneOf": [
            {
              "minimum": 0,
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 0,
          "description": "The end time for the imposed power density in the winding. 'power', 'startTime', 'startTurn', and 'endTurn' are also required to be set.",
          "title": "Power Density End Time"
        },
        "startArcLength": {
          "oneOf": [
            {
              "minimum": 0,
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 0,
          "description": "The start arc length in m for the imposed power density in the winding. 'power', 'startTime', 'endTime', and 'endArcLength' are also required to be set.",
          "title": "Power Density Start Arc Length"
        },
        "endArcLength": {
          "oneOf": [
            {
              "minimum": 0,
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 0,
          "description": "The end arc length in m for the imposed power density in the winding. 'power', 'startTime', 'endTime', and 'startArcLength' are also required to be set.",
          "title": "Power Density End Arc Length"
        }
      },
      "title": "Pancake3DSolvePowerDensity",
      "type": "object"
    },
    "Pancake3DSolveSaveQuantity": {
      "properties": {
        "quantity": {
          "oneOf": [
            {
              "enum": [
                "currentThroughCoil",
                "voltageBetweenTerminals",
                "inductance",
                "timeConstant",
                "totalResistiveHeating",
                "magneticEnergy",
                "maximumTemperature",
                "cryocoolerAveragePower",
                "cryocoolerAverageTemperature"
              ],
              "type": "string"
            },
            {
              "enum": [
                "magneticField",
                "magnitudeOfMagneticField",
                "currentDensity",
                "magnitudeOfCurrentDensity",
                "resistiveHeating",
                "temperature",
                "criticalCurrentDensity",
                "heatFlux",
                "resistivity",
                "thermalConductivity",
                "specificHeatCapacity",
                "jHTSOverjCritical",
                "criticalCurrent",
                "axialComponentOfTheMagneticField",
                "debug",
                "jHTS",
                "currentSharingIndex",
                "arcLength",
                "turnNumber"
              ],
              "type": "string"
            }
          ],
          "description": "Name of the quantity to be saved.",
          "title": "Quantity"
        },
        "timesToBeSaved": {
          "oneOf": [
            {
              "items": {
                "type": "number"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "List of times that wanted to be saved. If not given, all the time steps will be saved.",
          "title": "Times to be Saved"
        }
      },
      "required": [
        "quantity"
      ],
      "title": "Pancake3DSolveSaveQuantity",
      "type": "object"
    },
    "Pancake3DSolveShuntLayerMaterial": {
      "properties": {
        "resistivity": {
          "oneOf": [
            {
              "exclusiveMinimum": 0,
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "A scalar value. If this is given, material properties won't be used for resistivity.",
          "title": "Resistivity"
        },
        "thermalConductivity": {
          "oneOf": [
            {
              "exclusiveMinimum": 0,
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "A scalar value. If this is given, material properties won't be used for thermal conductivity.",
          "title": "Thermal Conductivity"
        },
        "specificHeatCapacity": {
          "oneOf": [
            {
              "exclusiveMinimum": 0,
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "A scalar value. If this is given, material properties won't be used for specific heat capacity.",
          "title": "Specific Heat Capacity"
        },
        "material": {
          "oneOf": [
            {
              "$ref": "#/$defs/Pancake3DSolveHTSShuntLayerMaterial"
            },
            {
              "type": "null"
            }
          ],
          "default": {
            "name": "Copper",
            "RRR": 100.0,
            "RRRRefTemp": 295.0,
            "relativeHeight": 0.0,
            "resistivityMacroName": "MATERIAL_Resistivity_Copper_T_B",
            "thermalConductivityMacroName": "MATERIAL_ThermalConductivity_Copper_T_B",
            "heatCapacityMacroName": "MATERIAL_SpecificHeatCapacity_Copper_T",
            "getdpTSAOnlyResistivityFunction": "NOT_DEFINED_IN_DATA_FIQUS_PANCAKE3D",
            "getdpTSAMassResistivityMacroName": "MATERIAL_Resistivity_Copper_TSAMass_T",
            "getdpTSAStiffnessResistivityMacroName": "MATERIAL_Resistivity_Copper_TSAStiffness_T",
            "getdpTSAMassThermalConductivityMacroName": "MATERIAL_ThermalConductivity_Copper_TSAMass_T",
            "getdpTSAStiffnessThermalConductivityMacroName": "MATERIAL_ThermalConductivity_Copper_TSAStiffness_T",
            "getdpTSAMassHeatCapacityMacroName": "MATERIAL_SpecificHeatCapacity_Copper_TSAMass_T",
            "getdpTSARHSFunction": "NOT_DEFINED_IN_DATA_FIQUS_PANCAKE3D",
            "getdpTSATripleFunction": "NOT_DEFINED_IN_DATA_FIQUS_PANCAKE3D",
            "getdpNormalMaterialGetDPName": "Copper"
          },
          "description": "Material from STEAM material library.",
          "title": "Material"
        }
      },
      "title": "Pancake3DSolveShuntLayerMaterial",
      "type": "object"
    },
    "Pancake3DSolveTerminalMaterialAndBoundaryCondition": {
      "properties": {
        "resistivity": {
          "oneOf": [
            {
              "exclusiveMinimum": 0,
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "A scalar value. If this is given, material properties won't be used for resistivity.",
          "title": "Resistivity"
        },
        "thermalConductivity": {
          "oneOf": [
            {
              "exclusiveMinimum": 0,
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "A scalar value. If this is given, material properties won't be used for thermal conductivity.",
          "title": "Thermal Conductivity"
        },
        "specificHeatCapacity": {
          "oneOf": [
            {
              "exclusiveMinimum": 0,
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "A scalar value. If this is given, material properties won't be used for specific heat capacity.",
          "title": "Specific Heat Capacity"
        },
        "material": {
          "oneOf": [
            {
              "$ref": "#/$defs/Pancake3DSolveNormalMaterial"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Material from STEAM material library.",
          "title": "Material"
        },
        "cooling": {
          "default": "fixedTemperature",
          "description": "Cooling condition of the terminal. It can be either adiabatic, fixed temperature, or cryocooler.",
          "enum": [
            "adiabatic",
            "fixedTemperature",
            "cryocooler"
          ],
          "title": "Cooling condition",
          "type": "string"
        },
        "cryocoolerOptions": {
          "oneOf": [
            {
              "$ref": "#/$defs/Pancake3DTerminalCryocoolerBoundaryCondition"
            },
            {
              "type": "null"
            }
          ],
          "default": {
            "coolingPowerMultiplier": 1.0,
            "staticHeatLoadPower": 0.0,
            "lumpedMass": {
              "material": {
                "RRR": 295.0,
                "RRRRefTemp": 295.0,
                "getdpNormalMaterialGetDPName": "Copper",
                "getdpTSAMassHeatCapacityMacroName": "MATERIAL_SpecificHeatCapacity_Copper_TSAMass_T",
                "getdpTSAMassResistivityMacroName": "MATERIAL_Resistivity_Copper_TSAMass_T",
                "getdpTSAMassThermalConductivityMacroName": "MATERIAL_ThermalConductivity_Copper_TSAMass_T",
                "getdpTSAOnlyResistivityFunction": "NOT_DEFINED_IN_DATA_FIQUS_PANCAKE3D",
                "getdpTSARHSFunction": "NOT_DEFINED_IN_DATA_FIQUS_PANCAKE3D",
                "getdpTSAStiffnessResistivityMacroName": "MATERIAL_Resistivity_Copper_TSAStiffness_T",
                "getdpTSAStiffnessThermalConductivityMacroName": "MATERIAL_ThermalConductivity_Copper_TSAStiffness_T",
                "getdpTSATripleFunction": "NOT_DEFINED_IN_DATA_FIQUS_PANCAKE3D",
                "heatCapacityMacroName": "MATERIAL_SpecificHeatCapacity_Copper_T",
                "name": "Copper",
                "resistivityMacroName": "MATERIAL_Resistivity_Copper_T_B",
                "thermalConductivityMacroName": "MATERIAL_ThermalConductivity_Copper_T_B"
              },
              "numberOfThinShellElements": 1,
              "resistivity": null,
              "specificHeatCapacity": null,
              "thermalConductivity": null,
              "volume": 0.0
            }
          },
          "description": "Additional inputs for the cryocooler boundary condition.",
          "title": "Cryocooler Boundary Condition"
        },
        "transitionNotch": {
          "$ref": "#/$defs/Pancake3DSolveMaterial",
          "description": "Material properties of the transition notch volume.",
          "title": "Transition Notch Properties"
        },
        "terminalContactLayer": {
          "$ref": "#/$defs/Pancake3DSolveMaterial",
          "description": "Material properties of the transition layer between terminals and windings.",
          "title": "Transition Layer Properties"
        }
      },
      "required": [
        "transitionNotch",
        "terminalContactLayer"
      ],
      "title": "Pancake3DSolveTerminalMaterialAndBoundaryCondition",
      "type": "object"
    },
    "Pancake3DSolveTimeAdaptive": {
      "properties": {
        "start": {
          "description": "Start time of the simulation.",
          "title": "Start Time",
          "type": "number"
        },
        "end": {
          "description": "End time of the simulation.",
          "title": "End Time",
          "type": "number"
        },
        "extrapolationOrder": {
          "default": 1,
          "description": "Before solving for the next time steps, the previous solutions can be extrapolated for better convergence.",
          "enum": [
            0,
            1,
            2,
            3
          ],
          "title": "Extrapolation Order",
          "type": "integer"
        },
        "timeSteppingType": {
          "const": "adaptive",
          "default": "adaptive",
          "title": "Timesteppingtype",
          "type": "string"
        },
        "adaptiveSteppingSettings": {
          "$ref": "#/$defs/Pancake3DSolveAdaptiveTimeLoopSettings",
          "description": "Adaptive time loop settings (only used if stepping type is adaptive).",
          "title": "Adaptive Time Loop Settings"
        }
      },
      "required": [
        "start",
        "end",
        "adaptiveSteppingSettings"
      ],
      "title": "Pancake3DSolveTimeAdaptive",
      "type": "object"
    },
    "Pancake3DSolveTimeFixed": {
      "properties": {
        "start": {
          "description": "Start time of the simulation.",
          "title": "Start Time",
          "type": "number"
        },
        "end": {
          "description": "End time of the simulation.",
          "title": "End Time",
          "type": "number"
        },
        "extrapolationOrder": {
          "default": 1,
          "description": "Before solving for the next time steps, the previous solutions can be extrapolated for better convergence.",
          "enum": [
            0,
            1,
            2,
            3
          ],
          "title": "Extrapolation Order",
          "type": "integer"
        },
        "timeSteppingType": {
          "const": "fixed",
          "default": "fixed",
          "title": "Timesteppingtype",
          "type": "string"
        },
        "fixedSteppingSettings": {
          "oneOf": [
            {
              "items": {
                "$ref": "#/$defs/Pancake3DSolveFixedLoopInterval"
              },
              "type": "array"
            },
            {
              "$ref": "#/$defs/Pancake3DSolveFixedTimeLoopSettings"
            }
          ],
          "description": "Fixed time loop settings (only used if stepping type is fixed).",
          "title": "Fixed Time Loop Settings"
        }
      },
      "required": [
        "start",
        "end",
        "fixedSteppingSettings"
      ],
      "title": "Pancake3DSolveTimeFixed",
      "type": "object"
    },
    "Pancake3DSolveWindingMaterial": {
      "properties": {
        "resistivity": {
          "oneOf": [
            {
              "exclusiveMinimum": 0,
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "A scalar value. If this is given, material properties won't be used for resistivity.",
          "title": "Resistivity"
        },
        "thermalConductivity": {
          "oneOf": [
            {
              "exclusiveMinimum": 0,
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "A scalar value. If this is given, material properties won't be used for thermal conductivity.",
          "title": "Thermal Conductivity"
        },
        "specificHeatCapacity": {
          "oneOf": [
            {
              "exclusiveMinimum": 0,
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "A scalar value. If this is given, material properties won't be used for specific heat capacity.",
          "title": "Specific Heat Capacity"
        },
        "material": {
          "oneOf": [
            {
              "items": {
                "discriminator": {
                  "mapping": {
                    "Copper": "#/$defs/Pancake3DSolveHTSNormalMaterial",
                    "G10": "#/$defs/Pancake3DSolveHTSNormalMaterial",
                    "HTSFujikura": "#/$defs/Pancake3DSolveHTSSuperconductingMaterial",
                    "HTSSucci": "#/$defs/Pancake3DSolveHTSSuperconductingMaterial",
                    "HTSSuperPower": "#/$defs/Pancake3DSolveHTSSuperconductingMaterial",
                    "Hastelloy": "#/$defs/Pancake3DSolveHTSNormalMaterial",
                    "Indium": "#/$defs/Pancake3DSolveHTSNormalMaterial",
                    "Kapton": "#/$defs/Pancake3DSolveHTSNormalMaterial",
                    "Silver": "#/$defs/Pancake3DSolveHTSNormalMaterial",
                    "Stainless Steel": "#/$defs/Pancake3DSolveHTSNormalMaterial"
                  },
                  "propertyName": "name"
                },
                "oneOf": [
                  {
                    "$ref": "#/$defs/Pancake3DSolveHTSNormalMaterial"
                  },
                  {
                    "$ref": "#/$defs/Pancake3DSolveHTSSuperconductingMaterial"
                  }
                ]
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "List of materials of HTS CC.",
          "title": "Materials of HTS CC"
        },
        "shuntLayer": {
          "$ref": "#/$defs/Pancake3DSolveShuntLayerMaterial",
          "default": {
            "resistivity": null,
            "thermalConductivity": null,
            "specificHeatCapacity": null,
            "material": {
              "RRR": 100.0,
              "RRRRefTemp": 295.0,
              "getdpNormalMaterialGetDPName": "Copper",
              "getdpTSAMassHeatCapacityMacroName": "MATERIAL_SpecificHeatCapacity_Copper_TSAMass_T",
              "getdpTSAMassResistivityMacroName": "MATERIAL_Resistivity_Copper_TSAMass_T",
              "getdpTSAMassThermalConductivityMacroName": "MATERIAL_ThermalConductivity_Copper_TSAMass_T",
              "getdpTSAOnlyResistivityFunction": "NOT_DEFINED_IN_DATA_FIQUS_PANCAKE3D",
              "getdpTSARHSFunction": "NOT_DEFINED_IN_DATA_FIQUS_PANCAKE3D",
              "getdpTSAStiffnessResistivityMacroName": "MATERIAL_Resistivity_Copper_TSAStiffness_T",
              "getdpTSAStiffnessThermalConductivityMacroName": "MATERIAL_ThermalConductivity_Copper_TSAStiffness_T",
              "getdpTSATripleFunction": "NOT_DEFINED_IN_DATA_FIQUS_PANCAKE3D",
              "heatCapacityMacroName": "MATERIAL_SpecificHeatCapacity_Copper_T",
              "name": "Copper",
              "relativeHeight": 0.0,
              "resistivityMacroName": "MATERIAL_Resistivity_Copper_T_B",
              "thermalConductivityMacroName": "MATERIAL_ThermalConductivity_Copper_T_B"
            }
          },
          "description": "Material properties of the shunt layer.",
          "title": "Shunt Layer Properties"
        },
        "isotropic": {
          "oneOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": false,
          "description": "If True, resistivity and thermal conductivity are isotropic. If False, they are anisotropic. The default is anisotropic material.",
          "title": "Isotropic Material"
        },
        "minimumPossibleResistivity": {
          "default": 1e-20,
          "description": "The resistivity of the winding won't be lower than this value, no matter what.",
          "minimum": 0,
          "title": "Minimum Possible Resistivity",
          "type": "number"
        },
        "maximumPossibleResistivity": {
          "default": 0.01,
          "description": "The resistivity of the winding won't be higher than this value, no matter what.",
          "exclusiveMinimum": 0,
          "title": "Maximum Possible Resistivity",
          "type": "number"
        }
      },
      "title": "Pancake3DSolveWindingMaterial",
      "type": "object"
    },
    "Pancake3DTerminalCryocoolerBoundaryCondition": {
      "properties": {
        "coolingPowerMultiplier": {
          "default": 1,
          "description": "Multiplier for the cooling power. It can be used to scale the cooling power given by the coldhead capacity map by a non-negative float factor.",
          "minimum": 0,
          "title": "Cooling Power Multiplier",
          "type": "number"
        },
        "staticHeatLoadPower": {
          "default": 0,
          "description": "Static heat load power in W. It can be used to add a static heat load to the cryocooler, i.e., decrease the power available for cooling.  The actual cooling power is P(t) = P_cryocooler(T) - P_staticLoad.",
          "minimum": 0,
          "title": "Static Heat Load Power",
          "type": "number"
        },
        "lumpedMass": {
          "$ref": "#/$defs/Pancake3DTerminalCryocoolerLumpedMass",
          "default": {
            "resistivity": null,
            "thermalConductivity": null,
            "specificHeatCapacity": null,
            "material": {
              "RRR": 295.0,
              "RRRRefTemp": 295.0,
              "getdpNormalMaterialGetDPName": "Copper",
              "getdpTSAMassHeatCapacityMacroName": "MATERIAL_SpecificHeatCapacity_Copper_TSAMass_T",
              "getdpTSAMassResistivityMacroName": "MATERIAL_Resistivity_Copper_TSAMass_T",
              "getdpTSAMassThermalConductivityMacroName": "MATERIAL_ThermalConductivity_Copper_TSAMass_T",
              "getdpTSAOnlyResistivityFunction": "NOT_DEFINED_IN_DATA_FIQUS_PANCAKE3D",
              "getdpTSARHSFunction": "NOT_DEFINED_IN_DATA_FIQUS_PANCAKE3D",
              "getdpTSAStiffnessResistivityMacroName": "MATERIAL_Resistivity_Copper_TSAStiffness_T",
              "getdpTSAStiffnessThermalConductivityMacroName": "MATERIAL_ThermalConductivity_Copper_TSAStiffness_T",
              "getdpTSATripleFunction": "NOT_DEFINED_IN_DATA_FIQUS_PANCAKE3D",
              "heatCapacityMacroName": "MATERIAL_SpecificHeatCapacity_Copper_T",
              "name": "Copper",
              "resistivityMacroName": "MATERIAL_Resistivity_Copper_T_B",
              "thermalConductivityMacroName": "MATERIAL_ThermalConductivity_Copper_T_B"
            },
            "volume": 0.0,
            "numberOfThinShellElements": 1
          },
          "description": "Thermal lumped mass between second stage of the cryocooler and pancake coil modeled via TSA.",
          "title": "Cryocooler Lumped Mass"
        }
      },
      "title": "Pancake3DTerminalCryocoolerBoundaryCondition",
      "type": "object"
    },
    "Pancake3DTerminalCryocoolerLumpedMass": {
      "properties": {
        "resistivity": {
          "oneOf": [
            {
              "exclusiveMinimum": 0,
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "A scalar value. If this is given, material properties won't be used for resistivity.",
          "title": "Resistivity"
        },
        "thermalConductivity": {
          "oneOf": [
            {
              "exclusiveMinimum": 0,
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "A scalar value. If this is given, material properties won't be used for thermal conductivity.",
          "title": "Thermal Conductivity"
        },
        "specificHeatCapacity": {
          "oneOf": [
            {
              "exclusiveMinimum": 0,
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "A scalar value. If this is given, material properties won't be used for specific heat capacity.",
          "title": "Specific Heat Capacity"
        },
        "material": {
          "oneOf": [
            {
              "$ref": "#/$defs/Pancake3DSolveNormalMaterial"
            },
            {
              "type": "null"
            }
          ],
          "default": {
            "name": "Copper",
            "RRR": 295.0,
            "RRRRefTemp": 295.0,
            "resistivityMacroName": "MATERIAL_Resistivity_Copper_T_B",
            "thermalConductivityMacroName": "MATERIAL_ThermalConductivity_Copper_T_B",
            "heatCapacityMacroName": "MATERIAL_SpecificHeatCapacity_Copper_T",
            "getdpTSAOnlyResistivityFunction": "NOT_DEFINED_IN_DATA_FIQUS_PANCAKE3D",
            "getdpTSAMassResistivityMacroName": "MATERIAL_Resistivity_Copper_TSAMass_T",
            "getdpTSAStiffnessResistivityMacroName": "MATERIAL_Resistivity_Copper_TSAStiffness_T",
            "getdpTSAMassThermalConductivityMacroName": "MATERIAL_ThermalConductivity_Copper_TSAMass_T",
            "getdpTSAStiffnessThermalConductivityMacroName": "MATERIAL_ThermalConductivity_Copper_TSAStiffness_T",
            "getdpTSAMassHeatCapacityMacroName": "MATERIAL_SpecificHeatCapacity_Copper_TSAMass_T",
            "getdpTSARHSFunction": "NOT_DEFINED_IN_DATA_FIQUS_PANCAKE3D",
            "getdpTSATripleFunction": "NOT_DEFINED_IN_DATA_FIQUS_PANCAKE3D",
            "getdpNormalMaterialGetDPName": "Copper"
          },
          "description": "Material from STEAM material library.",
          "title": "Material"
        },
        "volume": {
          "default": 0,
          "description": "Volume of the lumped thermal mass between second stage of the cryocooler and pancake coil in m^3. A zero value effectively disables the lumped thermal mass between second stage of the cryocooler and pancake coil.",
          "minimum": 0,
          "title": "Cryocooler Lumped Block Volume",
          "type": "number"
        },
        "numberOfThinShellElements": {
          "default": 1,
          "description": "Number of thin shell elements in the FE formulation (GetDP related, not physical and only used when TSA is set to True)",
          "exclusiveMinimum": 0,
          "title": "Number of Thin Shell Elements for Cryocooler Lumped Mass",
          "type": "integer"
        }
      },
      "title": "Pancake3DTerminalCryocoolerLumpedMass",
      "type": "object"
    },
    "PostprocCCTFiQuS": {
      "description": "Class for FiQuS CCT input file",
      "properties": {
        "windings_wwns": {
          "oneOf": [
            {
              "items": {
                "type": "integer"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Windings Wwns"
        },
        "windings_whns": {
          "oneOf": [
            {
              "items": {
                "type": "integer"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Windings Whns"
        },
        "additional_outputs": {
          "oneOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Additional Outputs"
        },
        "winding_order": {
          "oneOf": [
            {
              "items": {
                "type": "integer"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Winding Order"
        },
        "fqpl_export_trim_tol": {
          "oneOf": [
            {
              "items": {
                "type": "number"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Fqpl Export Trim Tol"
        },
        "variables": {
          "oneOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Variables"
        },
        "volumes": {
          "oneOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Volumes"
        },
        "file_exts": {
          "oneOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "File Exts"
        }
      },
      "title": "PostprocCCTFiQuS",
      "type": "object"
    },
    "PowerSupplyClass": {
      "description": "Level 1: Class for the power supply (aka power converter)",
      "properties": {
        "I_initial": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Initial current in the magnet. Propagated differently in various tools and obsolete # I00 (LEDET), I_0 (SIGMA), I0 (BBQ)",
          "title": "I Initial"
        },
        "t_off": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Time of switching off the switch next to current controlled source. t_PC (LEDET)",
          "title": "T Off"
        },
        "t_control_LUT": {
          "default": [],
          "description": "List of time values [s] for linear piece wise time function of current controlled source. t_PC_LUT (LEDET)",
          "items": {
            "type": "number"
          },
          "title": "T Control Lut",
          "type": "array"
        },
        "I_control_LUT": {
          "default": [],
          "description": "List of current values [A] for linear piece wise time function of current controlled source. I_PC_LUT (LEDET)",
          "items": {
            "type": "number"
          },
          "title": "I Control Lut",
          "type": "array"
        },
        "R_crowbar": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 0,
          "description": "Crowbar resistance in forward direction [Ohm]. Rcrow (SIGMA), RCrowbar (ProteCCT)",
          "title": "R Crowbar"
        },
        "L_crowbar": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 0,
          "description": "Crowbar inductance in forward direction [H].",
          "title": "L Crowbar"
        },
        "Ud_crowbar": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 0,
          "description": "Crowbar diode voltage in forward direction [V].",
          "title": "Ud Crowbar"
        },
        "R_c_r": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 0,
          "description": "Crowbar resistance in reverse direction [Ohm].",
          "title": "R C R"
        },
        "L_c_r": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 0,
          "description": "Crowbar inductance in reverse direction [H].",
          "title": "L C R"
        },
        "Ud_c_r": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 0,
          "description": "Crowbar diode voltage in reverse direction [V].",
          "title": "Ud C R"
        },
        "R_1": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 0,
          "description": "Resistance R1 [Ohm].",
          "title": "R 1"
        },
        "L_1": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 0,
          "description": "Inductance L1 [H].",
          "title": "L 1"
        },
        "R_2": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 0,
          "description": "Resistance R2 [Ohm].",
          "title": "R 2"
        },
        "L_2": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 0,
          "description": "Inductance L2 [H].",
          "title": "L 2"
        },
        "C": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 0,
          "description": "Capacitance C [F].",
          "title": "C"
        },
        "R_3": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 0,
          "description": "Resistance R3 [Ohm].",
          "title": "R 3"
        },
        "L_3": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 0,
          "description": "Inductance L3 [H].",
          "title": "L 3"
        }
      },
      "title": "PowerSupplyClass",
      "type": "object"
    },
    "ProDefined": {
      "description": "Level 3: Class for cable Bordini's Nb3Sn fit",
      "properties": {
        "type": {
          "const": "ProDefined",
          "title": "Type",
          "type": "string"
        },
        "Tc0": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Tc0"
        },
        "Bc20": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Bc20"
        },
        "C0": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "C0"
        },
        "alpha": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Alpha"
        },
        "p": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "P"
        },
        "q": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Q"
        },
        "v": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "V"
        },
        "B0": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "B0"
        }
      },
      "required": [
        "type"
      ],
      "title": "ProDefined",
      "type": "object"
    },
    "QuenchDetection": {
      "description": "Level 2: Class for FiQuS",
      "properties": {
        "voltage_thresholds": {
          "oneOf": [
            {
              "items": {
                "type": "number"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Voltage thresholds for quench detection. The quench detection will be triggered when the voltage exceeds these thresholds continuously for a time larger than the discrimination time.",
          "title": "List of quench detection voltage thresholds"
        },
        "discrimination_times": {
          "oneOf": [
            {
              "items": {
                "type": "number"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Discrimination times for quench detection. The quench detection will be triggered when the voltage exceeds the thresholds continuously for a time larger than these discrimination times.",
          "title": "List of quench detection discrimination times"
        },
        "voltage_tap_pairs": {
          "oneOf": [
            {
              "items": {
                "items": {
                  "type": "integer"
                },
                "type": "array"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Voltage tap pairs for quench detection. The voltage difference between these pairs will be used for quench detection.",
          "title": "List of quench detection voltage tap pairs"
        }
      },
      "title": "QuenchDetection",
      "type": "object"
    },
    "QuenchHeater": {
      "description": "Level 2: Class for the quench heater parameters",
      "properties": {
        "N_strips": {
          "oneOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Number of quench heater traces (typically 2 traces make one pad)",
          "title": "N Strips"
        },
        "t_trigger": {
          "default": [],
          "description": "Trigger times list of of quench heaters [s]",
          "items": {
            "type": "number"
          },
          "title": "T Trigger",
          "type": "array"
        },
        "U0": {
          "default": [],
          "description": "Initial charging voltages list of capacitor for the trance (not full pad!) [V]",
          "items": {
            "type": "number"
          },
          "title": "U0",
          "type": "array"
        },
        "C": {
          "default": [],
          "description": "Capacitances list of quench heater power supply for the trance (not full pad!) [H]",
          "items": {
            "type": "number"
          },
          "title": "C",
          "type": "array"
        },
        "R_warm": {
          "default": [],
          "description": "Internal resistances list of quench heater power supply and/or additional resistance added to limit the heater current for the trance (not full pad!) [Ohm]",
          "items": {
            "type": "number"
          },
          "title": "R Warm",
          "type": "array"
        },
        "w": {
          "default": [],
          "description": "Widths list of quench heater trance stainless steel part [m]",
          "items": {
            "type": "number"
          },
          "title": "W",
          "type": "array"
        },
        "h": {
          "default": [],
          "description": "Thickness list of quench heater trance stainless steel part [m]",
          "items": {
            "type": "number"
          },
          "title": "H",
          "type": "array"
        },
        "s_ins": {
          "oneOf": [
            {
              "items": {
                "type": "number"
              },
              "type": "array"
            },
            {
              "items": {
                "items": {
                  "type": "number"
                },
                "type": "array"
              },
              "type": "array"
            }
          ],
          "default": [],
          "description": "Thickness list of quench heater insulation between the stainless steel part and conductor insulation [m]This could be a list of list to specify multiple material thicknesses",
          "title": "S Ins"
        },
        "type_ins": {
          "oneOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "items": {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              "type": "array"
            }
          ],
          "default": [],
          "description": "Material names list of quench heater insulation between the stainless steel part and conductor insulation [-]This could be a list of list to specify multiple material names",
          "title": "Type Ins"
        },
        "s_ins_He": {
          "oneOf": [
            {
              "items": {
                "type": "number"
              },
              "type": "array"
            },
            {
              "items": {
                "items": {
                  "type": "number"
                },
                "type": "array"
              },
              "type": "array"
            }
          ],
          "default": [],
          "description": "Material names list of quench heater insulation between the stainless steel part and helium bath [-]This could be a list of list to specify multiple material thicknesses",
          "title": "S Ins He"
        },
        "type_ins_He": {
          "oneOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "items": {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              "type": "array"
            }
          ],
          "default": [],
          "description": "Material names list of quench heater insulation between the stainless steel part and helium bath [-]This could be a list of list to specify multiple material names",
          "title": "Type Ins He"
        },
        "l": {
          "default": [],
          "description": "Lengths list of quench heaters [m]. Typically equal to magnet length.",
          "items": {
            "type": "number"
          },
          "title": "L",
          "type": "array"
        },
        "l_copper": {
          "default": [],
          "description": "Lengths list of copper laminations of quench heaters [m].",
          "items": {
            "type": "number"
          },
          "title": "L Copper",
          "type": "array"
        },
        "l_stainless_steel": {
          "default": [],
          "description": "Lengths list of stainless steel only sections of quench heaters [m].",
          "items": {
            "type": "number"
          },
          "title": "L Stainless Steel",
          "type": "array"
        },
        "f_cover": {
          "default": [],
          "description": "List of fraction of stainless steel cover. This is l_stainless_steel/(l_stainless_steel+l_copper). Marked as obsolete, but still specified in some models [-].",
          "items": {
            "type": "number"
          },
          "title": "F Cover",
          "type": "array"
        },
        "iQH_toHalfTurn_From": {
          "default": [],
          "description": "List of heater numbers (1 based) equal to the length of turns that are covered by (i.e. thermally connected to) quench heaters.",
          "items": {
            "type": "integer"
          },
          "title": "Iqh Tohalfturn From",
          "type": "array"
        },
        "iQH_toHalfTurn_To": {
          "default": [],
          "description": "List of turn numbers (1 based) that are covered by (i.e. thermally connected to) quench heaters.",
          "items": {
            "type": "integer"
          },
          "title": "Iqh Tohalfturn To",
          "type": "array"
        },
        "turns_sides": {
          "default": [],
          "description": "List of letters specifying side of turn where quench heater is placed. Only used in FiQuS Multipole module.Possible sides are: 'o' - outer, 'i' - inner, 'l' - lower angle, 'h' - higher angle.",
          "items": {
            "type": "string"
          },
          "title": "Turns Sides",
          "type": "array"
        },
        "quench_propagation": {
          "oneOf": [
            {
              "enum": [
                "2Dx1D",
                "full"
              ],
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": "full",
          "description": "Enables to have a variable length for the quench heater, different from the full magnet length.",
          "title": "Quench Propagation"
        },
        "quench_prop_model": {
          "oneOf": [
            {
              "enum": [
                "Wilson",
                "Ts"
              ],
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": "Ts",
          "description": "Selects the model used for the material properties of the quench propagation. \"Wilson\" uses a scaled cv and Ts uses the cv at Ts.",
          "title": "Quench Prop Model"
        },
        "NZPV_multiplier": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 1.0,
          "description": "Factor that multiplies the Normal Zone Propagation Velocity",
          "title": "Nzpv Multiplier"
        },
        "L_QH_offset": {
          "oneOf": [
            {
              "items": {
                "type": "number"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": [],
          "description": "Offset of the quench heater strip from the referrence point located  at the middle of the magnet length. Positive values move the quench heater towards higher z values (move quench heater strip towards the front ofthe magnet).",
          "title": "L Qh Offset"
        }
      },
      "title": "QuenchHeater",
      "type": "object"
    },
    "QuenchProtection": {
      "description": "Level 2: Class for FiQuS",
      "properties": {
        "energy_extraction": {
          "$ref": "#/$defs/EnergyExtraction",
          "default": {
            "t_trigger": 99999.0,
            "R_EE": 0.0,
            "power_R_EE": 0.0,
            "L": 0.0,
            "C": 0.0,
            "L_c": 0.0,
            "R_c": 0.0,
            "Ud_snubber": 0.0,
            "L_s": 0.0,
            "R_s": 0.0,
            "Ud_switch": 0.0,
            "t_trigger_n": 99999.0,
            "R_EE_n": 0.0,
            "power_R_EE_n": 0.0,
            "L_n": 0.0,
            "C_n": 0.0,
            "L_c_n": 0.0,
            "R_c_n": 0.0,
            "Ud_snubber_n": 0.0,
            "L_s_n": 0.0,
            "R_s_n": 0.0,
            "Ud_switch_n": 0.0
          }
        },
        "quench_heaters": {
          "$ref": "#/$defs/QuenchHeater",
          "default": {
            "N_strips": null,
            "t_trigger": [],
            "U0": [],
            "C": [],
            "R_warm": [],
            "w": [],
            "h": [],
            "s_ins": [],
            "type_ins": [],
            "s_ins_He": [],
            "type_ins_He": [],
            "l": [],
            "l_copper": [],
            "l_stainless_steel": [],
            "f_cover": [],
            "iQH_toHalfTurn_From": [],
            "iQH_toHalfTurn_To": [],
            "turns_sides": [],
            "quench_propagation": "full",
            "quench_prop_model": "Ts",
            "NZPV_multiplier": 1.0,
            "L_QH_offset": []
          }
        },
        "cliq": {
          "$ref": "#/$defs/CLIQ_Class",
          "default": {
            "t_trigger": 99999.0,
            "current_direction": [],
            "sym_factor": null,
            "N_units": null,
            "U0": 0.0,
            "C": 0.0,
            "R": 0.0,
            "L": 0.0,
            "I0": null
          }
        },
        "esc": {
          "$ref": "#/$defs/ESC_Class",
          "default": {
            "t_trigger": [],
            "U0": [],
            "C": [],
            "L": [],
            "R_unit": [],
            "R_leads": [],
            "Ud_Diode": [],
            "L_Diode": []
          }
        },
        "e_cliq": {
          "$ref": "#/$defs/E_CLIQ_Class",
          "default": {
            "t_trigger": [],
            "R_leads": null,
            "L_leads": null,
            "source_type": null,
            "sine": {
              "current_amplitude": null,
              "frequency": null,
              "number_of_periods": null,
              "number_of_turns": null
            },
            "piecewise": {
              "csv_file": null,
              "current_multiplier": null,
              "currents": null,
              "time_multiplier": null,
              "times": null
            },
            "quench_propagation": "full",
            "quench_prop_model": "Ts",
            "NZPV_multiplier": 1.0,
            "N_units": [],
            "h_ecliq": [],
            "l_ecliq": [],
            "L_ecliq_offset": [],
            "iECLIQ_toHalfTurn_From": [],
            "iECLIQ_toHalfTurn_To": []
          }
        }
      },
      "title": "QuenchProtection",
      "type": "object"
    },
    "Rectangle": {
      "description": "Level 2: Class for Input/Output settings for the cable geometry",
      "properties": {
        "center_position": {
          "oneOf": [
            {
              "items": {
                "type": "number"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Center position in two dimensional plane (x, y).",
          "title": "Center Position"
        },
        "width": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Width of the region (m).",
          "title": "Width"
        },
        "height": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Height of the region (m).",
          "title": "Height"
        }
      },
      "title": "Rectangle",
      "type": "object"
    },
    "Rectangular": {
      "description": "Level 2: Class for strand parameters",
      "properties": {
        "type": {
          "const": "Rectangular",
          "title": "Type",
          "type": "string"
        },
        "bare_width": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Bare Width"
        },
        "bare_height": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Bare Height"
        },
        "Cu_noCu_in_strand": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Cu Nocu In Strand"
        },
        "filament_diameter": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Filament Diameter"
        },
        "f_Rho_effective": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "F Rho Effective"
        },
        "fil_twist_pitch": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Fil Twist Pitch"
        },
        "bare_corner_radius": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Bare Corner Radius"
        },
        "material_superconductor": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Material of the superconductor. E.g. NbTi, Nb3Sn, etc.",
          "title": "Material Superconductor"
        },
        "n_value_superconductor": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "n value of the superconductor (for power law fit).",
          "title": "N Value Superconductor"
        },
        "ec_superconductor": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Critical electric field of the superconductor.",
          "title": "Ec Superconductor"
        },
        "minimum_jc_fraction": {
          "oneOf": [
            {
              "exclusiveMinimum": 0,
              "maximum": 1,
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Fraction of Jc(minimum_jc_field, T) to use as minimum Jc for the power law fit to avoid division by zero when Jc(B_local, T) decreases to zero.Typical value would be 0.001 (so the Jc_minimum is 0.1% of Jc(minimum_jc_field, T))This fraction is only allowed to be greater than 0.0 and less than or equal to 1.0",
          "title": "Minimum Jc Fraction"
        },
        "minimum_jc_field": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Magnetic flux density in tesla used for calculation of Jc(minimum_jc_field, T).This gets multiplied by minimum_jc_fraction and used as minimum Jc for the power law",
          "title": "Minimum Jc Field"
        },
        "k_material_superconductor": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Thermal conductivity of the superconductor.",
          "title": "K Material Superconductor"
        },
        "Cv_material_superconductor": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Material function for specific heat of the superconductor.",
          "title": "Cv Material Superconductor"
        },
        "k_material_stabilizer": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Thermal conductivity of the stabilizer.",
          "title": "K Material Stabilizer"
        },
        "Cv_material_stabilizer": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Material function for specific heat of the stabilizer.",
          "title": "Cv Material Stabilizer"
        },
        "rho_material_stabilizer": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Material function for resistivity of the stabilizer. Constant resistivity can be given as float.",
          "title": "Rho Material Stabilizer"
        },
        "RRR": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "items": {
                "type": "number"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Residual resistivity ratio of the stabilizer. If a list of RRR is provided it needs to match in length the number of matrix regions in the geometry (typically 3)",
          "title": "Rrr"
        },
        "T_ref_RRR_high": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Upper reference temperature for RRR measurements.",
          "title": "T Ref Rrr High"
        },
        "T_ref_RRR_low": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Lower reference temperature for RRR measurements.",
          "title": "T Ref Rrr Low"
        }
      },
      "required": [
        "type"
      ],
      "title": "Rectangular",
      "type": "object"
    },
    "Ribbon": {
      "description": "Mono cable type: This is basically type of cable consisting of one strand - not really a cable",
      "properties": {
        "type": {
          "const": "Ribbon",
          "title": "Type",
          "type": "string"
        },
        "n_strands": {
          "oneOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "N Strands"
        },
        "bare_cable_width": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Bare Cable Width"
        },
        "bare_cable_height_low": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Bare Cable Height Low"
        },
        "bare_cable_height_high": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Bare Cable Height High"
        },
        "bare_cable_height_mean": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Bare Cable Height Mean"
        },
        "th_insulation_along_width": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Th Insulation Along Width"
        },
        "th_insulation_along_height": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Th Insulation Along Height"
        },
        "f_superconductor": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "F Superconductor"
        },
        "f_stabilizer": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "F Stabilizer"
        },
        "f_insulation": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "F Insulation"
        },
        "f_inner_voids": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "F Inner Voids"
        },
        "f_outer_voids": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "F Outer Voids"
        },
        "f_core": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "F Core"
        },
        "material_insulation": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Material Insulation"
        },
        "material_inner_voids": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Material Inner Voids"
        },
        "material_outer_voids": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Material Outer Voids"
        },
        "material_core": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Material Core"
        }
      },
      "required": [
        "type"
      ],
      "title": "Ribbon",
      "type": "object"
    },
    "Round": {
      "description": "Level 2: Class for strand parameters",
      "properties": {
        "type": {
          "const": "Round",
          "title": "Type",
          "type": "string"
        },
        "fil_twist_pitch": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Fil Twist Pitch"
        },
        "diameter": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Diameter"
        },
        "diameter_core": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Diameter Core"
        },
        "diameter_filamentary": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Diameter Filamentary"
        },
        "filament_diameter": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Filament Diameter"
        },
        "filament_hole_diameter": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Specifies round or hexagonal hole diameter inside the filament. If None or 0.0, no hole is created.",
          "title": "Filament Hole Diameter"
        },
        "number_of_filaments": {
          "oneOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Number Of Filaments"
        },
        "f_Rho_effective": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "F Rho Effective"
        },
        "Cu_noCu_in_strand": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Cu Nocu In Strand"
        },
        "material_superconductor": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Material of the superconductor. E.g. Nb-Ti, Nb3Sn, etc.",
          "title": "Material Superconductor"
        },
        "n_value_superconductor": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "n value of the superconductor (for power law fit).",
          "title": "N Value Superconductor"
        },
        "ec_superconductor": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Critical electric field of the superconductor in V/m.",
          "title": "Ec Superconductor"
        },
        "minimum_jc_fraction": {
          "oneOf": [
            {
              "exclusiveMinimum": 0,
              "maximum": 1,
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Fraction of Jc(minimum_jc_field, T) to use as minimum Jc for the power law fit to avoid division by zero when Jc(B_local, T) decreases to zero.Typical value would be 0.001 (so the Jc_minimum is 0.1% of Jc(minimum_jc_field, T))This fraction is only allowed to be greater than 0.0 and less than or equal to 1.0",
          "title": "Minimum Jc Fraction"
        },
        "minimum_jc_field": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Magnetic flux density in tesla used for calculation of Jc(minimum_jc_field, T). This gets multiplied by minimum_jc_fraction and used as minimum Jc for the power law",
          "title": "Minimum Jc Field"
        },
        "k_material_superconductor": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Thermal conductivity of the superconductor.",
          "title": "K Material Superconductor"
        },
        "Cv_material_superconductor": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Material function for specific heat of the superconductor.",
          "title": "Cv Material Superconductor"
        },
        "rho_material_stabilizer": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Material function for resistivity of the stabilizer. Constant resistivity can be given as float.",
          "title": "Rho Material Stabilizer"
        },
        "rho_material_holes": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Material function for resistivity of the holes in the filaments.Constant resistivity can be given as float, material name as a string or None or 0.0 to use 'air' in the holes.",
          "title": "Rho Material Holes"
        },
        "RRR": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "items": {
                "type": "number"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Residual resistivity ratio of the stabilizer. If a list of RRR is provided it needs to match in length the number of matrix regions in the geometry (typically 3)",
          "title": "Rrr"
        },
        "T_ref_RRR_high": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Upper reference temperature for RRR measurements.",
          "title": "T Ref Rrr High"
        },
        "T_ref_RRR_low": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Lower reference temperature for RRR measurements.",
          "title": "T Ref Rrr Low"
        },
        "k_material_stabilizer": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Thermal conductivity of the stabilizer.",
          "title": "K Material Stabilizer"
        },
        "Cv_material_stabilizer": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Material function for specific heat of the stabilizer.",
          "title": "Cv Material Stabilizer"
        }
      },
      "required": [
        "type"
      ],
      "title": "Round",
      "type": "object"
    },
    "RunFiQuS": {
      "description": "Class for FiQuS run",
      "properties": {
        "type": {
          "default": "start_from_yaml",
          "description": "FiQuS allows you to run the model in different ways. The run type can be specified here. For example, you can just create the geometry and mesh or just solve the model with previous mesh, etc.",
          "enum": [
            "start_from_yaml",
            "mesh_only",
            "geometry_only",
            "geometry_and_mesh",
            "pre_process_only",
            "mesh_and_solve_with_post_process_python",
            "solve_with_post_process_python",
            "solve_only",
            "post_process_getdp_only",
            "post_process_python_only",
            "post_process",
            "plot_python",
            "batch_post_process_python",
            "only_create_pro_file_from_mesh",
            "postprocess_veusz"
          ],
          "title": "Run Type of FiQuS",
          "type": "string"
        },
        "geometry": {
          "oneOf": [
            {
              "type": "integer"
            },
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "This key will be appended to the geometry folder.",
          "title": "Geometry Folder Key"
        },
        "mesh": {
          "oneOf": [
            {
              "type": "integer"
            },
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "This key will be appended to the mesh folder.",
          "title": "Mesh Folder Key"
        },
        "solution": {
          "oneOf": [
            {
              "type": "integer"
            },
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "This key will be appended to the solution folder.",
          "title": "Solution Folder Key"
        },
        "launch_gui": {
          "default": false,
          "description": "If True, the GUI will be launched after the run.",
          "title": "Launch GUI",
          "type": "boolean"
        },
        "overwrite": {
          "default": false,
          "description": "If True, the existing folders will be overwritten, otherwise new folders will be created. NOTE: This setting has no effect for HTCondor runs.",
          "title": "Overwrite",
          "type": "boolean"
        },
        "comments": {
          "default": "",
          "description": "Comments for the run. These comments will be saved in the run_log.csv file.",
          "title": "Comments",
          "type": "string"
        },
        "verbosity_Gmsh": {
          "default": 5,
          "description": "Level of information printed on the terminal and the message console (0: silent except for fatal errors, 1: +errors, 2: +warnings, 3: +direct, 4: +information, 5: +status, 99: +debug)",
          "title": "verbosity_Gmsh",
          "type": "integer"
        },
        "verbosity_GetDP": {
          "default": 5,
          "description": "Level of information printed on the terminal and the message console. Higher number prints more, good options are 5 or 6.",
          "title": "verbosity_GetDP",
          "type": "integer"
        },
        "verbosity_FiQuS": {
          "default": true,
          "description": "Level of information printed on the terminal and the message console by FiQuS. Only True of False for now.",
          "title": "verbosity_FiQuS",
          "type": "boolean"
        }
      },
      "title": "RunFiQuS",
      "type": "object"
    },
    "Rutherford": {
      "description": "Rutherford cable type: for example LHC MB magnet cable",
      "properties": {
        "type": {
          "const": "Rutherford",
          "title": "Type",
          "type": "string"
        },
        "n_strands": {
          "oneOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "N Strands"
        },
        "n_strand_layers": {
          "oneOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "N Strand Layers"
        },
        "n_strands_per_layers": {
          "oneOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "N Strands Per Layers"
        },
        "bare_cable_width": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Bare Cable Width"
        },
        "bare_cable_height_low": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Bare Cable Height Low"
        },
        "bare_cable_height_high": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Bare Cable Height High"
        },
        "bare_cable_height_mean": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Bare Cable Height Mean"
        },
        "th_insulation_along_width": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Th Insulation Along Width"
        },
        "th_insulation_along_height": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Th Insulation Along Height"
        },
        "width_core": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Width Core"
        },
        "height_core": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Height Core"
        },
        "strand_twist_pitch": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Strand Twist Pitch"
        },
        "strand_twist_pitch_angle": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Strand Twist Pitch Angle"
        },
        "Rc": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Rc"
        },
        "Ra": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Ra"
        },
        "f_superconductor": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "F Superconductor"
        },
        "f_stabilizer": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "F Stabilizer"
        },
        "f_insulation": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "F Insulation"
        },
        "f_inner_voids": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "F Inner Voids"
        },
        "f_outer_voids": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "F Outer Voids"
        },
        "f_core": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "F Core"
        },
        "material_insulation": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Material Insulation"
        },
        "material_inner_voids": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Material Inner Voids"
        },
        "material_outer_voids": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Material Outer Voids"
        },
        "material_core": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Material Core"
        },
        "gamma_c": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 0.0,
          "description": "parameter for DISCC cable homogenization",
          "title": "Gamma C"
        }
      },
      "required": [
        "type"
      ],
      "title": "Rutherford",
      "type": "object"
    },
    "Silver_thickness": {
      "properties": {
        "top": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "On the top side.",
          "title": "Top"
        },
        "bottom": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "On the bottom side.",
          "title": "Bottom"
        }
      },
      "title": "Silver_thickness",
      "type": "object"
    },
    "SolveCCT": {
      "description": "Level 2: Class for FiQuS CCT",
      "properties": {
        "windings": {
          "$ref": "#/$defs/Winding_s",
          "default": {
            "currents": null,
            "sigmas": null,
            "mu_rs": null
          }
        },
        "fqpls": {
          "$ref": "#/$defs/FQPL_s",
          "default": {
            "currents": [],
            "sigmas": [],
            "mu_rs": []
          }
        },
        "formers": {
          "$ref": "#/$defs/Former_s",
          "default": {
            "sigmas": null,
            "mu_rs": null
          }
        },
        "air": {
          "$ref": "#/$defs/Air_s",
          "default": {
            "sigma": null,
            "mu_r": null
          }
        },
        "pro_template": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Pro Template"
        },
        "variables": {
          "oneOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Variables"
        },
        "volumes": {
          "oneOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Volumes"
        },
        "file_exts": {
          "oneOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "File Exts"
        }
      },
      "title": "SolveCCT",
      "type": "object"
    },
    "SolveExcitationCoils": {
      "description": "Level 5: Class for superimposed DC field or current parameters for the sine source",
      "properties": {
        "enable": {
          "oneOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": false,
          "description": "Solve with excitation coils acting as sources.",
          "title": "Enable"
        }
      },
      "title": "SolveExcitationCoils",
      "type": "object"
    },
    "SolvePiecewiseSource": {
      "description": "Level 4: Class for piecewise (linear) source parameters",
      "properties": {
        "source_csv_file": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "File name for the from_file source type defining the time evolution of current and field (in-phase). Multipliers are used for each of them. The file should contain two columns: 'time' (s) and 'value' (field/current (T/A)), with these headers. If this field is set, times, applied_fields_relative and transport_currents_relative are ignored.",
          "title": "Source Csv File"
        },
        "times": {
          "oneOf": [
            {
              "items": {
                "type": "number"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Time instants (s) defining the piecewise linear sources. Used only if source_csv_file is not set. Can be scaled by time_multiplier.",
          "title": "Times"
        },
        "applied_fields_relative": {
          "oneOf": [
            {
              "items": {
                "type": "number"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Applied fields relative to multiplier applied_field_multiplier at the time instants 'times'. Used only if source_csv_file is not set.",
          "title": "Applied Fields Relative"
        },
        "transport_currents_relative": {
          "oneOf": [
            {
              "items": {
                "type": "number"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Transport currents relative to multiplier transport_current_multiplier at the time instants 'times'. Used only if source_csv_file is not set.",
          "title": "Transport Currents Relative"
        },
        "time_multiplier": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Multiplier for the time values in times (scales the time values). Also used for the time values in the source_csv_file.",
          "title": "Time Multiplier"
        },
        "applied_field_multiplier": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Multiplier for the applied fields in applied_fields_relative. Also used for the values in the source_csv_file.",
          "title": "Applied Field Multiplier"
        },
        "transport_current_multiplier": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Multiplier for the transport currents in transport_currents_relative. Also used for the values in the source_csv_file.",
          "title": "Transport Current Multiplier"
        }
      },
      "title": "SolvePiecewiseSource",
      "type": "object"
    },
    "SolveSineSource": {
      "description": "Level 4: Class for Sine source parameters",
      "properties": {
        "frequency": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Frequency of the sine source (Hz).",
          "title": "Frequency"
        },
        "field_amplitude": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Amplitude of the sine field (T).",
          "title": "Field Amplitude"
        },
        "current_amplitude": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Amplitude of the sine current (A).",
          "title": "Current Amplitude"
        },
        "superimposed_DC": {
          "$ref": "#/$defs/SolveSineSourceSuperimposedDC",
          "default": {
            "field_magnitude": 0.0,
            "current_magnitude": 0.0
          }
        }
      },
      "title": "SolveSineSource",
      "type": "object"
    },
    "SolveSineSourceSuperimposedDC": {
      "description": "Level 5: Class for superimposed DC field or current parameters for the sine source",
      "properties": {
        "field_magnitude": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 0.0,
          "description": "DC field magnitude (T) (direction along y-axis). Solution must be initialized with a non-zero field solution stored in a .pos file if non-zero DC field is used.",
          "title": "Field Magnitude"
        },
        "current_magnitude": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 0.0,
          "description": "DC current magnitude (A). Solution must be initialized with a non-zero field solution stored in a .pos file if non-zero DC current is used.",
          "title": "Current Magnitude"
        }
      },
      "title": "SolveSineSourceSuperimposedDC",
      "type": "object"
    },
    "SourcePiecewise": {
      "description": "Level 3 Class for piecewise (linear) source parameters for E-CLIQ",
      "properties": {
        "csv_file": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "File name for the from_file source type defining the time evolution of current. Multipliers are used for each of them. The file should contain two columns: 'time' (s) and 'current' (A), with these headers. If this field is set, times and currents are ignored.",
          "title": "Csv File"
        },
        "times": {
          "oneOf": [
            {
              "items": {
                "type": "number"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Time instants (s) defining the piecewise linear sources. Used only if source_csv_file is not set. Can be scaled by time_multiplier.",
          "title": "Times"
        },
        "currents": {
          "oneOf": [
            {
              "items": {
                "type": "number"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "E-CLIQ coil currents relative to current_multiplier at the time instants 'times'. Used only if source_csv_file is not set.",
          "title": "Currents"
        },
        "time_multiplier": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Multiplier for the time values in times (scales the time values). Also used for the time values in the source_csv_file.",
          "title": "Time Multiplier"
        },
        "current_multiplier": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Multiplier for the E-CLIQ coil currents in currents. Also used for the values in the source_csv_file.",
          "title": "Current Multiplier"
        }
      },
      "title": "SourcePiecewise",
      "type": "object"
    },
    "SourceSine": {
      "description": "Level 3: Class for Sine source parameters for E-CLIQ",
      "properties": {
        "frequency": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Frequency of the sine source [Hz].",
          "title": "Frequency"
        },
        "current_amplitude": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Amplitude of the sine current (A/turn).",
          "title": "Current Amplitude"
        },
        "number_of_periods": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Number of periods of ECLIQ power supply [-].",
          "title": "Number Of Periods"
        },
        "number_of_turns": {
          "oneOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Number of turns that conform ECLIQ [-].",
          "title": "Number Of Turns"
        }
      },
      "title": "SourceSine",
      "type": "object"
    },
    "Succi_fixed": {
      "description": "Level 3: Class for cable Succi's YBCO fit",
      "properties": {
        "type": {
          "const": "Succi_fixed",
          "title": "Type",
          "type": "string"
        },
        "Jc_factor": {
          "oneOf": [
            {
              "exclusiveMinimum": 0.0,
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 1.0,
          "description": "This factor multiplies the Jc returned by the function.",
          "title": "Jc Factor"
        }
      },
      "required": [
        "type"
      ],
      "title": "Succi_fixed",
      "type": "object"
    },
    "Summers": {
      "description": "Level 3: Class for cable Summer's Nb3Sn fit",
      "properties": {
        "type": {
          "const": "Summers",
          "title": "Type",
          "type": "string"
        },
        "Tc0_Summers": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Tc0 Summers"
        },
        "Bc20_Summers": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Bc20 Summers"
        },
        "Jc0_Summers": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Jc0 Summers"
        }
      },
      "required": [
        "type"
      ],
      "title": "Summers",
      "type": "object"
    },
    "TSTC": {
      "description": "Twisted Stacked-Tape Cable (TSTC) type:",
      "properties": {
        "type": {
          "const": "TSTC",
          "title": "Type",
          "type": "string"
        },
        "stack_layout": {
          "oneOf": [
            {
              "items": {
                "enum": [
                  -1,
                  0,
                  1
                ],
                "type": "integer"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "2D: Tape stack layout ordered TOP->BOTTOM. The numbers represent: 1 = a CC tape, -1 = a flipped CC tape, 0 = a shunt.",
          "title": "Stack Layout"
        },
        "nb_tapes": {
          "oneOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "3D: Number of tapes in the stack",
          "title": "Nb Tapes"
        },
        "tape_width": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "3D and 2D: Width of each tape",
          "title": "Tape Width"
        },
        "tape_thickness": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "3D and 2D: Thickness of each tape",
          "title": "Tape Thickness"
        },
        "twist_pitch": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "3D: Length over which tapes are twisted by full rotation",
          "title": "Twist Pitch"
        },
        "pitch_fraction": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 1.0,
          "description": "3D: Fraction of the twist pitch to be modelled (1.0 = full pitch, 0.5 = half pitch, etc.)",
          "title": "Pitch Fraction"
        },
        "bare_cable_width": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Cable width, typically the same as CC width",
          "title": "Bare Cable Width"
        },
        "bare_cable_height_low": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Narrow end (if applicable) cable height (thickness), typically the same as (CC thickness + Cu stabilizer thickness) * number of tapes.",
          "title": "Bare Cable Height Low"
        },
        "bare_cable_height_high": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Wide end (if applicable) cable height (thickness), typically the same as (CC thickness + Cu stabilizer thickness) * number of tapes.",
          "title": "Bare Cable Height High"
        },
        "bare_cable_height_mean": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Average (if applicable) cable height (thickness), typically the same as (CC thickness + Cu stabilizer thickness) * number of tapes.",
          "title": "Bare Cable Height Mean"
        },
        "th_insulation_along_width": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Insulation thickness along the width ",
          "title": "Th Insulation Along Width"
        },
        "th_insulation_along_height": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Insulation thickness along the height ",
          "title": "Th Insulation Along Height"
        },
        "f_superconductor": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Fraction of superconductor related to the total area of the cable (winding cell)",
          "title": "F Superconductor"
        },
        "f_stabilizer": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Fraction of stabilizer related to the total area of the cable (winding cell)",
          "title": "F Stabilizer"
        },
        "f_silver": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Fraction of silver related to the total area of the cable (winding cell)",
          "title": "F Silver"
        },
        "f_substrate": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Fraction of substrate (including buffer layers and silver overlay) related to the total area of the cable (winding cell)",
          "title": "F Substrate"
        },
        "f_shunt": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Fraction of substrate (including buffer layers and silver overlay) related to the total area of the cable (winding cell)",
          "title": "F Shunt"
        },
        "f_insulation": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Fraction of cable insulation related to the total area of the cable (winding cell)",
          "title": "F Insulation"
        },
        "f_inner_voids": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Fraction of additional material (typically insulation) related to the total area of the cable (winding cell)",
          "title": "F Inner Voids"
        },
        "f_outer_voids": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Fraction of additional material (typically helium impregnating the windings) related to the total area of the cable (winding cell)",
          "title": "F Outer Voids"
        }
      },
      "required": [
        "type"
      ],
      "title": "TSTC",
      "type": "object"
    },
    "Winding_gFiQuS": {
      "description": "Level 2: Class for FiQuS CCT",
      "properties": {
        "names": {
          "oneOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Names"
        },
        "r_wms": {
          "oneOf": [
            {
              "items": {
                "type": "number"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "R Wms"
        },
        "n_turnss": {
          "oneOf": [
            {
              "items": {
                "type": "number"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "N Turnss"
        },
        "ndpts": {
          "oneOf": [
            {
              "items": {
                "type": "integer"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Ndpts"
        },
        "ndpt_ins": {
          "oneOf": [
            {
              "items": {
                "type": "integer"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Ndpt Ins"
        },
        "ndpt_outs": {
          "oneOf": [
            {
              "items": {
                "type": "integer"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Ndpt Outs"
        },
        "lps": {
          "oneOf": [
            {
              "items": {
                "type": "number"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Lps"
        },
        "alphas": {
          "oneOf": [
            {
              "items": {
                "type": "number"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Alphas"
        },
        "wwws": {
          "oneOf": [
            {
              "items": {
                "type": "number"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Wwws"
        },
        "wwhs": {
          "oneOf": [
            {
              "items": {
                "type": "number"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Wwhs"
        }
      },
      "title": "Winding_gFiQuS",
      "type": "object"
    },
    "Winding_s": {
      "description": "Level 2: Class for FiQuS CCT",
      "properties": {
        "currents": {
          "oneOf": [
            {
              "items": {
                "type": "number"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Currents"
        },
        "sigmas": {
          "oneOf": [
            {
              "items": {
                "type": "number"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Sigmas"
        },
        "mu_rs": {
          "oneOf": [
            {
              "items": {
                "type": "number"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Mu Rs"
        }
      },
      "title": "Winding_s",
      "type": "object"
    },
    "fiqus__data__DataFiQuSHomogenizedConductor__HomogenizedConductor": {
      "description": "Level 1: Class for FiQuS ConductorAC",
      "properties": {
        "type": {
          "const": "HomogenizedConductor",
          "title": "Type",
          "type": "string"
        },
        "geometry": {
          "$ref": "#/$defs/HomogenizedConductorGeometry",
          "default": {
            "cables_definition": {
              "center_position": null,
              "height": null,
              "width": null
            },
            "excitation_coils": [],
            "air": {
              "center_position": null,
              "radius": null
            },
            "air_form": "circle",
            "io_settings": {
              "load": {
                "filename": null,
                "load_from_yaml": false
              },
              "save": {
                "filename": null,
                "save_to_yaml": false
              }
            }
          }
        },
        "mesh": {
          "$ref": "#/$defs/HomogenizedConductorMesh",
          "default": {
            "scaling_global": 1.0,
            "air_boundary_mesh_size_ratio": 1.0,
            "cable_mesh_size_ratio": 1.0
          }
        },
        "solve": {
          "$ref": "#/$defs/HomogenizedConductorSolve",
          "default": {
            "pro_template": "HomogenizedConductor_template.pro",
            "general_parameters": {
              "n_strands": 36,
              "noOfMPITasks": false,
              "rho_cables": 1.0,
              "strand_filling_factor": 0.8617,
              "strand_transposition_length": 0.1,
              "superconductor_linear": false
            },
            "formulation_parameters": {
              "hphia": false
            },
            "discc": {
              "adjacent_coupling_resistance": 0.00001,
              "crossing_coupling_resistance": 0.00002,
              "gamma_a": 0.53,
              "gamma_c": 0.43,
              "lambda_a": 0.006
            },
            "rohf": {
              "enable": false,
              "parameter_csv_file": null
            },
            "rohm": {
              "enable": false,
              "parameter_csv_file": null,
              "tau_scaling": 1.0,
              "weight_scaling": 1.0
            },
            "current_sharing": {
              "matrix_resistance": 0.0006536208,
              "superconductor_Ic": 350.0,
              "superconductor_n_value": 30.0
            },
            "initial_conditions": {
              "init_from_pos_file": false,
              "pos_file_to_init_from": null
            },
            "source_parameters": {
              "boundary_condition_type": "Natural",
              "cable_current_multipliers": null,
              "excitation_coils": {
                "enable": false
              },
              "field_angle": 90.0,
              "parallel_resistor": false,
              "piecewise": {
                "applied_field_multiplier": null,
                "applied_fields_relative": null,
                "source_csv_file": null,
                "time_multiplier": null,
                "times": null,
                "transport_current_multiplier": null,
                "transport_currents_relative": null
              },
              "sine": {
                "current_amplitude": null,
                "field_amplitude": null,
                "frequency": null,
                "superimposed_DC": {
                  "current_magnitude": 0.0,
                  "field_magnitude": 0.0
                }
              },
              "source_type": "sine"
            },
            "numerical_parameters": {
              "piecewise": {
                "force_stepping_at_times_piecewise_linear": false,
                "max_timestep_piecewise_linear": null,
                "time_to_simulate": null,
                "times_max_timestep_piecewise_linear": null,
                "timesteps_per_time_to_simulate": null,
                "variable_max_timestep": false
              },
              "sine": {
                "number_of_periods_to_simulate": null,
                "timesteps_per_period": null
              }
            },
            "frequency_domain_solver": {
              "enable": false,
              "frequency_sweep": {
                "end_frequency": 100.0,
                "number_of_frequencies": 3,
                "run_sweep": false,
                "start_frequency": 1.0
              }
            }
          }
        },
        "postproc": {
          "$ref": "#/$defs/HomogenizedConductorPostproc",
          "default": {
            "generate_pos_files": true,
            "output_folder": null,
            "generate_report": false,
            "save_last_current_density": null,
            "save_last_magnetic_field": null,
            "cleanup": {
              "remove_msh_file": false,
              "remove_pre_file": false,
              "remove_res_file": false
            },
            "sample_line": {
              "end_point": null,
              "samples": null,
              "start_point": null
            }
          }
        }
      },
      "required": [
        "type"
      ],
      "title": "HomogenizedConductor",
      "type": "object"
    },
    "fiqus__data__DataFiQuSHomogenizedConductor__HomogenizedConductorFormulationparametersROHF": {
      "description": "Level 4: Class for ROHF model parameters",
      "properties": {
        "enable": {
          "oneOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": false,
          "description": "Use ROHF to homogenize the internal flux hysteresis in the cables.",
          "title": "Enable"
        },
        "parameter_csv_file": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Name of the csv file containing the ROHF parameters within the inputs folder with expected row structure: [alpha,kappa,tau].",
          "title": "Parameter Csv File"
        }
      },
      "title": "HomogenizedConductorFormulationparametersROHF",
      "type": "object"
    },
    "fiqus__data__DataFiQuSHomogenizedConductor__HomogenizedConductorFormulationparametersROHM": {
      "description": "Level 4: Class for ROHM model parameters",
      "properties": {
        "enable": {
          "oneOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": false,
          "description": "Use ROHM to homogenize the magnetization hysteresis in the cables.",
          "title": "Enable"
        },
        "parameter_csv_file": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Name of the csv file containing the ROHM parameters within the inputs folder with expected row structure: [alpha,kappa,chi,gamma,lambda].",
          "title": "Parameter Csv File"
        },
        "weight_scaling": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 1.0,
          "description": "Downscaling factor (s<1.0) which is applied to all weights except the first, which is scaled up to compensate.",
          "title": "Weight Scaling"
        },
        "tau_scaling": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 1.0,
          "description": "Scaling factor which is applied uniformly to all coupling time constants.",
          "title": "Tau Scaling"
        }
      },
      "title": "HomogenizedConductorFormulationparametersROHM",
      "type": "object"
    },
    "fiqus__data__DataFiQuSMultipole__HomogenizedConductor": {
      "description": "Level 3: Class for FiQuS Multipole",
      "properties": {
        "enabled": {
          "oneOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": false,
          "description": "It determines whether the homogenized conductor model is enabled or not.",
          "title": "Enabled"
        },
        "run_type": {
          "$ref": "#/$defs/HomogenizedConductorRunType",
          "default": {
            "mode": "ramp",
            "ramp_file": null
          },
          "description": "Type of simulation to run with homogenized conductors (ramp - real cooling conditions, isothermal_ramp - unlimited cooling, quench - non-zero initial conditions)"
        },
        "rohm": {
          "$ref": "#/$defs/fiqus__data__DataFiQuSMultipole__HomogenizedConductorFormulationparametersROHM",
          "default": {
            "enabled": false,
            "parameter_csv_file": null,
            "gather_cell_systems": false,
            "weight_scaling": 1.0,
            "tau_scaling": 1.0
          },
          "description": "This dictionary contains the information about the parameters for the ROHM model."
        },
        "rohf": {
          "$ref": "#/$defs/fiqus__data__DataFiQuSMultipole__HomogenizedConductorFormulationparametersROHF",
          "default": {
            "enabled": false,
            "parameter_csv_file": null,
            "gather_cell_systems": false
          },
          "description": "This dictionary contains the information about the parameters for the ROHF model."
        }
      },
      "title": "HomogenizedConductor",
      "type": "object"
    },
    "fiqus__data__DataFiQuSMultipole__HomogenizedConductorFormulationparametersROHF": {
      "description": "Level 4: Class for finite element formulation parameters",
      "properties": {
        "enabled": {
          "oneOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": false,
          "description": "Use ROHF to homogenize the internal flux hysteresis in the cables.",
          "title": "Enabled"
        },
        "parameter_csv_file": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Name of the csv file containing the ROHF parameters within the inputs folder with expected row structure: [alpha,kappa,tau].",
          "title": "Parameter Csv File"
        },
        "gather_cell_systems": {
          "oneOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": false,
          "description": "when true, it generates a single system to solve the ROHF cells instead of one system per cell to decrease generation time.",
          "title": "Gather Cell Systems"
        }
      },
      "title": "HomogenizedConductorFormulationparametersROHF",
      "type": "object"
    },
    "fiqus__data__DataFiQuSMultipole__HomogenizedConductorFormulationparametersROHM": {
      "description": "Level 4: Class for finite element formulation parameters",
      "properties": {
        "enabled": {
          "oneOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": false,
          "description": "Use ROHM to homogenize the magnetization hysteresis in the cables.",
          "title": "Enabled"
        },
        "parameter_csv_file": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Name of the csv file containing the ROHM parameters within the inputs folder with expected row structure: [alpha,kappa,chi,gamma,lambda].",
          "title": "Parameter Csv File"
        },
        "gather_cell_systems": {
          "oneOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": false,
          "description": "when true, it generates a single system to solve the ROHM cells instead of one system per cell to decrease generation time.",
          "title": "Gather Cell Systems"
        },
        "weight_scaling": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 1.0,
          "description": "Downscaling factor (s<1.0) which is applied to all weights except the first, which is scaled up to compensate.",
          "title": "Weight Scaling"
        },
        "tau_scaling": {
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": 1.0,
          "description": "Scaling factor which is applied uniformly to all coupling time constants.",
          "title": "Tau Scaling"
        }
      },
      "title": "HomogenizedConductorFormulationparametersROHM",
      "type": "object"
    }
  }
}
