GapConductanceMortar

Returns the gap conductance for mortar-based thermal contact. It uses the heat flux and the temperature gradient to perform a weighted integration and return a nodal value

Description

The GapConductanceMortar AuxKernel is used to calculate the gap conductance from LWR problems solved with a mortar formulation. The value of gap conductance is computed from the heat flux (i.e. thermal contact Lagrange multiplier) and the temperature difference between the contacting primary and secondary surface. The overall gap conductance value captures contributions from radiation, contact, and gap conductivity ThermalContactLWRMortarAction.

Example Input Syntax

[AuxKernels<<<{"href": "../../syntax/AuxKernels/index.html"}>>>]
  [gap_conductance]
    type = GapConductanceMortar<<<{"description": "Returns the gap conductance for mortar-based thermal contact. It uses the heat flux and the temperature gradient to perform a weighted integration and return a nodal value", "href": "GapConductanceMortar.html"}>>>
    primary_boundary<<<{"description": "The name of the primary boundary sideset."}>>> = 100
    secondary_boundary<<<{"description": "The name of the secondary boundary sideset."}>>> = 101
    primary_subdomain<<<{"description": "The name of the primary subdomain."}>>> = 'mechanical_primary_subdomain'
    secondary_subdomain<<<{"description": "The name of the secondary subdomain."}>>> = 'mechanical_secondary_subdomain'
    heat_flux<<<{"description": "The thermal Lagrange multiplier variable, which corresponds to the gap heat flux."}>>> = thermal_contact_thermal_lm
    temperature<<<{"description": "The temperature variable"}>>> = temperature
    variable<<<{"description": "The name of the variable that this object applies to"}>>> = gap_conductance
  []
[]
(test/tests/gap_heat_transfer_mortar_action/gap_heat_transfer_mortar_transient_action_gap_conductance.i)

Input Parameters

  • heat_fluxThe thermal Lagrange multiplier variable, which corresponds to the gap heat flux.

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

    Unit:(no unit assumed)

    Controllable:No

    Description:The thermal Lagrange multiplier variable, which corresponds to the gap heat flux.

  • primary_boundaryThe name of the primary boundary sideset.

    C++ Type:BoundaryName

    Controllable:No

    Description:The name of the primary boundary sideset.

  • primary_subdomainThe name of the primary subdomain.

    C++ Type:SubdomainName

    Controllable:No

    Description:The name of the primary subdomain.

  • secondary_boundaryThe name of the secondary boundary sideset.

    C++ Type:BoundaryName

    Controllable:No

    Description:The name of the secondary boundary sideset.

  • secondary_subdomainThe name of the secondary subdomain.

    C++ Type:SubdomainName

    Controllable:No

    Description:The name of the secondary subdomain.

  • temperatureThe temperature variable

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

    Unit:(no unit assumed)

    Controllable:No

    Description:The temperature variable

  • variableThe name of the variable that this object applies to

    C++ Type:AuxVariableName

    Unit:(no unit assumed)

    Controllable:No

    Description:The name of the variable that this object applies to

