ElectrostaticContactCondition

Interface condition that describes the current continuity and contact conductance across a boundary formed between two dissimilar materials (resulting in a potential discontinuity). Conductivity on each side of the boundary is defined via the material properties system.

Description

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

and

where

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

  • is the electrical contact conductance, and

  • is the electrostatic potential of the material at the interface.

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 64, 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 0.35, from (Cincotti et al., 2007)).

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

warningwarning:Order of variables matters!

Please note that variable must always refer to the variable of higher potential, while the neighbor_var must always refer to the variable of lower potential in your model. Knowledge of your boundary conditions (where potential is applied or grounded) and electrical conductivities on either side of the boundary is vital to making the right choice! Please refer to the electromagnetics module test examples as well as (Cincotti et al., 2007) for guidance and usage.

Example Input File Syntax

[electrostatic_contact]
  type = ElectrostaticContactCondition
  variable = potential_stainless_steel
  neighbor_var = potential_graphite
  boundary = ssg_interface
  primary_conductivity = electrical_conductivity
  secondary_conductivity = electrical_conductivity
  mean_hardness = mean_hardness
  mechanical_pressure = 8.52842e10 # resulting contact conductance should be ~1.47e5 as described in Cincotti et al (https://doi.org/10.1002/aic.11102)
[]
(../moose/modules/electromagnetics/test/tests/interfacekernels/electrostatic_contact/contact_conductance_calculated.i)

Input Parameters

  • neighbor_varThe variable on the other side of the interface.

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

    Controllable:No

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

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

    C++ Type:NonlinearVariableName

    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

  • mean_hardnessmean_hardnessGeometric mean of the hardness of each contacting material.

    Default:mean_hardness

    C++ Type:MaterialPropertyName

    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

    Controllable:No

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

  • primary_conductivityelectrical_conductivityConductivity on the primary block.

    Default:electrical_conductivity

    C++ Type:MaterialPropertyName

    Controllable:No

    Description:Conductivity on the primary block.

  • 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

    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.

  • secondary_conductivityelectrical_conductivityConductivity on the secondary block.

    Default:electrical_conductivity

    C++ Type:MaterialPropertyName

    Controllable:No

    Description:Conductivity on the secondary block.

  • user_electrical_contact_conductanceUser-supplied electrical contact conductance coefficient.

    C++ Type:double

    Controllable:No

    Description:User-supplied electrical 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

Tagging 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.

  • 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>

    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').

  • 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

  • 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>

    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').

  • 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

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]