doctype xml
SMTK_AttributeResource(Version="3")
  Categories
    Cat TEM3P-Eigen
    Cat TEM3P-Harmonic
    Cat TEM3P-Elastic
    Cat TEM3P-Linear-Thermal
    Cat TEM3P-Nonlinear-Thermal

  Definitions
    AttDef(Type="TEM3PBoundaryCondition" Version="0" BaseType="" Abstract="true" Unique="false")
      AssociationsDef(Name="TEM3PBCAssociations" Version="0"
        NumberOfRequiredValues="0" Extensible="true")
        MembershipMask face

    AttDef(Type="TEM3PMechanicalBC" BaseType="TEM3PBoundaryCondition" Abstract="true" Unique="true" Version="0")

    AttDef(Type="TEM3PStructuralNeumann" Label="Normal Loading (Neumann)"
      BaseType="TEM3PMechanicalBC" Version="0")
      ItemDefinitions
        Double(Name="NeumannValue" Label="Normal Loading" Version="0" Units="Pa")
          BriefDescription Fixed normal loading into the surface
          Categories #[Cat TEM3P-Elastic]
          DefaultValue 0.0
        // Placeholder item for eigenmode (user cannot change value)
        Void(Name="PlaceHolder" AdvanceLevel="99")
          Categories #[Cat TEM3P-Eigen]

    AttDef(Type="TEM3PStructuralDirichlet" Label="Displacement (Dirichlet)"
      BaseType="TEM3PMechanicalBC" Version="0")
      ItemDefinitions
        Double(Name="DirichletValue" Label="Displacement (Dirichlet)" Version="0" Units="m")
          BriefDescription Fixed displacement
          Categories #[Cat TEM3P-Elastic]
          DefaultValue 0.0
        // Placeholder item for eigenmode (user cannot change value)
        Void(Name="PlaceHolder" AdvanceLevel="99")
          Categories #[Cat TEM3P-Eigen]

    AttDef(Type="TEM3PStructuralMixed" Label="Mixed" BaseType="TEM3PMechanicalBC" Version="0")
      ItemDefinitions
        String(Name="MixedType" Label="Mixed Type" Version="0" NumberOfRequiredValues="3")
          BriefDescription Boundary condition type in x, y, z directions
          Categories #[Cat TEM3P-Eigen] #[Cat TEM3P-Elastic]
          ComponentLabels #[Label x] #[Label y] #[Label z]
          DiscreteInfo
            Value(Enum="Displacement (Dirichlet)") DIRICHLET
            Value(Enum="Normal Loading (Neumann)") NEUMANN
        Double(Name="MixedValue" Label="Mixed Value" Version="0" NumberOfRequiredValues="3")
          BriefDescription Value of each type in the corresponding direction
          Categories #[Cat TEM3P-Elastic]
          ComponentLabels #[Label x] #[Label y] #[Label z]
          DefaultValue 0,0,0

    AttDef(Type="TEM3PLFDetuning" Label="LF Detuning" BaseType="TEM3PMechanicalBC" Version="0")
      // Note uses NERSC Directory in ACE3P.sbt
      ItemDefinitions
        Int(Name="WhichMode" Label="Mode Number" Version="0")
          BriefDescription The mode number calculated from the omega3p results to be imported into tem3p
          Categories #[Cat TEM3P-Harmonic] #[Cat TEM3P-Elastic]
          DefaultValue 0
          RangeInfo #[Min(Inclusive="true") 0]
        Int(Name="Omega3PId" Label="Omega3P Id" Version="0")
          BriefDescription Sideset id of the interface surface with Omega3P
          Categories #[Cat TEM3P-Harmonic] #[Cat TEM3P-Elastic]
          RangeInfo #[Min(Inclusive="true") 0]

        String(Name="LFDetuningMethod" Label="Method" Version="0")
          BriefDescription Method to be used for field normalization
          Categories #[Cat TEM3P-Harmonic] #[Cat TEM3P-Elastic]
          ChildrenDefinitions
            Double(Name="TargetGradient" Label="Target Gradient" Units="V/m" Version="0")
              Categories #[Cat TEM3P-Harmonic] #[Cat TEM3P-Elastic]
              DefaultValue 0
            Double(Name="TargetVoltage" Label="Target Voltage" Units="V" Version="0")
              Categories #[Cat TEM3P-Harmonic] #[Cat TEM3P-Elastic]
              DefaultValue 0
            Double(Name="VoltageDirection" Label="Voltage Direction" Units="m"
              NumberOfRequiredValues="3" Version="0")
              BriefDescription Orthonormal Vector
              Categories #[Cat TEM3P-Harmonic] #[Cat TEM3P-Elastic]
              DefaultValue 0,0,1
            Double(Name="TargetPowerinput" Label="Target Power Input" Units="w" Version="0")
              Categories #[Cat TEM3P-Harmonic] #[Cat TEM3P-Elastic]
              DefaultValue 0
            Int(Name="SymmetryFactor" Label="Symmetry Factor")
              BriefDescription 0 - full cell, 1 - half cell, 2 - quarter cell
              Categories #[Cat TEM3P-Harmonic] #[Cat TEM3P-Elastic]
              DiscreteInfo(DefaultIndex=0)
                Value(Enum="0 = Full Cell") 0
                Value(Enum="1 = Half Cell") 1
                Value(Enum="2 = Quarter Cell") 2
            Double(Name="StartPoint" Label="Start Point" NumberOfRequiredValues="3" Units="m" Version="0")
              BriefDescription The coordinates of the start point of the path
              Categories #[Cat TEM3P-Harmonic] #[Cat TEM3P-Elastic]
              ComponentLabels #[Label x] #[Label y] #[Label z]
              DefaultValue 0,0,0
            Double(Name="EndPoint" Label="End Point" NumberOfRequiredValues="3" Units="m" Version="0")
              BriefDescription The coordinates of the end point of the path
              Categories #[Cat TEM3P-Harmonic] #[Cat TEM3P-Elastic]
              ComponentLabels #[Label x] #[Label y] #[Label z]
              DefaultValue 0,0,1

          // (LFDetuningMethod)
          DiscreteInfo
            Structure
              Value Gradient
              Items
                Item TargetGradient
                Item SymmetryFactor
                Item StartPoint
                Item EndPoint
            Structure
              Value Voltage
              Items
                Item TargetVoltage
                Item VoltageDirection
                Item SymmetryFactor
                Item StartPoint
                Item EndPoint
            Structure
              Value(Enum="Power Input") Powerinput
              Items
                Item TargetPowerinput


    // Harmonic BCs have different labels, so.....
    AttDef(Type="TEM3PHarmonicNeumann" Label="Normal Loading Amplitude (Neumann)"
      BaseType="TEM3PMechanicalBC" Version="0")
      ItemDefinitions
        Double(Name="NeumannValue" Label="Normal Loading Amplitude" Version="0" Units="Pa")
          BriefDescription Normal loading amplitude
          Categories #[Cat TEM3P-Harmonic]
          DefaultValue 0.0

    AttDef(Type="TEM3PHarmonicDirichlet" Label="Displacement Amplitude (Dirichlet)"
      BaseType="TEM3PMechanicalBC" Version="0")
      ItemDefinitions
        Double(Name="DirichletValue" Label="Displacement Amplitude" Version="0" Units="m")
          BriefDescription Fixed displacement amplitude
          Categories #[Cat TEM3P-Harmonic]
          DefaultValue 0.0

    AttDef(Type="TEM3PHarmonicMixed" Label="Mixed" BaseType="TEM3PMechanicalBC" Version="0")
      ItemDefinitions
        String(Name="MixedType" Label="Mixed Type" Version="0" NumberOfRequiredValues="3")
          BriefDescription Boundary condition type in x, y, z directions
          Categories #[Cat TEM3P-Harmonic]
          ComponentLabels #[Label x] #[Label y] #[Label z]
          DiscreteInfo
            Value(Enum="Displacement (Dirichlet)") DIRICHLET
            Value(Enum="Normal Loading (Neumann)") NEUMANN
        Double(Name="MixedValue" Label="Mixed Value Amplitude" Version="0" NumberOfRequiredValues="3")
          BriefDescription Value of each type in the corresponding direction
          Categories #[Cat TEM3P-Harmonic]
          ComponentLabels #[Label x] #[Label y] #[Label z]
          DefaultValue 0,0,0


    AttDef(Type="TEM3PThermalBC" BaseType="TEM3PBoundaryCondition" Abstract="true" Unique="true" Version="0")

    AttDef(Type="TEM3PThermalNeumann" Label="Heat Flux (Neumann)"
      BaseType="TEM3PThermalBC" Version="0")
      ItemDefinitions
        Double(Name="NeumannValue" Label="Heat Flux" Version="0" Units="W/m^2")
          BriefDescription Fixed heat flux into the surface (Neumann)
          Categories #[Cat TEM3P-Linear-Thermal] #[Cat TEM3P-Nonlinear-Thermal]
          DefaultValue 0.0

    AttDef(Type="TEM3PThermalDirichlet" Label="Temperature (Dirichlet)"
      BaseType="TEM3PThermalBC" Version="0")
      ItemDefinitions
        Double(Name="DirichletValue" Label="Temperature" Version="0" Units="K")
          BriefDescription Fixed temperature (Dirichlet)
          Categories #[Cat TEM3P-Linear-Thermal] #[Cat TEM3P-Nonlinear-Thermal]
          DefaultValue 0.0

    AttDef(Type="TEM3PThermalRobin" Label="Robin" BaseType="TEM3PThermalBC" Version="0")
      ItemDefinitions
        Double(Name="RobinConstantFactor" Label="Robin Constant Factor" Units="W/(m^2K)" Version="0")
          BriefDescription Convective coefficient
          Categories #[Cat TEM3P-Linear-Thermal] #[Cat TEM3P-Nonlinear-Thermal]
          DefaultValue 0.0
        Double(Name="RobinConstantValue" Label="Robin Constant Value" Units="W/(m^2)" Version="0")
          BriefDescription Product of convective coefficient and ambient temperature
          Categories #[Cat TEM3P-Linear-Thermal] #[Cat TEM3P-Nonlinear-Thermal]
          DefaultValue 0.0

    AttDef(Type="TEM3PThermalRFHeating" Label="RF Heating" BaseType="TEM3PThermalBC" Version="0")
      ItemDefinitions
        // Note uses NERSC Directory in ACE3P.sbt
        Int(Name="WhichMode" Label="Mode Number" Version="0")
            BriefDescription The mode number calculated from the omega3p or s3p data imported into tem3p
            Categories #[Cat TEM3P-Linear-Thermal] #[Cat TEM3P-Nonlinear-Thermal]
            DefaultValue 0
            RangeInfo #[Min(Inclusive="true") 0]

        String(Name="Method" Label="Method" Version="0")
          BriefDescription Method for specifying RF heating
          Categories #[Cat TEM3P-Linear-Thermal] #[Cat TEM3P-Nonlinear-Thermal]
          ChildrenDefinitions
            Double(Name="TargetPowerinput" Label="Target Power Input" Units="w" Version="0")
              BriefDescription Total power input to the system
              Categories #[Cat TEM3P-Linear-Thermal] #[Cat TEM3P-Nonlinear-Thermal]
              DefaultValue 0
            Double(Name="Sigma" Label="Electrical Conductivity (Sigma)" Units="S/m" Version="0")
              Categories #[Cat TEM3P-Linear-Thermal] #[Cat TEM3P-Nonlinear-Thermal]
              RangeInfo #[Min(Inclusive="true")] 0.0
            Double(Name="TargetGradient" Label="Target Gradient" Units="V/m" Version="0")
              BriefDescription Accelerating gradient
              Categories #[Cat TEM3P-Linear-Thermal] #[Cat TEM3P-Nonlinear-Thermal]
              DefaultValue 0.0
            Double(Name="DutyFactor" Label="Duty Factor" Version="0")
              BriefDescription Fraction of time during operation for average power calculation
              Categories #[Cat TEM3P-Linear-Thermal] #[Cat TEM3P-Nonlinear-Thermal]
              DefaultValue 0.0
              RangeInfo #[Min(inclusive="true") 0.0] #[Max(Inclusive="true") 1.0]
            Double(Name="StartPoint" Label="Start Point" NumberOfRequiredValues="3" Units="m" Version="0")
              BriefDescription The coordinates of the start point for gradient integration
              Categories #[Cat TEM3P-Linear-Thermal] #[Cat TEM3P-Nonlinear-Thermal]
              DefaultValue 0,0,0
            Double(Name="EndPoint" Label="End Point" NumberOfRequiredValues="3" Units="m" Version="0")
              BriefDescription The coordinates of the end point for gradient integration
              Categories #[Cat TEM3P-Linear-Thermal] #[Cat TEM3P-Nonlinear-Thermal]
              DefaultValue 0,0,1
            Double(Name="TargetPowerLoss" Label="Target Power Loss" Units="W" Version="0")
              BriefDescription Total power loss on metallic surface
              Categories #[Cat TEM3P-Linear-Thermal] #[Cat TEM3P-Nonlinear-Thermal]
              DefaultValue 0

          // (RFHeatingMethod)
          DiscreteInfo
            Structure
              Value(Enum="Power Input") Powerinput
              Items
                Item TargetPowerinput
            Structure
              Value(Enum="Target Gradient Scaling") Gradient
              Items
                Item Sigma
                Item TargetGradient
                Item DutyFactor
                Item StartPoint
                Item EndPoint
            Structure
              Value(Enum="Target Power Loss Scaling") PowerLoss
              Items
                Item TargetPowerLoss
                Item Sigma

        Int(Name="SymmetryFactor" Label="Symmetry Factor")
          BriefDescription 1 for full cell, 0 for half cell
          Categories #[Cat TEM3P-Linear-Thermal] #[Cat TEM3P-Nonlinear-Thermal]
          DiscreteInfo(DefaultIndex=0)
            Value(Enum="1 = Full Cell") 1
            Value(Enum="0 = Half Cell") 0
            Value(Enum="2 = Quarter Cell") 2

        String(Name="SurfaceResistance" Label="Surface Resistance")
          BriefDescription Nonlinear surface resistance
          Categories #[Cat TEM3P-Nonlinear-Thermal]
          ChildrenDefinitions
            File(Name="SurfaceResistanceFile" Label="Nonlinear Surface Resistance (file)"
              NumberOfRequiredValues="1" ShouldExist="true" Version="0")
              BriefDescription File that defines the nonlinear surface resistance
              Categories #[Cat TEM3P-Nonlinear-Thermal]
          DiscreteInfo(DefaultIndex="0")
            // The values are filenames
            Value(Enum="Not Used") None
            Value(Enum="Copper with RRR10") SRinnerCURRR10
            Value(Enum="Copper with RRR30") SRinnerCURRR30
            Value(Enum="Copper with RRR50") SRinnerCURRR50
            Value(Enum="Copper with RRR100") SRinnerCURRR100
            Value(Enum="NbTi") SRinnerNbTi
            Value(Enum="Aluminum") SRinnerAA
            Value(Enum="Nb") SRinnerNB
            Value(Enum="Stainless Steel") SRinnerSS
            Structure
              Value(Enum="Custom...") Custom
              Items
                Item SurfaceResistanceFile

        Group(Name="NonlinearConvectiveSurface" Label="Nonlinear Convective Surface"
          Optional="true" IsEnabledByDefault="false" Version="0")
          BriefDescription (Robin)
          ItemDefinitions
            File(Name="RobinFactor" Label="Robin Factor (file)" NumberOfRequiredValues="1"
              ShouldExist="true" Version="0")
              BriefDescription File that defines the nonlinear Robin factor, convective coefficient (W/(m^2K))
              Categories #[Cat TEM3P-Nonlinear-Thermal]
            File(Name="RobinValue" Label="Robin Value (file)" NumberOfRequiredValues="1"
              ShouldExist="true" Version="0")
              BriefDescription File that defines the nonlinear Robin value, product of convective coefficient and ambient temperature (W/m^2)
              Categories #[Cat TEM3P-Nonlinear-Thermal]

= '\n'
