www.mooseframework.org
contact
include
constraints
RANFSNormalMechanicalContact.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 "libmesh/coupling_matrix.h"
17
18
#include <vector>
19
#include <unordered_map>
20
21
class
RANFSNormalMechanicalContact
;
22
class
PenetrationInfo;
23
24
namespace
libMesh
25
{
26
template
<
typename
>
27
class
NumericVector
;
28
}
29
30
template
<>
31
InputParameters
validParams<RANFSNormalMechanicalContact>
();
32
33
class
RANFSNormalMechanicalContact
:
public
NodeFaceConstraint
34
{
35
public
:
36
RANFSNormalMechanicalContact
(
const
InputParameters & parameters);
37
38
bool
shouldApply
()
override
;
39
void
residualSetup
()
override
;
40
void
timestepSetup
()
override
;
41
void
initialSetup
()
override
;
42
bool
overwriteSlaveResidual
()
override
;
43
void
computeSlaveValue
(NumericVector<Number> & solution)
override
;
44
45
protected
:
46
virtual
Real
computeQpSlaveValue
()
override
;
47
48
virtual
Real
computeQpResidual
(Moose::ConstraintType type)
override
;
49
virtual
Real
computeQpJacobian
(Moose::ConstraintJacobianType type)
override
;
50
51
const
MooseEnum
_component
;
52
const
unsigned
int
_mesh_dimension
;
53
NumericVector<Number> &
_residual_copy
;
54
55
unsigned
int
_largest_component
;
56
std::vector<unsigned int>
_vars
;
57
std::vector<MooseVariable *>
_var_objects
;
58
std::unordered_map<dof_id_type, Real>
_node_to_contact_lm
;
59
std::unordered_map<dof_id_type, Real>
_node_to_tied_lm
;
60
std::unordered_map<dof_id_type, std::vector<const Elem *>>
_node_to_master_elem_sequence
;
61
Real
_contact_lm
;
62
Real
_tied_lm
;
63
PenetrationInfo *
_pinfo
;
64
std::unordered_map<dof_id_type, const Node *>
_ping_pong_slave_node_to_master_node
;
65
Real
_distance
;
66
bool
_tie_nodes
;
67
unsigned
int
_master_index
;
68
RealVectorValue
_res_vec
;
69
const
Node *
_nearest_node
;
70
std::vector<std::unordered_map<dof_id_type, Number>>
_dof_number_to_value
;
71
CouplingMatrix
_disp_coupling
;
72
};
RANFSNormalMechanicalContact::computeQpJacobian
virtual Real computeQpJacobian(Moose::ConstraintJacobianType type) override
Definition:
RANFSNormalMechanicalContact.C:303
validParams< RANFSNormalMechanicalContact >
InputParameters validParams< RANFSNormalMechanicalContact >()
Definition:
RANFSNormalMechanicalContact.C:25
RANFSNormalMechanicalContact::RANFSNormalMechanicalContact
RANFSNormalMechanicalContact(const InputParameters ¶meters)
Definition:
RANFSNormalMechanicalContact.C:42
RANFSNormalMechanicalContact::residualSetup
void residualSetup() override
Definition:
RANFSNormalMechanicalContact.C:83
libMesh
Definition:
RANFSNormalMechanicalContact.h:24
RANFSNormalMechanicalContact
Definition:
RANFSNormalMechanicalContact.h:33
RANFSNormalMechanicalContact::shouldApply
bool shouldApply() override
Definition:
RANFSNormalMechanicalContact.C:100
RANFSNormalMechanicalContact::_node_to_tied_lm
std::unordered_map< dof_id_type, Real > _node_to_tied_lm
Definition:
RANFSNormalMechanicalContact.h:59
RANFSNormalMechanicalContact::_largest_component
unsigned int _largest_component
Definition:
RANFSNormalMechanicalContact.h:55
RANFSNormalMechanicalContact::_tied_lm
Real _tied_lm
Definition:
RANFSNormalMechanicalContact.h:62
RANFSNormalMechanicalContact::_contact_lm
Real _contact_lm
Definition:
RANFSNormalMechanicalContact.h:61
RANFSNormalMechanicalContact::_disp_coupling
CouplingMatrix _disp_coupling
Definition:
RANFSNormalMechanicalContact.h:71
libMesh::NumericVector
Definition:
RANFSNormalMechanicalContact.h:27
RANFSNormalMechanicalContact::computeSlaveValue
void computeSlaveValue(NumericVector< Number > &solution) override
Definition:
RANFSNormalMechanicalContact.C:414
RANFSNormalMechanicalContact::_mesh_dimension
const unsigned int _mesh_dimension
Definition:
RANFSNormalMechanicalContact.h:52
RANFSNormalMechanicalContact::_var_objects
std::vector< MooseVariable * > _var_objects
Definition:
RANFSNormalMechanicalContact.h:57
RANFSNormalMechanicalContact::initialSetup
void initialSetup() override
Definition:
RANFSNormalMechanicalContact.C:66
RANFSNormalMechanicalContact::_residual_copy
NumericVector< Number > & _residual_copy
Definition:
RANFSNormalMechanicalContact.h:53
RANFSNormalMechanicalContact::_master_index
unsigned int _master_index
Definition:
RANFSNormalMechanicalContact.h:67
RANFSNormalMechanicalContact::computeQpResidual
virtual Real computeQpResidual(Moose::ConstraintType type) override
Definition:
RANFSNormalMechanicalContact.C:259
RANFSNormalMechanicalContact::_vars
std::vector< unsigned int > _vars
Definition:
RANFSNormalMechanicalContact.h:56
RANFSNormalMechanicalContact::_res_vec
RealVectorValue _res_vec
Definition:
RANFSNormalMechanicalContact.h:68
RANFSNormalMechanicalContact::timestepSetup
void timestepSetup() override
Definition:
RANFSNormalMechanicalContact.C:76
RANFSNormalMechanicalContact::_node_to_master_elem_sequence
std::unordered_map< dof_id_type, std::vector< const Elem * > > _node_to_master_elem_sequence
Definition:
RANFSNormalMechanicalContact.h:60
RANFSNormalMechanicalContact::_node_to_contact_lm
std::unordered_map< dof_id_type, Real > _node_to_contact_lm
Definition:
RANFSNormalMechanicalContact.h:58
RANFSNormalMechanicalContact::_distance
Real _distance
Definition:
RANFSNormalMechanicalContact.h:65
RANFSNormalMechanicalContact::computeQpSlaveValue
virtual Real computeQpSlaveValue() override
Definition:
RANFSNormalMechanicalContact.C:419
RANFSNormalMechanicalContact::overwriteSlaveResidual
bool overwriteSlaveResidual() override
Definition:
RANFSNormalMechanicalContact.C:91
RANFSNormalMechanicalContact::_dof_number_to_value
std::vector< std::unordered_map< dof_id_type, Number > > _dof_number_to_value
Definition:
RANFSNormalMechanicalContact.h:70
RANFSNormalMechanicalContact::_nearest_node
const Node * _nearest_node
Definition:
RANFSNormalMechanicalContact.h:69
RANFSNormalMechanicalContact::_pinfo
PenetrationInfo * _pinfo
Definition:
RANFSNormalMechanicalContact.h:63
RANFSNormalMechanicalContact::_ping_pong_slave_node_to_master_node
std::unordered_map< dof_id_type, const Node * > _ping_pong_slave_node_to_master_node
Definition:
RANFSNormalMechanicalContact.h:64
RANFSNormalMechanicalContact::_component
const MooseEnum _component
Definition:
RANFSNormalMechanicalContact.h:51
RANFSNormalMechanicalContact::_tie_nodes
bool _tie_nodes
Definition:
RANFSNormalMechanicalContact.h:66
Generated on Sat Jan 25 2020 12:04:35 for www.mooseframework.org by
1.8.16