Required Parameters

  • check_boundary_restrictedTrueWhether to check for multiple element sides on the boundary in the case of a boundary restricted, element aux variable. Setting this to false will allow contribution to a single element's elemental value(s) from multiple boundary sides on the same element (example: when the restricted boundary exists on two or more sides of an element, such as at a corner of a mesh

    Default:True

    C++ Type:bool

    Controllable:No

    Description:Whether to check for multiple element sides on the boundary in the case of a boundary restricted, element aux variable. Setting this to false will allow contribution to a single element's elemental value(s) from multiple boundary sides on the same element (example: when the restricted boundary exists on two or more sides of an element, such as at a corner of a mesh

  • correct_edge_droppingFalseWhether to enable correct edge dropping treatment for mortar constraints. When disabled any Lagrange Multiplier degree of freedom on a secondary element without full primary contributions will be set (strongly) to 0.

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Whether to enable correct edge dropping treatment for mortar constraints. When disabled any Lagrange Multiplier degree of freedom on a secondary element without full primary contributions will be set (strongly) to 0.

  • debug_meshFalseWhether this constraint is going to enable mortar segment mesh debug information. An exodusfile will be generated if the user sets this flag to true

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Whether this constraint is going to enable mortar segment mesh debug information. An exodusfile will be generated if the user sets this flag to true

  • execute_onTIMESTEP_ENDThe list of flag(s) indicating when this object should be executed. For a description of each flag, see https://mooseframework.inl.gov/source/interfaces/SetupInterface.html.

    Default:TIMESTEP_END

    C++ Type:ExecFlagEnum

    Options:XFEM_MARK, NONE, INITIAL, LINEAR, NONLINEAR_CONVERGENCE, NONLINEAR, POSTCHECK, TIMESTEP_END, TIMESTEP_BEGIN, MULTIAPP_FIXED_POINT_END, MULTIAPP_FIXED_POINT_BEGIN, FINAL, CUSTOM, PRE_DISPLACE

    Controllable:No

    Description:The list of flag(s) indicating when this object should be executed. For a description of each flag, see https://mooseframework.inl.gov/source/interfaces/SetupInterface.html.

  • ghost_higher_d_neighborsFalseWhether we should ghost higher-dimensional neighbors. This is necessary when we are doing second order mortar with finite volume primal variables, because in order for the method to be second order we must use cell gradients, which couples in the neighbor cells.

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Whether we should ghost higher-dimensional neighbors. This is necessary when we are doing second order mortar with finite volume primal variables, because in order for the method to be second order we must use cell gradients, which couples in the neighbor cells.

  • ghost_point_neighborsTrueWhether we should ghost point neighbors of secondary face elements, and consequently also their mortar interface couples.

    Default:True

    C++ Type:bool

    Controllable:No

    Description:Whether we should ghost point neighbors of secondary face elements, and consequently also their mortar interface couples.

  • incrementalFalseWhether to accumulate mortar auxiliary kernel value

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Whether to accumulate mortar auxiliary kernel value

  • interpolate_normalsTrueWhether to interpolate the nodal normals (e.g. classic idea of evaluating field at quadrature points). If this is set to false, then non-interpolated nodal normals will be used, and then the _normals member should be indexed with _i instead of _qp

    Default:True

    C++ Type:bool

    Controllable:No

    Description:Whether to interpolate the nodal normals (e.g. classic idea of evaluating field at quadrature points). If this is set to false, then non-interpolated nodal normals will be used, and then the _normals member should be indexed with _i instead of _qp

  • minimum_projection_angle40Parameter to control which angle (in degrees) is admissible for the creation of mortar segments. If set to a value close to zero, very oblique projections are allowed, which can result in mortar segments solving physics not meaningfully, and overprojection of primary nodes onto the mortar segment mesh in extreme cases. This parameter is mostly intended for mortar mesh debugging purposes in two dimensions.

    Default:40

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Parameter to control which angle (in degrees) is admissible for the creation of mortar segments. If set to a value close to zero, very oblique projections are allowed, which can result in mortar segments solving physics not meaningfully, and overprojection of primary nodes onto the mortar segment mesh in extreme cases. This parameter is mostly intended for mortar mesh debugging purposes in two dimensions.

  • periodicFalseWhether this constraint is going to be used to enforce a periodic condition. This has the effect of changing the normals vector for projection from outward to inward facing

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Whether this constraint is going to be used to enforce a periodic condition. This has the effect of changing the normals vector for projection from outward to inward facing

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

  • 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_meshTrueWhether to use the displaced mesh to compute the auxiliary kernel value.

    Default:True

    C++ Type:bool

    Controllable:No

    Description:Whether to use the displaced mesh to compute the auxiliary kernel value.

Advanced 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

No citations exist within this document.