#include <RANFSTieNode.h>
Definition at line 31 of file RANFSTieNode.h.
◆ RANFSTieNode()
RANFSTieNode::RANFSTieNode |
( |
const InputParameters & |
parameters | ) |
|
Definition at line 38 of file RANFSTieNode.C.
39 : NodeFaceConstraint(parameters),
45 for (
unsigned int i = 0; i < coupledComponents(
"displacements"); ++i)
47 _vars.push_back(coupled(
"displacements", i));
52 mooseError(
"The number of displacement variables does not match the mesh dimension!");
◆ computeQpJacobian()
Real RANFSTieNode::computeQpJacobian |
( |
Moose::ConstraintJacobianType |
type | ) |
|
|
overrideprotectedvirtual |
Definition at line 134 of file RANFSTieNode.C.
138 case Moose::ConstraintJacobianType::SlaveSlave:
139 return _phi_slave[_j][_qp];
141 case Moose::ConstraintJacobianType::SlaveMaster:
147 case Moose::ConstraintJacobianType::MasterSlave:
152 "The connected dof index is not found in the _dof_number_to_value container. "
153 "This must mean that insufficient sparsity was allocated");
◆ computeQpResidual()
Real RANFSTieNode::computeQpResidual |
( |
Moose::ConstraintType |
type | ) |
|
|
overrideprotectedvirtual |
Definition at line 112 of file RANFSTieNode.C.
116 case Moose::ConstraintType::Slave:
119 case Moose::ConstraintType::Master:
◆ computeQpSlaveValue()
Real RANFSTieNode::computeQpSlaveValue |
( |
| ) |
|
|
overrideprotectedvirtual |
Definition at line 170 of file RANFSTieNode.C.
172 mooseError(
"We overrode commputeSlaveValue so computeQpSlaveValue should never get called");
◆ computeSlaveValue()
void RANFSTieNode::computeSlaveValue |
( |
NumericVector< Number > & |
solution | ) |
|
|
override |
◆ overwriteSlaveResidual()
bool RANFSTieNode::overwriteSlaveResidual |
( |
| ) |
|
|
override |
◆ residualSetup()
void RANFSTieNode::residualSetup |
( |
| ) |
|
|
override |
◆ shouldApply()
bool RANFSTieNode::shouldApply |
( |
| ) |
|
|
override |
Definition at line 68 of file RANFSTieNode.C.
70 auto & nearest_node_loc = _penetration_locator._nearest_node;
71 _nearest_node = nearest_node_loc.nearestNode(_current_node->id());
74 auto slave_dof_number = _current_node->dof_number(0,
_vars[
_component], 0);
77 if (!_subproblem.currentlyComputingJacobian())
78 _node_to_lm.insert(std::make_pair(_current_node->id(),
83 std::vector<dof_id_type> master_cols;
84 std::vector<Number> master_values;
86 _jacobian->get_row(slave_dof_number, master_cols, master_values);
87 mooseAssert(master_cols.size() == master_values.size(),
88 "The size of the dof container and value container are different");
92 for (MooseIndex(master_cols) i = 0; i < master_cols.size(); ++i)
94 std::make_pair(master_cols[i], master_values[i] / _var.scalingFactor()));
98 "The node " << _current_node->id() <<
" should map to a lagrange multiplier");
103 "nearest node not a node on the current master element");
◆ _component
const MooseEnum RANFSTieNode::_component |
|
protected |
◆ _dof_number_to_value
std::unordered_map<dof_id_type, Number> RANFSTieNode::_dof_number_to_value |
|
protected |
◆ _lagrange_multiplier
Real RANFSTieNode::_lagrange_multiplier |
|
protected |
◆ _master_index
dof_id_type RANFSTieNode::_master_index |
|
protected |
◆ _mesh_dimension
const unsigned int RANFSTieNode::_mesh_dimension |
|
protected |
◆ _nearest_node
const Node* RANFSTieNode::_nearest_node |
|
protected |
◆ _node_to_lm
std::unordered_map<dof_id_type, Real> RANFSTieNode::_node_to_lm |
|
protected |
◆ _residual_copy
NumericVector<Number>& RANFSTieNode::_residual_copy |
|
protected |
◆ _var_objects
std::vector<MooseVariable *> RANFSTieNode::_var_objects |
|
protected |
◆ _vars
std::vector<unsigned int> RANFSTieNode::_vars |
|
protected |
The documentation for this class was generated from the following files: