ThermalContactCondition

Interface condition that describes the thermal contact resistance across a boundary formed between two dissimilar materials (resulting in a temperature discontinuity) under the influence of an electrostatic potential, as described in Cincotti, et al (DOI: 10.1002/aic.11102). Thermal conductivity on each side of the boundary is defined via the material properties system.

Description

This interface kernel models the conductivity of heat flux across a specified boundary between two dissimilar materials, as described by (Cincotti et al., 2007). It accounts for the influence of both temperature and electrostatic potential differences across the interface, with appropriate thermal and electrical contact conductances being provided by the user as a constant scalar number or via a combination of material properties and constants for calculation. The condition being applied is:

where

  • is the thermal conductivity of each material along the interface,

  • is the thermal contact conductance,

  • is the electrical contact conductance,

  • is the temperature of the material at the interface,

  • is the electrostatic potential of the material at the interface, and

  • is the splitting factor of the Joule heat source arising from electrical contact resistance (default is 0.5). This parameter sets the fraction of heat flux associated with Joule heating that enters the primary side of the boundary, with the rest entering the secondary side.

Thermal Contact Conductance

The temperature- and mechanical-pressure-dependent thermal contact conductance, given by (Madhusudana, 1996), is calculated using:

where

  • is an experimentally-derived proportional fit parameter (set to be , from (Cincotti et al., 2007)),

  • is the harmonic mean of the temperature-dependent thermal conductivities on either side of the boundary,

  • () is the uniform mechanical pressure applied at the contact surface area (S) between the two materials,

  • is the harmonic mean of the hardness values of each material, and

  • is an experimentally-derived power fit parameter (set to be , from (Cincotti et al., 2007)).

Electrical Contact Conductance

The temperature- and mechanical-pressure-dependent electrical contact conductance, given by (Babu et al., 2001), is calculated using:

where

  • is an experimentally-derived proportional fit parameter (set to be , from (Cincotti et al., 2007)),

  • is the harmonic mean of the temperature-dependent electrical conductivities on either side of the boundary,

  • () is the uniform mechanical pressure applied at the contact surface area (S) between the two materials,

  • is the harmonic mean of the hardness values of each material, and

  • is an experimentally-derived power fit parameter (set to be , from (Cincotti et al., 2007)).

Geometric Mean

For reference, the harmonic mean calculation for two values, and , is given by:

Example Input File Syntax

Calculated Conductance

[InterfaceKernels<<<{"href": "../../syntax/InterfaceKernels/index.html"}>>>]
  [thermal_contact_conductance_calculated]
    type = ThermalContactCondition<<<{"description": "Interface condition that describes the thermal contact resistance across a boundary formed between two dissimilar materials (resulting in a temperature discontinuity) under the influence of an electrostatic potential, as described in Cincotti, et al (DOI: 10.1002/aic.11102). Thermal conductivity on each side of the boundary is defined via the material properties system.", "href": "ThermalContactCondition.html"}>>>
    variable<<<{"description": "The name of the variable that this residual object operates on"}>>> = temperature_stainless_steel
    neighbor_var<<<{"description": "The variable on the other side of the interface."}>>> = temperature_graphite
    primary_potential<<<{"description": "Electrostatic potential on the primary block."}>>> = potential_stainless_steel
    secondary_potential<<<{"description": "Electrostatic potential on the secondary block."}>>> = potential_graphite
    primary_thermal_conductivity<<<{"description": "Thermal conductivity on the primary block."}>>> = thermal_conductivity
    secondary_thermal_conductivity<<<{"description": "Thermal conductivity on the secondary block."}>>> = thermal_conductivity
    primary_electrical_conductivity<<<{"description": "Electrical conductivity on the primary block."}>>> = electrical_conductivity
    secondary_electrical_conductivity<<<{"description": "Electrical conductivity on the secondary block."}>>> = electrical_conductivity
    mean_hardness<<<{"description": "Geometric mean of the hardness of each contacting material."}>>> = graphite_stainless_mean_hardness
    mechanical_pressure<<<{"description": "Mechanical pressure uniformly applied at the contact surface area (Pressure = Force / Surface Area)."}>>> = 8.52842e10 # resulting in electrical contact conductance = ~1.4715e5, thermal contact conductance = ~3.44689e7
    boundary<<<{"description": "The list of boundaries (ids or names) from the mesh where this object applies"}>>> = ssg_interface
  []
