https://mooseframework.inl.gov
GapFluxModelPressureDependentConduction.C
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://mooseframework.inl.gov
3 //*
4 //* All rights reserved, see COPYRIGHT for full restrictions
5 //* https://github.com/idaholab/moose/blob/master/COPYRIGHT
6 //*
7 //* Licensed under LGPL 2.1, please see LICENSE for details
8 //* https://www.gnu.org/licenses/lgpl-2.1.html
9 
11 
13 
16 {
18 
19  params.addClassDescription("Heat flux model across a closed gap to calculate the conductance "
20  "between two solid materials");
21  params.addRequiredCoupledVar("temperature", "The name of the temperature variable");
22  params.addRequiredCoupledVar("contact_pressure", "The name of the contact pressure variable");
23 
24  params.addParam<Real>(
25  "scaling_coefficient",
26  1.0,
27  "The leading coefficient for the closed gap conductance value; used for tuning");
28  params.addRequiredParam<MaterialPropertyName>(
29  "primary_conductivity", "The thermal conductivity of the primary surface solid material");
30  params.addRequiredParam<MaterialPropertyName>(
31  "secondary_conductivity", "The thermal conductivity of the secondary surface solid material");
32  params.addRequiredParam<MaterialPropertyName>(
33  "primary_hardness", "The hardness value of the primary surface material");
34  params.addRequiredParam<MaterialPropertyName>("secondary_hardness",
35  "The hardness of the secondary surface material");
36 
37  return params;
38 }
39 
41  const InputParameters & parameters)
42  : GapFluxModelBase(parameters),
43  _primary_T(adCoupledNeighborValue("temperature")),
44  _secondary_T(adCoupledValue("temperature")),
45  _contact_pressure(adCoupledLowerValue("contact_pressure")),
46  _scaling(getParam<Real>("scaling_coefficient")),
47  _primary_conductivity(getNeighborADMaterialProperty<Real>("primary_conductivity")),
48  _secondary_conductivity(getADMaterialProperty<Real>("secondary_conductivity")),
49  _primary_hardness(getNeighborADMaterialProperty<Real>("primary_hardness")),
50  _secondary_hardness(getADMaterialProperty<Real>("secondary_hardness"))
51 {
52 }
53 
54 ADReal
56 {
57  // Check that the surfaces are in actual contact with the pressure:
58  if (_contact_pressure[_qp] <= 0.0)
59  return 0.0;
60 
61  // calculate the harmonic means of the two material properties
63  const ADReal k_harmonic = 2 * _primary_conductivity[_qp] * _secondary_conductivity[_qp] / k_sum;
64 
66  const ADReal h_harmonic = 2 * _primary_hardness[_qp] * _secondary_hardness[_qp] / h_sum;
67 
68  return _scaling * k_harmonic * (_primary_T[_qp] - _secondary_T[_qp]) * _contact_pressure[_qp] /
69  h_harmonic;
70 }
const ADMaterialProperty< Real > & _primary_hardness
Material hardness value of the two solid materials at the interface.
const ADMaterialProperty< Real > & _primary_conductivity
Thermal conductivity of the two solid materials at the closed gap interface.
void addParam(const std::string &name, const std::initializer_list< typename T::value_type > &value, const std::string &doc_string)
const ADVariableValue & _primary_T
Temperatures from the primary and secondary surfaces at the interface.
DualNumber< Real, DNDerivativeType, true > ADReal
void addRequiredParam(const std::string &name, const std::string &doc_string)
Gap flux model used to compute the conductance across a closed gap along which two solid materials ar...
Base class for gap flux models used by ModularGapConductanceConstraint.
ADReal computeFlux() const override
Compute gap physics used cache information in GapFluxModelBase.
GapFluxModelPressureDependentConduction(const InputParameters &parameters)
const Real _scaling
Parameter used to scale the closed gap interface conductance value.
void addRequiredCoupledVar(const std::string &name, const std::string &doc_string)
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
unsigned int _qp
void addClassDescription(const std::string &doc_string)
const ADVariableValue & _contact_pressure
Pressure (lagrange multiplier) variable.
registerMooseObject("HeatTransferApp", GapFluxModelPressureDependentConduction)
static InputParameters validParams()