www.mooseframework.org
ContactMaster.h
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://www.mooseframework.org
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 // Moose Includes
13 #include "DiracKernel.h"
14 #include "PenetrationLocator.h"
15 
16 // Forward Declarations
17 class ContactMaster;
18 enum class ContactModel;
19 enum class ContactFormulation;
20 
21 template <>
22 InputParameters validParams<ContactMaster>();
23 
24 class ContactMaster : public DiracKernel
25 {
26 public:
27  ContactMaster(const InputParameters & parameters);
28 
29  virtual void timestepSetup() override;
30 
31  virtual void addPoints() override;
32  void computeContactForce(PenetrationInfo * pinfo, bool update_contact_set);
33  virtual Real computeQpResidual() override;
34  virtual Real computeQpJacobian() override;
35 
36  virtual void updateContactStatefulData();
37 
38 protected:
39  Real nodalArea(PenetrationInfo & pinfo);
40  Real getPenalty(PenetrationInfo & pinfo);
41 
42  const unsigned int _component;
45  const bool _normalize_penalty;
46  PenetrationLocator & _penetration_locator;
47 
48  const Real _penalty;
50  const Real _tension_release;
51  const Real _capture_tolerance;
52 
53  NumericVector<Number> & _residual_copy;
54 
55  std::map<Point, PenetrationInfo *> _point_to_info;
56 
57  const unsigned int _mesh_dimension;
58 
59  std::vector<unsigned int> _vars;
60 
61  MooseVariable * _nodal_area_var;
62  SystemBase & _aux_system;
63  const NumericVector<Number> * _aux_solution;
64 };
ContactModel
ContactModel
Definition: ContactAction.h:16
ContactMaster::_component
const unsigned int _component
Definition: ContactMaster.h:42
ContactMaster::computeQpJacobian
virtual Real computeQpJacobian() override
Definition: ContactMaster.C:342
ContactMaster::_aux_system
SystemBase & _aux_system
Definition: ContactMaster.h:62
ContactMaster::_penetration_locator
PenetrationLocator & _penetration_locator
Definition: ContactMaster.h:46
ContactMaster
Definition: ContactMaster.h:24
ContactMaster::_aux_solution
const NumericVector< Number > * _aux_solution
Definition: ContactMaster.h:63
ContactMaster::_residual_copy
NumericVector< Number > & _residual_copy
Definition: ContactMaster.h:53
ContactMaster::_point_to_info
std::map< Point, PenetrationInfo * > _point_to_info
Definition: ContactMaster.h:55
ContactMaster::_formulation
const ContactFormulation _formulation
Definition: ContactMaster.h:44
ContactMaster::nodalArea
Real nodalArea(PenetrationInfo &pinfo)
Definition: ContactMaster.C:412
ContactMaster::_vars
std::vector< unsigned int > _vars
Definition: ContactMaster.h:59
ContactMaster::computeQpResidual
virtual Real computeQpResidual() override
Definition: ContactMaster.C:334
ContactMaster::_tension_release
const Real _tension_release
Definition: ContactMaster.h:50
ContactMaster::_capture_tolerance
const Real _capture_tolerance
Definition: ContactMaster.h:51
ContactMaster::addPoints
virtual void addPoints() override
Definition: ContactMaster.C:163
ContactMaster::_normalize_penalty
const bool _normalize_penalty
Definition: ContactMaster.h:45
ContactFormulation
ContactFormulation
Definition: ContactAction.h:23
validParams< ContactMaster >
InputParameters validParams< ContactMaster >()
Definition: ContactMaster.C:26
ContactMaster::_nodal_area_var
MooseVariable * _nodal_area_var
Definition: ContactMaster.h:61
ContactMaster::computeContactForce
void computeContactForce(PenetrationInfo *pinfo, bool update_contact_set)
Definition: ContactMaster.C:194
ContactMaster::getPenalty
Real getPenalty(PenetrationInfo &pinfo)
Definition: ContactMaster.C:430
ContactMaster::_mesh_dimension
const unsigned int _mesh_dimension
Definition: ContactMaster.h:57
ContactMaster::_friction_coefficient
const Real _friction_coefficient
Definition: ContactMaster.h:49
ContactMaster::_penalty
const Real _penalty
Definition: ContactMaster.h:48
ContactMaster::_model
const ContactModel _model
Definition: ContactMaster.h:43
ContactMaster::updateContactStatefulData
virtual void updateContactStatefulData()
Definition: ContactMaster.C:139
ContactMaster::timestepSetup
virtual void timestepSetup() override
Definition: ContactMaster.C:132
ContactMaster::ContactMaster
ContactMaster(const InputParameters &parameters)
Definition: ContactMaster.C:72