[]
(test/tests/interfacekernels/thermal_conductance/thermal_interface.i)

Supplied Conductance

[InterfaceKernels<<<{"href": "../../syntax/InterfaceKernels/index.html"}>>>]
  [thermal_contact_conductance]
    type = ThermalContactCondition<<<{"description": "Interface condition that describes the thermal contact resistance across a boundary formed between two dissimilar materials (resulting in a temperature discontinuity) under the influence of an electrostatic potential, as described in Cincotti, et al (DOI: 10.1002/aic.11102). Thermal conductivity on each side of the boundary is defined via the material properties system.", "href": "ThermalContactCondition.html"}>>>
    variable<<<{"description": "The name of the variable that this residual object operates on"}>>> = temperature_stainless_steel
    neighbor_var<<<{"description": "The variable on the other side of the interface."}>>> = temperature_graphite
    primary_potential<<<{"description": "Electrostatic potential on the primary block."}>>> = potential_stainless_steel
    secondary_potential<<<{"description": "Electrostatic potential on the secondary block."}>>> = potential_graphite
    primary_thermal_conductivity<<<{"description": "Thermal conductivity on the primary block."}>>> = thermal_conductivity
    secondary_thermal_conductivity<<<{"description": "Thermal conductivity on the secondary block."}>>> = thermal_conductivity
    primary_electrical_conductivity<<<{"description": "Electrical conductivity on the primary block."}>>> = electrical_conductivity
    secondary_electrical_conductivity<<<{"description": "Electrical conductivity on the secondary block."}>>> = electrical_conductivity
    user_electrical_contact_conductance<<<{"description": "User-provided electrical contact conductance coefficient."}>>> = 2.5e5 # as described in Cincotti et al (DOI: 10.1002/aic.11102)
    user_thermal_contact_conductance<<<{"description": "User-provided thermal contact conductance coefficient."}>>> = 7 # also from Cincotti et al
    boundary<<<{"description": "The list of boundaries (ids or names) from the mesh where this object applies"}>>> = ssg_interface
  []
[]
(test/tests/interfacekernels/thermal_conductance/thermal_interface.i)

Input Parameters

  • neighbor_varThe variable on the other side of the interface.

    C++ Type:std::vector<VariableName>

    Unit:(no unit assumed)

    Controllable:No

    Description:The variable on the other side of the interface.

  • primary_potentialElectrostatic potential on the primary block.

    C++ Type:std::vector<VariableName>

    Unit:(no unit assumed)

    Controllable:No

    Description:Electrostatic potential on the primary block.

  • secondary_potentialElectrostatic potential on the secondary block.

    C++ Type:std::vector<VariableName>

    Unit:(no unit assumed)

    Controllable:No

    Description:Electrostatic potential on the secondary block.

  • variableThe name of the variable that this residual object operates on

    C++ Type:NonlinearVariableName

    Unit:(no unit assumed)

    Controllable:No

    Description:The name of the variable that this residual object operates on

