15#include "libmesh/string_to_enum.h"
22 MooseEnum orders(
"CONSTANT FIRST SECOND THIRD FOURTH",
"FIRST");
25 params.
addParam<BoundaryName>(
"boundary",
"The primary boundary");
26 params.
addParam<BoundaryName>(
"secondary",
"The secondary boundary");
28 params.
set<
bool>(
"use_displaced_mesh") =
true;
29 params.
addParam<Real>(
"tangential_tolerance",
30 "Tangential distance to extend edges of contact surfaces");
32 "normal_smoothing_distance",
33 "Distance from edge in parametric coordinates over which to smooth contact normal");
34 params.
addParam<std::string>(
"normal_smoothing_method",
35 "Method to use to smooth normals (edge_based|nodal_normal_based)");
37 "Dirac kernel to create a heat source on the primary contact surface in thermal contact.");
45 getPenetrationLocator(getParam<BoundaryName>(
"boundary"),
46 getParam<BoundaryName>(
"secondary"),
47 Utility::string_to_enum<Order>(getParam<
MooseEnum>(
"order")))),
48 _secondary_flux(_sys.getVector(
"secondary_flux"))
77 addPoint(pinfo->_elem, pinfo->_closest_point);
registerMooseObject("HeatTransferApp", GapHeatPointSourceMaster)
void addPoint(const Elem *elem, Point p, unsigned id=libMesh::invalid_uint, Real value=1.0)
static InputParameters validParams()
MooseVariableField< T > & _var
const OutputTools< T >::VariableTestValue & _test
GapHeatPointSourceMaster(const InputParameters ¶meters)
PenetrationLocator & _penetration_locator
NumericVector< Number > & _secondary_flux
virtual Real computeQpJacobian()
static InputParameters validParams()
virtual Real computeQpResidual()
std::map< Point, const Node * > point_to_node
const InputParameters & parameters() const
virtual const Node & nodeRef(const dof_id_type i) const
unsigned int number() const
void setNormalSmoothingMethod(std::string nsmString)
void setTangentialTolerance(Real tangential_tolerance)
void setNormalSmoothingDistance(Real normal_smoothing_distance)
std::map< dof_id_type, PenetrationInfo * > & _penetration_info
unsigned int number() const