https://mooseframework.inl.gov
Loading...
Searching...
No Matches
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
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}
DualNumber< Real, DNDerivativeType, true > ADReal
registerMooseObject("HeatTransferApp", GapFluxModelPressureDependentConduction)
Base class for gap flux models used by ModularGapConductanceConstraint.
static InputParameters validParams()
Gap flux model used to compute the conductance across a closed gap along which two solid materials ar...
const Real _scaling
Parameter used to scale the closed gap interface conductance value.
const ADVariableValue & _primary_T
Temperatures from the primary and secondary surfaces at the interface.
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.
GapFluxModelPressureDependentConduction(const InputParameters &parameters)
ADReal computeFlux() const override
Compute gap physics used cache information in GapFluxModelBase.
const ADVariableValue & _contact_pressure
Pressure (lagrange multiplier) variable.
void addRequiredCoupledVar(const std::string &name, const std::string &doc_string)
void addRequiredParam(const std::string &name, const std::string &doc_string)
void addParam(const std::string &name, const std::initializer_list< typename T::value_type > &value, const std::string &doc_string)
void addClassDescription(const std::string &doc_string)