www.mooseframework.org
ContactMaster.h
Go to the documentation of this file.
1 /****************************************************************/
2 /* MOOSE - Multiphysics Object Oriented Simulation Environment */
3 /* */
4 /* All contents are licensed under LGPL V2.1 */
5 /* See LICENSE for full restrictions */
6 /****************************************************************/
7 #ifndef CONTACTMASTER_H
8 #define CONTACTMASTER_H
9 
10 // Moose Includes
11 #include "DiracKernel.h"
12 #include "PenetrationLocator.h"
13 
15 {
20 };
21 
23 {
30 };
31 
32 class ContactMaster : public DiracKernel
33 {
34 public:
35  ContactMaster(const InputParameters & parameters);
36 
37  virtual void jacobianSetup();
38  virtual void timestepSetup();
39 
40  virtual void addPoints();
41  void computeContactForce(PenetrationInfo * pinfo);
42  virtual Real computeQpResidual();
43  virtual Real computeQpJacobian();
44 
45  virtual void updateContactSet(bool beginning_of_step = false);
46 
47  static ContactFormulation contactFormulation(std::string name);
48  static ContactModel contactModel(std::string name);
49 
50 protected:
51  Real nodalArea(PenetrationInfo & pinfo);
52  Real getPenalty(PenetrationInfo & pinfo);
53 
54  const unsigned int _component;
57  const bool _normalize_penalty;
58  PenetrationLocator & _penetration_locator;
59 
60  const Real _penalty;
62  const Real _tension_release;
63  const Real _capture_tolerance;
65 
66  NumericVector<Number> & _residual_copy;
67 
68  std::map<Point, PenetrationInfo *> _point_to_info;
69 
70  const unsigned int _mesh_dimension;
71 
72  std::vector<unsigned int> _vars;
73 
74  MooseVariable * _nodal_area_var;
75  SystemBase & _aux_system;
76  const NumericVector<Number> * _aux_solution;
77 };
78 
79 ContactModel contactModel(const std::string & the_name);
80 ContactFormulation contactFormulation(const std::string & the_name);
81 
82 template <>
83 InputParameters validParams<ContactMaster>();
84 
85 #endif // CONTACTMASTER_H
MooseVariable * _nodal_area_var
Definition: ContactMaster.h:74
const Real _tension_release
Definition: ContactMaster.h:62
virtual void addPoints()
const NumericVector< Number > * _aux_solution
Definition: ContactMaster.h:76
ContactModel
Definition: ContactMaster.h:14
Real getPenalty(PenetrationInfo &pinfo)
SystemBase & _aux_system
Definition: ContactMaster.h:75
const Real _friction_coefficient
Definition: ContactMaster.h:61
ContactFormulation
Definition: ContactMaster.h:22
virtual void jacobianSetup()
virtual void timestepSetup()
const ContactFormulation _formulation
Definition: ContactMaster.h:56
void computeContactForce(PenetrationInfo *pinfo)
const unsigned int _mesh_dimension
Definition: ContactMaster.h:70
const unsigned int _component
Definition: ContactMaster.h:54
NumericVector< Number > & _residual_copy
Definition: ContactMaster.h:66
ContactMaster(const InputParameters &parameters)
Definition: ContactMaster.C:74
const Real _penalty
Definition: ContactMaster.h:60
virtual void updateContactSet(bool beginning_of_step=false)
bool _updateContactSet
Definition: ContactMaster.h:64
const Real _capture_tolerance
Definition: ContactMaster.h:63
std::map< Point, PenetrationInfo * > _point_to_info
Definition: ContactMaster.h:68
const bool _normalize_penalty
Definition: ContactMaster.h:57
PenetrationLocator & _penetration_locator
Definition: ContactMaster.h:58
InputParameters validParams< ContactMaster >()
Definition: ContactMaster.C:20
static ContactFormulation contactFormulation(std::string name)
virtual Real computeQpJacobian()
static ContactModel contactModel(std::string name)
virtual Real computeQpResidual()
const ContactModel _model
Definition: ContactMaster.h:55
std::vector< unsigned int > _vars
Definition: ContactMaster.h:72
Real nodalArea(PenetrationInfo &pinfo)