www.mooseframework.org
SlaveConstraint.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 SlaveConstraint;
18 enum class ContactModel;
19 enum class ContactFormulation;
20 
21 template <>
22 InputParameters validParams<SlaveConstraint>();
23 
24 class SlaveConstraint : public DiracKernel
25 {
26 public:
27  SlaveConstraint(const InputParameters & parameters);
28 
29  virtual void addPoints();
30  virtual Real computeQpResidual();
31  virtual Real computeQpJacobian();
32 
33 protected:
34  Real nodalArea(PenetrationInfo & pinfo);
35 
36  const unsigned int _component;
39  const bool _normalize_penalty;
40  PenetrationLocator & _penetration_locator;
41 
42  const Real _penalty;
44 
45  NumericVector<Number> & _residual_copy;
46 
47  std::map<Point, PenetrationInfo *> _point_to_info;
48 
49  std::vector<unsigned int> _vars;
50 
51  const unsigned int _mesh_dimension;
52 
53  MooseVariable * _nodal_area_var;
54  SystemBase & _aux_system;
55  const NumericVector<Number> * _aux_solution;
56 };
ContactModel
ContactModel
Definition: ContactAction.h:16
SlaveConstraint::nodalArea
Real nodalArea(PenetrationInfo &pinfo)
Definition: SlaveConstraint.C:307
SlaveConstraint::_aux_system
SystemBase & _aux_system
Definition: SlaveConstraint.h:54
SlaveConstraint::_component
const unsigned int _component
Definition: SlaveConstraint.h:36
SlaveConstraint::_point_to_info
std::map< Point, PenetrationInfo * > _point_to_info
Definition: SlaveConstraint.h:47
SlaveConstraint::_mesh_dimension
const unsigned int _mesh_dimension
Definition: SlaveConstraint.h:51
SlaveConstraint::_nodal_area_var
MooseVariable * _nodal_area_var
Definition: SlaveConstraint.h:53
SlaveConstraint::_normalize_penalty
const bool _normalize_penalty
Definition: SlaveConstraint.h:39
SlaveConstraint::_residual_copy
NumericVector< Number > & _residual_copy
Definition: SlaveConstraint.h:45
SlaveConstraint::_vars
std::vector< unsigned int > _vars
Definition: SlaveConstraint.h:49
SlaveConstraint::_model
const ContactModel _model
Definition: SlaveConstraint.h:37
SlaveConstraint
Definition: SlaveConstraint.h:24
SlaveConstraint::_friction_coefficient
const Real _friction_coefficient
Definition: SlaveConstraint.h:43
ContactFormulation
ContactFormulation
Definition: ContactAction.h:23
validParams< SlaveConstraint >
InputParameters validParams< SlaveConstraint >()
Definition: SlaveConstraint.C:25
SlaveConstraint::SlaveConstraint
SlaveConstraint(const InputParameters &parameters)
Definition: SlaveConstraint.C:62
SlaveConstraint::computeQpJacobian
virtual Real computeQpJacobian()
Definition: SlaveConstraint.C:186
SlaveConstraint::_penetration_locator
PenetrationLocator & _penetration_locator
Definition: SlaveConstraint.h:40
SlaveConstraint::_penalty
const Real _penalty
Definition: SlaveConstraint.h:42
SlaveConstraint::computeQpResidual
virtual Real computeQpResidual()
Definition: SlaveConstraint.C:159
SlaveConstraint::_formulation
const ContactFormulation _formulation
Definition: SlaveConstraint.h:38
SlaveConstraint::addPoints
virtual void addPoints()
Definition: SlaveConstraint.C:113
SlaveConstraint::_aux_solution
const NumericVector< Number > * _aux_solution
Definition: SlaveConstraint.h:55