www.mooseframework.org
RANFSTieNode.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 "NodeFaceConstraint.h"
14 #include "MooseEnum.h"
15 
16 #include <vector>
17 #include <unordered_map>
18 
19 class RANFSTieNode;
20 class PenetrationInfo;
21 
22 namespace libMesh
23 {
24 template <typename>
25 class NumericVector;
26 }
27 
28 template <>
29 InputParameters validParams<RANFSTieNode>();
30 
31 class RANFSTieNode : public NodeFaceConstraint
32 {
33 public:
34  RANFSTieNode(const InputParameters & parameters);
35 
36  bool shouldApply() override;
37  void residualSetup() override;
38  bool overwriteSlaveResidual() override;
39  void computeSlaveValue(NumericVector<Number> & solution) override;
40 
41 protected:
42  virtual Real computeQpSlaveValue() override;
43 
44  virtual Real computeQpResidual(Moose::ConstraintType type) override;
45  virtual Real computeQpJacobian(Moose::ConstraintJacobianType type) override;
46 
47  const MooseEnum _component;
48  const unsigned int _mesh_dimension;
49  NumericVector<Number> & _residual_copy;
50 
51  std::vector<unsigned int> _vars;
52  std::vector<MooseVariable *> _var_objects;
54  const Node * _nearest_node;
55  std::unordered_map<dof_id_type, Real> _node_to_lm;
56  dof_id_type _master_index;
57 
58  std::unordered_map<dof_id_type, Number> _dof_number_to_value;
59 };
RANFSTieNode
Definition: RANFSTieNode.h:31
RANFSTieNode::_master_index
dof_id_type _master_index
Definition: RANFSTieNode.h:56
RANFSTieNode::_mesh_dimension
const unsigned int _mesh_dimension
Definition: RANFSTieNode.h:48
libMesh
Definition: RANFSNormalMechanicalContact.h:24
RANFSTieNode::overwriteSlaveResidual
bool overwriteSlaveResidual() override
Definition: RANFSTieNode.C:62
RANFSTieNode::computeSlaveValue
void computeSlaveValue(NumericVector< Number > &solution) override
Definition: RANFSTieNode.C:165
RANFSTieNode::_node_to_lm
std::unordered_map< dof_id_type, Real > _node_to_lm
Definition: RANFSTieNode.h:55
RANFSTieNode::_residual_copy
NumericVector< Number > & _residual_copy
Definition: RANFSTieNode.h:49
RANFSTieNode::residualSetup
void residualSetup() override
Definition: RANFSTieNode.C:56
RANFSTieNode::_vars
std::vector< unsigned int > _vars
Definition: RANFSTieNode.h:51
RANFSTieNode::RANFSTieNode
RANFSTieNode(const InputParameters &parameters)
Definition: RANFSTieNode.C:38
RANFSTieNode::_var_objects
std::vector< MooseVariable * > _var_objects
Definition: RANFSTieNode.h:52
RANFSTieNode::computeQpJacobian
virtual Real computeQpJacobian(Moose::ConstraintJacobianType type) override
Definition: RANFSTieNode.C:134
RANFSTieNode::shouldApply
bool shouldApply() override
Definition: RANFSTieNode.C:68
RANFSTieNode::_lagrange_multiplier
Real _lagrange_multiplier
Definition: RANFSTieNode.h:53
RANFSTieNode::_nearest_node
const Node * _nearest_node
Definition: RANFSTieNode.h:54
RANFSTieNode::computeQpSlaveValue
virtual Real computeQpSlaveValue() override
Definition: RANFSTieNode.C:170
validParams< RANFSTieNode >
InputParameters validParams< RANFSTieNode >()
Definition: RANFSTieNode.C:24
RANFSTieNode::_dof_number_to_value
std::unordered_map< dof_id_type, Number > _dof_number_to_value
Definition: RANFSTieNode.h:58
RANFSTieNode::computeQpResidual
virtual Real computeQpResidual(Moose::ConstraintType type) override
Definition: RANFSTieNode.C:112
RANFSTieNode::_component
const MooseEnum _component
Definition: RANFSTieNode.h:47