Required Parameters

  • boundaryThe list of boundaries (ids or names) from the mesh where this object applies

    C++ Type:std::vector<BoundaryName>

    Controllable:No

    Description:The list of boundaries (ids or names) from the mesh where this object applies

  • matrix_onlyFalseWhether this object is only doing assembly to matrices (no vectors)

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Whether this object is only doing assembly to matrices (no vectors)

  • mean_hardnessmean_hardnessGeometric mean of the hardness of each contacting material.

    Default:mean_hardness

    C++ Type:MaterialPropertyName

    Unit:(no unit assumed)

    Controllable:No

    Description:Geometric mean of the hardness of each contacting material.

  • mechanical_pressure0Mechanical pressure uniformly applied at the contact surface area (Pressure = Force / Surface Area).

    Default:0

    C++ Type:FunctionName

    Unit:(no unit assumed)

    Controllable:No

    Description:Mechanical pressure uniformly applied at the contact surface area (Pressure = Force / Surface Area).

  • primary_electrical_conductivityelectrical_conductivityElectrical conductivity on the primary block.

    Default:electrical_conductivity

    C++ Type:MaterialPropertyName

    Unit:(no unit assumed)

    Controllable:No

    Description:Electrical conductivity on the primary block.

  • primary_thermal_conductivitythermal_conductivityThermal conductivity on the primary block.

    Default:thermal_conductivity

    C++ Type:MaterialPropertyName

    Unit:(no unit assumed)

    Controllable:No

    Description:Thermal conductivity on the primary block.

  • secondary_electrical_conductivityelectrical_conductivityElectrical conductivity on the secondary block.

    Default:electrical_conductivity

    C++ Type:MaterialPropertyName

    Unit:(no unit assumed)

    Controllable:No

    Description:Electrical conductivity on the secondary block.

  • secondary_thermal_conductivitythermal_conductivityThermal conductivity on the secondary block.

    Default:thermal_conductivity

    C++ Type:MaterialPropertyName

    Unit:(no unit assumed)

    Controllable:No

    Description:Thermal conductivity on the secondary block.

  • splitting_factor0.5Splitting factor of the Joule heating source.

    Default:0.5

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Splitting factor of the Joule heating source.

  • user_electrical_contact_conductance0User-provided electrical contact conductance coefficient.

    Default:0

    C++ Type:FunctionName

    Unit:(no unit assumed)

    Controllable:No

    Description:User-provided electrical contact conductance coefficient.

  • user_thermal_contact_conductance0User-provided thermal contact conductance coefficient.

    Default:0

    C++ Type:FunctionName

    Unit:(no unit assumed)

    Controllable:No

    Description:User-provided thermal contact conductance coefficient.

Optional Parameters

  • absolute_value_vector_tagsThe tags for the vectors this residual object should fill with the absolute value of the residual contribution

    C++ Type:std::vector<TagName>

    Controllable:No

    Description:The tags for the vectors this residual object should fill with the absolute value of the residual contribution

  • extra_matrix_tagsThe extra tags for the matrices this Kernel should fill

    C++ Type:std::vector<TagName>

    Controllable:No

    Description:The extra tags for the matrices this Kernel should fill

  • extra_vector_tagsThe extra tags for the vectors this Kernel should fill

    C++ Type:std::vector<TagName>

    Controllable:No

    Description:The extra tags for the vectors this Kernel should fill

  • matrix_tagssystemThe tag for the matrices this Kernel should fill

    Default:system

    C++ Type:MultiMooseEnum

    Options:nontime, system

    Controllable:No

    Description:The tag for the matrices this Kernel should fill

  • vector_tagsnontimeThe tag for the vectors this Kernel should fill

    Default:nontime

    C++ Type:MultiMooseEnum

    Options:nontime, time

    Controllable:No

    Description:The tag for the vectors this Kernel should fill

Contribution To Tagged Field Data Parameters

  • control_tagsAdds user-defined labels for accessing object parameters via control logic.

    C++ Type:std::vector<std::string>

    Controllable:No

    Description:Adds user-defined labels for accessing object parameters via control logic.

  • enableTrueSet the enabled status of the MooseObject.

    Default:True

    C++ Type:bool

    Controllable:Yes

    Description:Set the enabled status of the MooseObject.

  • implicitTrueDetermines whether this object is calculated using an implicit or explicit form

    Default:True

    C++ Type:bool

    Controllable:No

    Description:Determines whether this object is calculated using an implicit or explicit form

  • seed0The seed for the master random number generator

    Default:0

    C++ Type:unsigned int

    Controllable:No

    Description:The seed for the master random number generator

  • use_displaced_meshFalseWhether or not this object should use the displaced mesh for computation. Note that in the case this is true but no displacements are provided in the Mesh block the undisplaced mesh will still be used.

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Whether or not this object should use the displaced mesh for computation. Note that in the case this is true but no displacements are provided in the Mesh block the undisplaced mesh will still be used.

