https://mooseframework.inl.gov
RANFSTieNode.h
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://mooseframework.inl.gov
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 PenetrationInfo;
20 
21 namespace libMesh
22 {
23 template <typename>
24 class NumericVector;
25 }
26 
28 {
29 public:
31 
33 
34  bool shouldApply() override;
35  void residualSetup() override;
36  bool overwriteSecondaryResidual() override;
37  void computeSecondaryValue(NumericVector<Number> & solution) override;
38 
39 protected:
40  virtual Real computeQpSecondaryValue() override;
41 
44 
46  const unsigned int _mesh_dimension;
48 
49  std::vector<unsigned int> _vars;
50  std::vector<MooseVariable *> _var_objects;
52  const Node * _nearest_node;
53  std::unordered_map<dof_id_type, Real> _node_to_lm;
55 
56  std::unordered_map<dof_id_type, Number> _dof_number_to_value;
57 };
std::unordered_map< dof_id_type, Real > _node_to_lm
Definition: RANFSTieNode.h:53
ConstraintType
NumericVector< Number > & _residual_copy
Definition: RANFSTieNode.h:47
void residualSetup() override
Definition: RANFSTieNode.C:55
RANFSTieNode(const InputParameters &parameters)
Definition: RANFSTieNode.C:37
dof_id_type _primary_index
Definition: RANFSTieNode.h:54
virtual Real computeQpJacobian(Moose::ConstraintJacobianType type) override
Definition: RANFSTieNode.C:133
The following methods are specializations for using the Parallel::packed_range_* routines for a vecto...
static InputParameters validParams()
Definition: RANFSTieNode.C:23
const Node * _nearest_node
Definition: RANFSTieNode.h:52
virtual Real computeQpResidual(Moose::ConstraintType type) override
Definition: RANFSTieNode.C:111
virtual Real computeQpSecondaryValue() override
Definition: RANFSTieNode.C:169
const MooseEnum _component
Definition: RANFSTieNode.h:45
bool overwriteSecondaryResidual() override
Definition: RANFSTieNode.C:61
const std::string & type() const
std::vector< MooseVariable * > _var_objects
Definition: RANFSTieNode.h:50
std::unordered_map< dof_id_type, Number > _dof_number_to_value
Definition: RANFSTieNode.h:56
const unsigned int _mesh_dimension
Definition: RANFSTieNode.h:46
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
void computeSecondaryValue(NumericVector< Number > &solution) override
Definition: RANFSTieNode.C:164
ConstraintJacobianType
bool shouldApply() override
Definition: RANFSTieNode.C:67
const InputParameters & parameters() const
std::vector< unsigned int > _vars
Definition: RANFSTieNode.h:49
Real _lagrange_multiplier
Definition: RANFSTieNode.h:51
uint8_t dof_id_type