https://mooseframework.inl.gov
Loading...
Searching...
No Matches
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
15
22{
23public:
25
27
28 virtual void initialSetup() override;
29
30protected:
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
49private:
51
52 virtual ADReal computeGapLength() const;
53
57 void computeGapRadii(const ADReal & gap_length);
58
60 enum class GapGeometry
61 {
62 AUTO,
63 PLATE,
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
103
106
107 friend class GapFluxModelBase;
108};
DualNumber< Real, DNDerivativeType, true > ADReal
Base class for gap flux models used by ModularGapConductanceConstraint.
This Constraint implements thermal contact using a "gap conductance" model in which the flux is repre...
const MooseVariable *const _disp_x_var
x-displacement variable
void computeGapRadii(const ADReal &gap_length)
Computes radii as a function of point and geometry.
const MooseVariable *const _disp_z_var
z-displacement variable
std::vector< const GapFluxModelBase * > _gap_flux_models
Gap flux models.
virtual ADReal computeQpResidual(Moose::MortarType mortar_type) override
Computes the residual for the LM equation, lambda = (k/l)*(T^(1) - PT^(2)).
ADReal _gap_width
Gap width to pass into flux models.
ADReal _surface_integration_factor
Factor to preserve energy balance (due to mismatch in primary/secondary differential surface sizes)
std::vector< const ADVariableValue * > _disp_secondary
Point & _p1
Points for geometric definitions.
std::vector< UserObjectName > _gap_flux_model_names
Gap flux model names.
std::vector< const ADVariableValue * > _disp_primary
ADReal _r1
Radii for quadrature points.
const MooseVariable *const _disp_y_var
y-displacement variable
virtual void setGapGeometryParameters(const InputParameters &params, const Moose::CoordinateSystemType coord_sys, unsigned int axisymmetric_radial_coord, GapGeometry &gap_geometry_type)
const std::vector< std::string > _disp_name
Displacement variables.
GapGeometry
Gap geometry (user input or internally overwritten)
enum ModularGapConductanceConstraint::GapGeometry _gap_geometry_type
ADReal _normal_pressure
Cached contact pressure for use by UserObjects.
void deduceGeometryParameters()
Automatically set up axis/center for 2D cartesian problems with cylindrical/spherical gap geometry.
const InputParameters & parameters() const
CoordinateSystemType