Advanced Parameters

  • diag_save_inThe name of auxiliary variables to save this Kernel's diagonal Jacobian contributions to. Everything about that variable must match everything about this variable (the type, what blocks it's on, etc.)

    C++ Type:std::vector<AuxVariableName>

    Unit:(no unit assumed)

    Controllable:No

    Description:The name of auxiliary variables to save this Kernel's diagonal Jacobian contributions to. Everything about that variable must match everything about this variable (the type, what blocks it's on, etc.)

  • diag_save_in_var_sideThis parameter must exist if diag_save_in variables are specified and must have the same length as diag_save_in. This vector specifies whether the corresponding aux_var should save-in jacobian contributions from the primary ('p') or secondary side ('s').

    C++ Type:MultiMooseEnum

    Options:m, s

    Controllable:No

    Description:This parameter must exist if diag_save_in variables are specified and must have the same length as diag_save_in. This vector specifies whether the corresponding aux_var should save-in jacobian contributions from the primary ('p') or secondary side ('s').

  • save_inThe name of auxiliary variables to save this Kernel's residual contributions to. Everything about that variable must match everything about this variable (the type, what blocks it's on, etc.)

    C++ Type:std::vector<AuxVariableName>

    Unit:(no unit assumed)

    Controllable:No

    Description:The name of auxiliary variables to save this Kernel's residual contributions to. Everything about that variable must match everything about this variable (the type, what blocks it's on, etc.)

  • save_in_var_sideThis parameter must exist if save_in variables are specified and must have the same length as save_in. This vector specifies whether the corresponding aux_var should save-in residual contributions from the primary ('p') or secondary side ('s').

    C++ Type:MultiMooseEnum

    Options:m, s

    Controllable:No

    Description:This parameter must exist if save_in variables are specified and must have the same length as save_in. This vector specifies whether the corresponding aux_var should save-in residual contributions from the primary ('p') or secondary side ('s').

Residual And Jacobian Debug Output Parameters

  • prop_getter_suffixAn optional suffix parameter that can be appended to any attempt to retrieve/get material properties. The suffix will be prepended with a '_' character.

    C++ Type:MaterialPropertyName

    Unit:(no unit assumed)

    Controllable:No

    Description:An optional suffix parameter that can be appended to any attempt to retrieve/get material properties. The suffix will be prepended with a '_' character.

  • use_interpolated_stateFalseFor the old and older state use projected material properties interpolated at the quadrature points. To set up projection use the ProjectedStatefulMaterialStorageAction.

    Default:False

    C++ Type:bool

    Controllable:No

    Description:For the old and older state use projected material properties interpolated at the quadrature points. To set up projection use the ProjectedStatefulMaterialStorageAction.

Material Property Retrieval Parameters

Input Files

References

  1. S. S. Babu, M. L. Santella, Z. Feng, B. W. Riemer, and J. W. Cohron. Empirical model of effects of pressure and temperature on electrical contact resistance of metals. Sci Technol Weld Joining, 6(3):126–132, 2001.[BibTeX]
  2. A. Cincotti, A. M. Locci, R. OrrĂ¹, and G. Cao. Modeling of SPS apparatus: temperature, current and strain distribution with no powders. AIChE Journal, 53(3):703–719, 2007. doi:10.1002/aic.11102.[BibTeX]
  3. Chakravarti V. Madhusudana. Thermal Contact Conductance. Springer-Verlag, 1996.[BibTeX]