https://mooseframework.inl.gov
Loading...
Searching...
No Matches
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
19class PenetrationInfo;
20
21namespace libMesh
22{
23template <typename>
24class NumericVector;
25}
26
28{
29public:
31
33
34 bool shouldApply() override;
35 void residualSetup() override;
36 bool overwriteSecondaryResidual() override;
37 void computeSecondaryValue(NumericVector<Number> & solution) override;
38
39protected:
40 virtual Real computeQpSecondaryValue() override;
41
42 virtual Real computeQpResidual(Moose::ConstraintType type) override;
44
46 const unsigned int _mesh_dimension;
47 NumericVector<Number> & _residual_copy;
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;
54 dof_id_type _primary_index;
55
56 std::unordered_map<dof_id_type, Number> _dof_number_to_value;
57};
const InputParameters & parameters() const
const std::string & type() const
const MooseEnum _component
std::vector< MooseVariable * > _var_objects
NumericVector< Number > & _residual_copy
const Node * _nearest_node
void computeSecondaryValue(NumericVector< Number > &solution) override
dof_id_type _primary_index
std::vector< unsigned int > _vars
std::unordered_map< dof_id_type, Real > _node_to_lm
virtual Real computeQpSecondaryValue() override
bool shouldApply() override
void residualSetup() override
static InputParameters validParams()
Real _lagrange_multiplier
std::unordered_map< dof_id_type, Number > _dof_number_to_value
bool overwriteSecondaryResidual() override
const unsigned int _mesh_dimension
virtual Real computeQpResidual(Moose::ConstraintType type) override
virtual Real computeQpJacobian(Moose::ConstraintJacobianType type) override
ConstraintType
ConstraintJacobianType
The following methods are specializations for using the Parallel::packed_range_* routines for a vecto...