  # GetDP Thermal solver
  getdpThermal: &getdpThermal
    key: getdpThermal
    command: runGetdp
    DOF_variable: T
    constraints:
      - temperature

    domain_groups:
      thermal:
        Vol_The: [this]
        Tot_The: [this, flux, convection, radiation, combined, flow, adiabatic, interface, resistance_thermal]
        ThermRes_OneSideVol:
            oneSideOf: [resistance_thermal]

    bc_groups:
      fixed: Sur_FIXED_T
      flux: Sur_HEATFLUX_T
      convection: Sur_CONVECTIVE_T
      radiation: Sur_RADIATION_T
      combined: Sur_COMBINED_T
      flow: Sur_HEATFLOW_T
      adiabatic: Sur_ADIABATIC_T
      interface: Sur_INTERFACE_T
      resistance_thermal: Sur_RESISTANCE_T

    flags:
      boundary:
        radiationNLFlag:
          condition: _radiation
          isNLFlag: false

      material:
        lambdaNLFlag:
          condition: lambda
          isNLFlag: false
        cpNLFlag:
          condition: cp
          isNLFlag: false
        # rhoNLFlag: rho

    argumentPosition:
      rho:
        temperature: 1
      cp:
        temperature: 1
      h:
        temperature: 1
        time: 2
      hr:
        temperature: 1
      lambda:
        temperature: 1
      qSurf:
        temperature: 1
        time: 2
      qVol:
        temperature: 1
        time: 2
      Velocity_x:
        time: 1
      Velocity_y:
        time: 1
      Velocity_z:
        time: 1
      tstep:
        time: 1
      StartTime:
        temperature: 1
      EndTime:
        temperature: 1

    postValues:
      temperature:
        name: Temperature
        safeName: Temperature_T_[C]
        symbol: T
        units: °C
        type: NODE_FIELD
        components: 1
        term: ["{ T }"]
        domains:
          - Vol_The
        smoothing: 0
        exportToVTK: false
        hidden: false
        default: true
        locked: true
      averageTemperature:
        name: Average temperature
        safeName: Average_Temperature_[C]
        units: °C
        type: INTEGRAL
        term: '{T}* GeomCoeff[]  /volume[]'
        domains:
          - Vol_The
        smoothing: 0
        hidden: false
        default: true
        locked: true
      temp:
        name: temp
        units: °C
        term:
          - '{ T }'
        type: RESIDUAL
        valueRegister: 7
        domains:
          - Vol_The
        smoothing: 0
        hidden: true
        default: true
      tempTest:
        term:
          - '{ T }'
        type: RESIDUAL_FOR_ADAPTIVE
        name: tempTest
        domains:
          - Vol_The
        smoothing: 0
        hidden: true
        default: true

      hFlux:
        name: Convective flux
        safeName: Convective_flux_[W/m2]
        units: "W/m^2"
        term:
          - '{ U_h }'
        type: BOUNDARY_GLOBAL
        domains:
          - Sur_CONVECTIVE_T, Sur_COMBINED_T
        smoothing: 1
        hidden: false
        default: true
        locked: true

      hrFlux:
        name: Radiative flux
        safeName: Radiative_flux_[W/m2]
        units: "W/m^2"
        term:
          - '{ U_hr }'
        type: BOUNDARY_GLOBAL
        domains:
          - Sur_RADIATION_T, Sur_COMBINED_T
        smoothing: 1
        hidden: false
        default: true
        locked: true

      PhaseField:
        name: Phase Field
        safeName: Phase_Field
        symbol: \\phi
        units: "%"
        type: NODE_FIELD
        components: 1
        external:
          calculator: steel_phases
          mainField: true
        domains:
          - Vol_The
        smoothing: 0
        exportToVTK: false
        hidden: true
        default: true
        locked: false

      MartensiteField:
        name: Martensite Field
        safeName: Phase_Martensite_[%]
        symbol: \\phi
        units: "%"
        type: NODE_FIELD
        components: 1
        external:
          calculator: steel_phases
          mainField: false
        domains:
          - Vol_The
        smoothing: 0
        exportToVTK: false
        hidden: true
        default: true
        locked: false


      AusteniteField:
        name: Austenite Field
        safeName: Phase_Austenite_[%]
        symbol: \\phi
        units: "%"
        type: NODE_FIELD
        components: 1
        external:
          calculator: steel_phases
          mainField: false
        domains:
          - Vol_The
        smoothing: 0
        exportToVTK: false
        hidden: true
        default: true
        locked: false


      BainiteField:
        name: Bainite Field
        safeName: Phase_Bainite_and_Pearlite_[%]
        symbol: \\phi
        units: "%"
        type: NODE_FIELD
        components: 1
        external:
          calculator: steel_phases
          mainField: false
        domains:
          - Vol_The
        smoothing: 0
        exportToVTK: false
        hidden: true
        default: true
        locked: false

      MaxTemperatureField:
        name: Max Temperature Field
        safeName: MaxTemperature
        symbol: T
        units: °C
        type: NODE_FIELD
        components: 1
        external:
          calculator: steel_hardness
          mainField: false
        domains:
          - Vol_The
        smoothing: 0
        exportToVTK: false
        hidden: true
        default: true
        locked: false
