https://mooseframework.inl.gov
ModularGapConductanceConstraint.h
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 
10 #pragma once
11 
12 #include "ADMortarConstraint.h"
13 
14 class GapFluxModelBase;
15 
22 {
23 public:
25 
27 
28  virtual void initialSetup() override;
29 
30 protected:
34  virtual ADReal computeQpResidual(Moose::MortarType mortar_type) override;
35 
37  std::vector<UserObjectName> _gap_flux_model_names;
38 
40  std::vector<const GapFluxModelBase *> _gap_flux_models;
41 
43  const std::vector<std::string> _disp_name;
44  const unsigned int _n_disp;
45  std::vector<const ADVariableValue *> _disp_secondary;
46  std::vector<const ADVariableValue *> _disp_primary;
48 
49 private:
51 
52  virtual ADReal computeGapLength() const;
53 
57  void computeGapRadii(const ADReal & gap_length);
58 
60  enum class GapGeometry
61  {
62  AUTO,
63  PLATE,
64  CYLINDER,
65  SPHERE,
67 
68  virtual void setGapGeometryParameters(const InputParameters & params,
69  const Moose::CoordinateSystemType coord_sys,
70  unsigned int axisymmetric_radial_coord,
71  GapGeometry & gap_geometry_type);
72 
75 
78 
81 
83  Point & _p1;
84  Point & _p2;
86 
92 
93  const Real _max_gap;
94 
96 
98  const MooseVariable * const _disp_x_var;
100  const MooseVariable * const _disp_y_var;
102  const MooseVariable * const _disp_z_var;
103 
106 
107  friend class GapFluxModelBase;
108 };
std::vector< const ADVariableValue * > _disp_primary
const MooseVariable *const _disp_y_var
y-displacement variable
void deduceGeometryParameters()
Automatically set up axis/center for 2D cartesian problems with cylindrical/spherical gap geometry...
ADReal _r1
Radii for quadrature points.
virtual ADReal computeQpResidual(Moose::MortarType mortar_type) override
Computes the residual for the LM equation, lambda = (k/l)*(T^(1) - PT^(2)).
DualNumber< Real, DNDerivativeType, true > ADReal
Base class for gap flux models used by ModularGapConductanceConstraint.
ModularGapConductanceConstraint(const InputParameters &parameters)
std::vector< const ADVariableValue * > _disp_secondary
GapGeometry
Gap geometry (user input or internally overwritten)
const std::vector< std::string > _disp_name
Displacement variables.
void computeGapRadii(const ADReal &gap_length)
Computes radii as a function of point and geometry.
std::vector< const GapFluxModelBase * > _gap_flux_models
Gap flux models.
const MooseVariable *const _disp_x_var
x-displacement variable
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
std::vector< UserObjectName > _gap_flux_model_names
Gap flux model names.
CoordinateSystemType
virtual void setGapGeometryParameters(const InputParameters &params, const Moose::CoordinateSystemType coord_sys, unsigned int axisymmetric_radial_coord, GapGeometry &gap_geometry_type)
Point & _p1
Points for geometric definitions.
enum ModularGapConductanceConstraint::GapGeometry _gap_geometry_type
This Constraint implements thermal contact using a "gap conductance" model in which the flux is repre...
const InputParameters & parameters() const
const MooseVariable *const _disp_z_var
z-displacement variable
ADReal _surface_integration_factor
Factor to preserve energy balance (due to mismatch in primary/secondary differential surface sizes) ...
ADReal _normal_pressure
Cached contact pressure for use by UserObjects.
ADReal _gap_width
Gap width to pass into flux models.