 # GetDP Electromagnetics general solver 3D
  getdpEMGeneral3D: &getdpEMGeneral3D
    key: getdpEMGeneral3D
    command: runGetdp
    DOF_variable: AZ

    constraints:
      - name: Gauge
        region: Region[{non_conducting_domain, conducting_domain, source_domain, stranded_source_domain}]
      - I_3D
      - V_3D
      - Lin3D
      - MVP_3D
      - ElPot
      - target_power
    case_constants:
      - target_power
    domain_groups:
      em_nc:
        non_conducting_domain: [this]
      em_cc:
        conducting_domain: [this]
        ElecRes_OneSideVol:
            oneSideOf: [resistance_electric]
      source_dom:
        source_domain: [this]
        terms: [current, voltage, ground, power]
      #permag_dom:
      #  magnet_domain: [this]
      em_sibc:
        sibc_domain: [this]
      stranded_source_dom:
        stranded_source_domain: [this]
        terms_str: [current_stranded, ground_stranded]


    bc_groups:
      infinity: Sur_INFINITY_B
      flux_parallel_cond: Sur_PARALLEL_cond_B
      flux_parallel_ncond: Sur_PARALLEL_ncond_B
      flux_normal: Sur_NORMAL_B
      interface: Sur_INTERFACE_B
      voltage: Sur_VOLTAGE_B
      current: Sur_CURRENT_B
      ground: Sur_GROUND_B
      power: Sur_POWER_B
      sibc: Sur_SIBC_B
      current_stranded: SurStr_CURRENT_B
      ground_stranded: SurStr_GROUND_B
      voltage_CH: Sur_VOLTAGE_B_CH
      current_CH: Sur_CURRENT_B_CH
      ground_CH: Sur_GROUND_B_CH
      power_CH: Sur_POWER_B_CH
      current_stranded_CH: SurStr_CURRENT_B_CH
      ground_stranded_CH: SurStr_GROUND_B_CH
      resistance_electric: Sur_RESISTANCE_B

    flags:
      material:
        bhNLFlag:
          condition: BHModel
          isNLFlag: true
        # muCNLFlag: mu_C
        # muNLFlag: mu

    needs_cohomology:
      - current
      - current_stranded
      - voltage
      - power

    argumentPosition:
      I_3D:
        time: -1
      V_3D:
        time: -1
      I_str:
        time: 1
      frequency:
        time: -1
      BHModel:
        magIntensity: 1
      mu:
        temperature: 2
      sigma:
        temperature: 1
      target_power:
        time: -1

    postValues:
      muTest:
        name: muTest
        term:
          - '1/(nu_nu0[{d a},#1] * mu0)'
        type: RESIDUAL_FOR_ADAPTIVE
        domains:
          - non_conducting_domain, conducting_domain, source_domain, sibc_domain, stranded_source_domain
        smoothing: 1
        args:
            1:
                physics: physicsInductionHeating
                string: "<T>[{T}]"
        hidden: true
        default: true
      sigmaTest:
        name: sigmaTest
        term:
          - 'sigma[#1]'
          - '0'
        type: RESIDUAL_FOR_ADAPTIVE
        domains:
          - conducting_domain, source_domain, sibc_domain, stranded_source_domain
          - non_conducting_domain
        smoothing: 1
        args:
            1:
                physics: physicsInductionHeating
                string: "<T>[{T}]"
        hidden: true
        default: true

      Bfield:
        name: Magnetic Flux Density
        safeName: Magnetic_Flux_Density_B,_[T]
        symbol: B
        units: T
        term:
        - Norm[ {d a} ]
        type: NODE_FIELD
        domains:
        - non_conducting_domain, conducting_domain, source_domain, stranded_source_domain
        smoothing: 1
        hidden: false
        default: true
        locked: true

      Bfield_re:
        name: Magnetic Flux Density
        safeName: Magnetic_Flux_Density_B_re,_[T]
        symbol: B_{re}
        units: T
        term:
        - Re[{d a}]
        type: NODE_FIELD
        components: 3
        domains:
        - non_conducting_domain, conducting_domain, source_domain, stranded_source_domain
        smoothing: 1
        hidden: false
        default: true
      Bfield_im:
        name: Magnetic Flux Density
        safeName: Magnetic_Flux_Density_B_im,_[T]
        symbol: B_{im}
        units: T
        term:
        - Im[{d a}]
        type: NODE_FIELD
        components: 3
        domains:
        - non_conducting_domain, conducting_domain, source_domain, stranded_source_domain
        smoothing: 1
        hidden: false
        default: true

      CurrDens:
        name: Current Density
        safeName: Current_Density_J,_[A_m^-2]
        symbol: J
        units: '\frac{A}{m^2}'
        term:
        - 'Norm[sigma[#1]*(Dt[{a}]+{e})] '
        - '0'
        - "FillFactor[]/Fs[Sqrt[cross_section_area[]*4/3.14]*Sqrt[3.14*Freq*sigma[#1]/(2*nu_nu0[{d a}, #1])]]/cross_section_area[]/(Norm[{e0}])*Norm[{e}]"
        type: NODE_FIELD
        domains:
        - conducting_domain, source_domain
        - non_conducting_domain
        - stranded_source_domain
        smoothing: 1
        args:
            1:
                physics: physicsInductionHeating
                string: "<T>[{T}]"
        hidden: false
        default: true
        locked: true

      CurrDens_re:
        name: Current Density
        safeName: Current_Density_J_re,_[A_m^-2]
        symbol: J_{re}
        units: '\frac{A}{m^2}'
        term:
        - "-Re[sigma[#1]*(Dt[{a}]+{e})] "
        - '0'
        # - "-FillFactor[] * I_str[]/cross_section_area[]/(Norm[{e0}])*Re[Dt[{a}]+{e}]"
        - "-FillFactor[]/Fs[Sqrt[cross_section_area[]*4/3.14]*Sqrt[3.14*Freq*sigma[#1]/(2*nu_nu0[{d a}, #1])]]/cross_section_area[]/(Norm[{e0}])*Re[{e}]"
        type: NODE_FIELD
        components: 3
        domains:
        - conducting_domain, source_domain
        - non_conducting_domain
        - stranded_source_domain
        smoothing: 1
        args:
            1:
                physics: physicsInductionHeating
                string: "<T>[{T}]"
        hidden: false
        default: true

      CurrDens_im:
        name: Current Density
        safeName: Current_Density_J_im,_[A_m^-2]
        symbol: J_{im}
        units: '\frac{A}{m^2}'
        term:
        - "-Im[sigma[#1]*(Dt[{a}]+{e})]"
        - '0'
        # - "-FillFactor[] *I_str[]/cross_section_area[]/(Norm[{e0}])*Im[Dt[{a}]+{e}]"
        - "-FillFactor[]/Fs[Sqrt[cross_section_area[]*4/3.14]*Sqrt[3.14*Freq*sigma[#1]/(2*nu_nu0[{d a}, #1])]]/cross_section_area[]/(Norm[{e0}])*Im[{e}]"
        type: NODE_FIELD
        components: 3
        domains:
        - conducting_domain, source_domain
        - non_conducting_domain
        - stranded_source_domain
        smoothing: 1
        args:
            1:
                physics: physicsInductionHeating
                string: "<T>[{T}]"
        hidden: false
        default: true

      volt_re:
        term:
        - " Re[ {dInv e} ] "
        - " 0 "
        - " Re[ {dInv e} ] "
        name: Electric_scalar_potential_V_re,_[V]
        domains:
        - conducting_domain, source_domain
        - non_conducting_domain
        - stranded_source_domain
        smoothing: 1
        hidden: false
        default: false

      volt_im:
        term:
        - " Im[ {dInv e} ] "
        - " 0 "
        - " Im[ {dInv e} ] "
        name: Electric_scalar_potential_V_im,_[V]
        domains:
        - conducting_domain, source_domain
        - non_conducting_domain
        - stranded_source_domain
        smoothing: 1
        hidden: false
        default: false

      volt:
        term:
        - " Sqrt[ Re[{dInv e}]*Re[{dInv e}] + Im[{dInv e}]*Im[{dInv e}] ] "
        - " 0 "
        - " Sqrt[ Re[{dInv e}]*Re[{dInv e}] + Im[{dInv e}]*Im[{dInv e}] ] "
        name: Electric_scalar_potential_V,_[V]
        domains:
        - conducting_domain, source_domain
        - non_conducting_domain
        - stranded_source_domain
        smoothing: 1
        hidden: false
        default: false

      Jheat:
        name: Joule_heat
        safeName: Joule_heat,_[W_m^-3]
        units: '\frac{W}{m^3}'
        term:
        - '0.5*Norm[sigma[#1]*(Dt[{a}]+{e})*(Dt[{a}]+{e})] '
        - '0'
        - '0.5*FillFactor[]/Fs[Sqrt[cross_section_area[]*4/3.14]*Sqrt[3.14*Freq*sigma[#1]/(2*nu_nu0[{d a}, #1])]]*SquNorm[1.0/cross_section_area[]/(Norm[{e0}])*({e})]/sigma[#2] '
        type: NODE_FIELD
        domains:
        - conducting_domain, source_domain
        - non_conducting_domain
        - stranded_source_domain
        smoothing: 1
        args:
            1:
                physics: physicsInductionHeating
                string: "<T>[{T}]"
            2:
                physics: physicsInductionHeating
                string: "<T>[{T}]"
        hidden: false
        default: true
        locked: true

      rSigma:
        name: rSigma
        term:
          - 'Abs[(Norm[sigma[#1] * Vector[1,1,1] - sigma[#2] * Vector[1,1,1]])/(Norm[sigma[#3] * Vector[1,1,1]])]'
        type: RESIDUAL
        valueRegister: 1
        domains:
          - conducting_domain, source_domain
        smoothing: 1
        args:
            1:
                physics: physicsInductionHeating
                string: "<T>[{T}[1]]"
            2:
                physics: physicsInductionHeating
                string: "<T>[{T}]"
            3:
                physics: physicsInductionHeating
                string: "<T>[{T}]"
        hidden: true
        default: true
      rSigmaMax:
        name: Electrical Conductivity
        term:
          - '#1'
        type: MAX_VAL
        valueRegister: 2
        domains:
          - conducting_domain, source_domain, stranded_source_domain
        smoothing: 1
        hidden: true
        default: true
      rMu:
        name: rMu
        term:
          - 'Abs[(Norm[ nu_nu0[{d a},#1] * Vector[1,1,1] - nu_nu0[{d a},#2] * Vector[1,1,1]])/( Norm[nu_nu0[{d a},#3] * Vector[1,1,1]])]'
        type: RESIDUAL
        valueRegister: 3
        domains:
          - conducting_domain, source_domain, stranded_source_domain
        smoothing: 1
        args:
            1:
                physics: physicsInductionHeating
                string: "<T>[{T}[1]]"
            2:
                physics: physicsInductionHeating
                string: "<T>[{T}]"
            3:
                physics: physicsInductionHeating
                string: "<T>[{T}]"
        hidden: true
        default: true
      rMuMax:
        name: Magnetic Permeability
        term:
          - '#3'
        type: MAX_VAL
        valueRegister: 4
        domains:
          - conducting_domain, source_domain, stranded_source_domain
        smoothing: 1
        hidden: true
        default: true

      aActivePower:
        name: Active Power
        safeName: Active_Power_[W]
        units: W
        term:
          - '0.5*Norm[sigma[#1]*(Dt[{a}]+{e})*(Dt[{a}]+{e})]  * symmFactor[]'
          - '0.5*FillFactor[]/Fs[Sqrt[cross_section_area[]*4/3.14]*Sqrt[3.14*Freq*sigma[#1]/(2*nu_nu0[{d a}, #1])]]*SquNorm[1.0/cross_section_area[]/(Norm[{e0}])*({e})]/sigma[#2] * symmFactor[] '
        type: INTEGRAL
        domains:
          - conducting_domain, source_domain
          - stranded_source_domain
        smoothing: 1
        args:
            1:
                physics: physicsInductionHeating
                string: "<T>[{T}]"
            2:
                physics: physicsInductionHeating
                string: "<T>[{T}]"
        hidden: false
        default: true
        locked: true
      bApparentPower:
        name: Apparent Power
        safeName: Apparent_Power_[VA]
        units: VA
        term:
          - 'Abs[{U}*Conj[{I_post}]]/(rmsCoeff[]^2)  * symmFactor[]'
          - 'Abs[({Ustr} + {Ustr_ind})*Conj[I_str[$Time]]]/(rmsCoeff[]^2)  * symmFactor[]'
        type: BOUNDARY_GLOBAL
        domains:
          - Sur_CURRENT_B_CH, Sur_VOLTAGE_B_CH, Sur_POWER_B_CH
          - SurStr_CURRENT_B_CH
        smoothing: 1
        hidden: false
        default: true
      ecVoltage:
        name: Voltage RMS
        safeName: Voltage.RMS_[V]
        units: V
        term:
          - ' Norm[{U}]/rmsCoeff[] * symmFactor[]'
          - ' Norm[{Ustr} + {Ustr_ind}]/rmsCoeff[] * symmFactor[]'
        type: BOUNDARY_GLOBAL
        domains:
          - Sur_CURRENT_B_CH, Sur_VOLTAGE_B_CH, Sur_POWER_B_CH
          - SurStr_CURRENT_B_CH
        smoothing: 1
        hidden: false
        default: true
        locked: true
      cMagneticEnergy:
        name: Magnetic Energy
        safeName: Magnetic_Energy_[J]
        units: J
        term:
          - '1/2 *nu_nu0[{d a},#1]*{d a}*Conj[{d a}] / (rmsCoeff[]^2)  * symmFactor[]'
        type: INTEGRAL
        domains:
          - non_conducting_domain, conducting_domain, source_domain, stranded_source_domain
        smoothing: 1
        args:
            1:
                physics: physicsInductionHeating
                string: "<T>[{T}]"
        hidden: false
        default: true

      eaVoltage:
        name: Voltage Real
        safeName: Voltage.Real_[V]
        units: V
        term:
          - ' Re[{U}] * symmFactor[]'
          - ' Re[{Ustr} + {Ustr_ind}] * symmFactor[]'
        type: BOUNDARY_GLOBAL
        domains:
          - Sur_CURRENT_B_CH, Sur_VOLTAGE_B_CH, Sur_POWER_B_CH
          - SurStr_CURRENT_B_CH
        smoothing: 1
        hidden: false
        default: true

      ebVoltage:
        name: Voltage Imaginary
        safeName: Voltage.Imaginary_[V]
        units: V
        term:
          - ' Im[{U}] * symmFactor[]'
          - ' Im[{Ustr} + {Ustr_ind}] * symmFactor[]'
        type: BOUNDARY_GLOBAL
        domains:
          - Sur_CURRENT_B_CH, Sur_VOLTAGE_B_CH, Sur_POWER_B_CH
          - SurStr_CURRENT_B_CH
        smoothing: 1
        hidden: false
        default: true

      dcSourceCurrent:
        name: Source Current.RMS
        safeName: Source_Current.RMS_[A]
        units: A
        term:
          - ' Norm[{I_post}]/rmsCoeff[]'
          - ' Norm[I_str[$Time]]/rmsCoeff[]'
        type: BOUNDARY_GLOBAL
        domains:
          - Sur_CURRENT_B_CH, Sur_VOLTAGE_B_CH, Sur_POWER_B_CH
          - SurStr_CURRENT_B_CH
        smoothing: 1
        hidden: false
        default: true
        locked: true
      daSourceCurrentReal:
        name: Source Current.Real
        safeName: Source_Current.Real_[A]
        units: A
        term:
          - ' Re[{I_post}] '
          - ' Re[I_str[$Time]] '
        type: BOUNDARY_GLOBAL
        domains:
          - Sur_CURRENT_B_CH, Sur_VOLTAGE_B_CH, Sur_POWER_B_CH
          - SurStr_CURRENT_B_CH
        smoothing: 1
        hidden: false
        default: true

      dbSourceCurrentImag:
        name: Source Current.Imaginary
        safeName: Source_Current.Imaginary_[A]
        units: A
        term:
          - ' Im[{I_post}] '
          - ' Im[I_str[$Time]] '
        type: BOUNDARY_GLOBAL
        domains:
          - Sur_CURRENT_B_CH, Sur_VOLTAGE_B_CH, Sur_POWER_B_CH
          - SurStr_CURRENT_B_CH
        smoothing: 1
        hidden: false
        default: true

      fResistance:
        name: Resistance
        safeName: Resistance_[Ohm]
        units: Ohm
        term:
          - ' Re[{U}*{I_post}^-1] * symmFactor[]'
          - ' Re[({Ustr} + {Ustr_ind})*I_str[$Time]^-1] * symmFactor[]'
        type: BOUNDARY_GLOBAL
        domains:
          - Sur_CURRENT_B_CH, Sur_VOLTAGE_B_CH, Sur_POWER_B_CH
          - SurStr_CURRENT_B_CH
        smoothing: 1
        hidden: false
        default: true

      fInductance:
        name: Inductance
        safeName: Inductance_[uH]
        units: uH
        term:
          - ' 1e6*Im[{U}*{I_post}^-1]/(2*3.14*Freq) * symmFactor[]'
          - ' 1e6*Im[({Ustr} + {Ustr_ind})*I_str[$Time]^-1]/(2*3.14*Freq) * symmFactor[]'
        type: BOUNDARY_GLOBAL
        domains:
          - Sur_CURRENT_B_CH, Sur_VOLTAGE_B_CH, Sur_POWER_B_CH
          - SurStr_CURRENT_B_CH
        smoothing: 1
        hidden: false
        default: true
        locked: true
      SurfCurrDens:
        name: Surface Current Density
        safeName: Surface_Current_Density_J,_[A_m^-1]
        description: "For Surface impedance domains only."
        symbol: J
        units: '\frac{A}{m}'
        term:
          - "-1/(Complex[1,1]* Sqrt[3.14*Freq/(nu_nu0[]*sigma[#1])])*Norm[(Dt[{a}]+{e})]  "
        type: BOUNDARY_NODE_FIELD
        components: 1
        domains:
          - Sur_SIBC_B
        smoothing: 1
        args:
            1:
                physics: physicsInductionHeating
                string: "<T>[{T}]"
        hidden: false
        default: true

      SurfCurrDens_re:
        name: Surface Current Density
        safeName: Surface_Current_Density_J_re,_[A_m^-1]
        description: "For Surface impedance domains only."
        symbol: J_{re}
        units: '\frac{A}{m}'
        term:
          - "-1/(Complex[1,1]* Sqrt[3.14*Freq/(nu_nu0[]*sigma[#1])])*Re[(Dt[{a}]+{e})]  "
        type: BOUNDARY_NODE_FIELD
        components: 3
        domains:
          - Sur_SIBC_B
        smoothing: 1
        args:
            1:
                physics: physicsInductionHeating
                string: "<T>[{T}]"
        hidden: false
        default: true

      SurfCurrDens_im:
        name: Surface Current Density
        safeName: Surface_Current_Density_J_im,_[A_m^-1]
        description: "For Surface impedance domains only."
        symbol: J_{im}
        units: '\frac{A}{m}'
        term:
          - "-1/(Complex[1,1]* Sqrt[3.14*Freq/(nu_nu0[]*sigma[#1])])*Im[(Dt[{a}]+{e})]  "
        type: BOUNDARY_NODE_FIELD
        components: 3
        domains:
          - Sur_SIBC_B
        smoothing: 1
        args:
            1:
                physics: physicsInductionHeating
                string: "<T>[{T}]"
        hidden: false
        default: true

      SurfJheat:
        name: Surface_Joule_heat
        safeName: Surface_Joule_heat,_[W_m^-2]
        description: "For Surface impedance domains only."
        units: '\frac{W}{m^2}'
        term:
        - '0.5 * Re[Complex[1,1]* Sqrt[3.14*Freq/(nu_nu0[]*sigma[#1])]] * SquNorm[1/(Complex[1,1]* Sqrt[3.14*Freq/(nu_nu0[]*sigma[#1])]) *  (Dt[{a}]+{e})] '
        type: BOUNDARY_NODE_FIELD
        domains:
        - Sur_SIBC_B
        smoothing: 1
        args:
            1:
                physics: physicsInductionHeating
                string: "<T>[{T}]"
        hidden: false
        default: true

      JheatSurfIntegral:
        name: Surface Joule Heat
        safeName: Surface_Joule_Heat_[W]
        description: "For Surface impedance domains only."
        units: W
        term:
          - '0.5 * Re[Complex[1,1]* Sqrt[3.14*Freq/(nu_nu0[]*sigma[#1])]] * SquNorm[1/(Complex[1,1]* Sqrt[3.14*Freq/(nu_nu0[]*sigma[#1])]) *  (Dt[{a}]+{e})]  * symmFactor[]'
        type: BOUNDARY_INTEGRAL
        domains:
          - Sur_SIBC_B
        smoothing: 1
        args:
            1:
                physics: physicsInductionHeating
                string: "<T>[{T}]"
        hidden: false
        default: true

      mu:
        name: Relative Permeability
        safeName: Relative_Permeability_mu
        symbol: '\mu'
        units: '-'
        term:
          - '1/(nu_nu0[{d a},#1] * mu0)'
        type: NODE_FIELD
        domains:
          - non_conducting_domain, conducting_domain, source_domain, sibc_domain, stranded_source_domain
        smoothing: 1
        args:
            1:
                physics: physicsInductionHeating
                string: "<T>[{T}]"
        hidden: false
        default: false

      Avecpot:
        name: Magnetic vector potential
        safeName: Magnetic_Vector_Potential_A,_[T/m]
        symbol: A
        units: '\frac{T}{m}'
        term:
          - Norm[ {a} ]
        type: NODE_FIELD
        domains:
          - non_conducting_domain, conducting_domain, source_domain, stranded_source_domain
        smoothing: 1
        hidden: false
        default: false

      Avecpot_re:
        name: Magnetic vector potential
        safeName: Magnetic_Vector_Potential_A_re,_[T/m]
        symbol: A_{re}
        units: '\frac{T}{m}'
        term:
          - Re[ {a} ]
        type: NODE_FIELD
        domains:
          - non_conducting_domain, conducting_domain, source_domain, stranded_source_domain
        smoothing: 1
        hidden: false
        default: false

      Avecpot_im:
        name: Magnetic vector potential
        safeName: Magnetic_Vector_Potential_A_im,_[T/m]
        symbol: A_{im}
        units: '\frac{T}{m}'
        term:
          - Im[ {a} ]
        type: NODE_FIELD
        domains:
          - non_conducting_domain, conducting_domain, source_domain, stranded_source_domain
        smoothing: 1
        hidden: false
        default: false

      TotalPower:
        name: Total Active Power
        safeName: Total_Active_Power_[W]
        units: W
        term:
          - '0.5*Norm[sigma[#1]*(Dt[{a}]+{e})*(Dt[{a}]+{e})]  * symmFactor[]'
          - '0.5*FillFactor[]/Fs[Sqrt[cross_section_area[]*4/3.14]*Sqrt[3.14*Freq*sigma[#1]/(2*nu_nu0[{d a}, #1])]]*SquNorm[1.0/cross_section_area[]/(Norm[{e0}])*({e})]/sigma[#2] * symmFactor[] '
        type: TOTAL_VALUE
        domains:
          - conducting_domain, source_domain
          - stranded_source_domain
        smoothing: 1
        args:
            1:
                physics: physicsInductionHeating
                string: "<T>[{T}]"
            2:
                physics: physicsInductionHeating
                string: "<T>[{T}]"
        hidden: false
        default: true
      ScalingPower:
        name: Scaling Active Power
        safeName: Scaling_Active_Power_[W]
        units: W
        term:
          - ' 0.5*Norm[sigma[#1]*(Dt[{a}]+{e})*(Dt[{a}]+{e})]  * symmFactor[] / target_power[]'
          - ' 0.5*FillFactor[]/Fs[Sqrt[cross_section_area[]*4/3.14]*Sqrt[3.14*Freq*sigma[#1]/(2*nu_nu0[{d a}, #1])]]*SquNorm[1.0/cross_section_area[]/(Norm[{e0}])*({e})]/sigma[#2] * symmFactor[] / target_power[] '
        type: SCALING_VALUE
        domains:
          - conducting_domain, source_domain
          - stranded_source_domain
        scalingConstraints:
          - I_3D
        smoothing: 1
        valueRegister: 11
        enableIfDefined: 'target_power'
        equationForScaling: '1/Sqrt[#11]'
        args:
            1:
                physics: physicsInductionHeating
                string: "<T>[{T}]"
            2:
                physics: physicsInductionHeating
                string: "<T>[{T}]"
        hidden: true
        default: true                
      TotalMagneticEnergy:
        name: Total Magnetic Energy
        safeName: Total_Magnetic_Energy_[J]
        units: J
        term:
          - '1/2 *nu_nu0[{d a},#1]*{d a}*Conj[{d a}] / (rmsCoeff[]^2)  * symmFactor[]'
        type: TOTAL_VALUE
        domains:
          - non_conducting_domain, conducting_domain, source_domain, stranded_source_domain
        smoothing: 1
        args:
            1:
                physics: physicsInductionHeating
                string: "<T>[{T}]"
        hidden: false
        default: true

      # xForce:
        # term:
          # - 'CompX[ nu_nu0[{d a},#1] * (SquDyadicProduct[{d a}] - SquNorm[{d a}] * TensorDiag[0.5, 0.5, 0.5])*Normal[] ]'
        # type: BOUNDARY_INTEGRAL
        # name: 'Magnetic_Force_X'
        # domains:
          # - Sur_INTERFACE_B
        # smoothing: 1
        # args:
            # 1:
                # physics: physicsInductionHeating
                # string: "<T>[{T}]"

      # yForce:
        # term:
          # - 'CompY[ nu_nu0[{d a},#1] * (SquDyadicProduct[{d a}] - SquNorm[{d a}] * TensorDiag[0.5, 0.5, 0.5])*Normal[] ]'
        # type: BOUNDARY_INTEGRAL
        # name: 'Magnetic_Force_Y'
        # domains:
          # - Sur_INTERFACE_B
        # smoothing: 1
        # args:
            # 1:
                # physics: physicsInductionHeating
                # string: "<T>[{T}]"

      # zForce:
        # term:
          # - 'CompZ[ nu_nu0[{d a},#1] * (SquDyadicProduct[{d a}] - SquNorm[{d a}] * TensorDiag[0.5, 0.5, 0.5])*Normal[] ]'
        # type: BOUNDARY_INTEGRAL
        # name: 'Magnetic_Force_Z'
        # domains:
          # - Sur_INTERFACE_B
        # smoothing: 1
        # args:
            # 1:
                # physics: physicsInductionHeating
                # string: "<T>[{T}]"

      xForceTM:
        term:
          # - 'CompX[ - nu_nu0[{d a},#1] * GeomCoeff[] /(rmsCoeff[]^2) * (SquDyadicProduct[{d a}] - SquNorm[{d a}] * TensorDiag[0.5, 0.5, 0.5])* {d ln} ]'
          - ' CompX[ - nu_nu0[{d a},#1] * GeomCoeff[] /(rmsCoeff[]^2) * (TensorV[CompX[{d a}]*Conj[{d a}], CompY[{d a}]*Conj[{d a}], CompZ[{d a}]*Conj[{d a}]] - {d a}*Conj[{d a}] * TensorDiag[0.5, 0.5, 0.5]) *{d ln} ]'
        type: INTEGRAL
        name: 'Magnetic Force X'
        safeName: 'Magnetic_Force_X_[N]'
        domains:
          - non_conducting_domain
        smoothing: 1
        args:
            1:
                physics: physicsInductionHeating
                string: "<T>[{T}]"
        hidden: false
        default: false

      yForceTM:
        term:
          # - 'CompY[ - nu_nu0[{d a},#1] * GeomCoeff[] /(rmsCoeff[]^2) * (SquDyadicProduct[{d a}] - SquNorm[{d a}] * TensorDiag[0.5, 0.5, 0.5]) *{d ln} ]'
          - ' CompY[ - nu_nu0[{d a},#1] * GeomCoeff[] /(rmsCoeff[]^2) * (TensorV[CompX[{d a}]*Conj[{d a}], CompY[{d a}]*Conj[{d a}], CompZ[{d a}]*Conj[{d a}]] - {d a}*Conj[{d a}] * TensorDiag[0.5, 0.5, 0.5]) *{d ln} ]'
        type: INTEGRAL
        name: 'Magnetic Force Y'
        safeName: 'Magnetic_Force_Y_[N]'
        domains:
          - non_conducting_domain
        smoothing: 1
        args:
            1:
                physics: physicsInductionHeating
                string: "<T>[{T}]"
        hidden: false
        default: false

      zForceTM:
        term:
          # - 'CompZ[ - nu_nu0[{d a},#1] * GeomCoeff[] /(rmsCoeff[]^2) * (SquDyadicProduct[{d a}] - SquNorm[{d a}] * TensorDiag[0.5, 0.5, 0.5]) *{d ln} ]'
          - ' CompZ[ - nu_nu0[{d a},#1] * GeomCoeff[] /(rmsCoeff[]^2) * (TensorV[CompX[{d a}]*Conj[{d a}], CompY[{d a}]*Conj[{d a}], CompZ[{d a}]*Conj[{d a}]] - {d a}*Conj[{d a}] * TensorDiag[0.5, 0.5, 0.5]) *{d ln} ]'
        type: INTEGRAL
        name: 'Magnetic Force Z'
        safeName: 'Magnetic Force_Z_[N]'
        domains:
          - non_conducting_domain
        smoothing: 1
        args:
            1:
                physics: physicsInductionHeating
                string: "<T>[{T}]"
        hidden: false
        default: false

      LorentzForce:
        term:
          - "(1/rmsCoeff[])^2*Re[{d a}/\\Conj[ sigma[#1]*(Dt[{a}]+{e}) ]]"
          - '0'
        type: NODE_FIELD
        components: 3
        name: Lorentz Force Density
        safeName: Lorentz_Force_Density_f,N/m3
        domains:
          - conducting_domain, source_domain
          - non_conducting_domain
        smoothing: 1
        args:
            1:
                physics: physicsInductionHeating
                string: "<T>[{T}]"
        hidden: false
        default: false

      fLorentzForceX:
        term:
          - "CompX[(1/rmsCoeff[])^2*Re[{d a}/\\Conj[ sigma[#1]*(Dt[{a}]+{e}) ]]]"
        type: INTEGRAL
        name: Integral Lorentz Force X
        safeName: Integral_Lorentz_Force_X_[N]
        domains:
          - conducting_domain, source_domain
        smoothing: 1
        args:
            1:
                physics: physicsInductionHeating
                string: "<T>[{T}]"
        hidden: false
        default: false

      fLorentzForceY:
        term:
          - "CompY[(1/rmsCoeff[])^2*Re[{d a}/\\Conj[ sigma[#1]*(Dt[{a}]+{e}) ]]]"
        type: INTEGRAL
        name: Integral Lorentz Force Y
        safeName: Integral_Lorentz_Force_Y_[N]
        domains:
          - conducting_domain, source_domain
        smoothing: 1
        args:
            1:
                physics: physicsInductionHeating
                string: "<T>[{T}]"
        hidden: false
        default: false

      fLorentzForceZ:
        term:
          - "CompZ[(1/rmsCoeff[])^2*Re[{d a}/\\Conj[ sigma[#1]*(Dt[{a}]+{e}) ]]]"
        type: INTEGRAL
        name: Integral Lorentz Force Z
        safeName: Integral_Lorentz_Force_Z_[N]
        domains:
          - conducting_domain, source_domain
        smoothing: 1
        args:
            1:
                physics: physicsInductionHeating
                string: "<T>[{T}]"
        hidden: false
        default: false
