https://mooseframework.inl.gov
Loading...
Searching...
No Matches
NodalConstraint.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 "Constraint.h"
15
19{
20public:
22
24
29 std::vector<dof_id_type> & getPrimaryNodeId() { return _primary_node_vector; }
30
35 std::vector<dof_id_type> & getSecondaryNodeId() { return _connected_nodes; }
36
40 virtual void updateConnectivity();
41
45 virtual void computeResidual() override final
46 {
47 mooseError("NodalConstraint do not need computeResidual()");
48 }
49 virtual void computeResidual(const NumericVector<Number> & residual);
50
54 virtual void computeJacobian() override final
55 {
56 mooseError("NodalConstraint do not need computeJacobian()");
57 }
58 virtual void computeJacobian(const SparseMatrix<Number> & jacobian);
59
63 const MooseVariable & variable() const override { return _var; }
64
65protected:
71
77
79
81
85 std::vector<dof_id_type> _connected_nodes;
87 std::vector<dof_id_type> _primary_node_vector;
96 std::vector<Real> _weights;
98 unsigned int _i;
99 unsigned int _j;
100};
void mooseError(Args &&... args)
Emit an error message with the given stringified, concatenated args and terminate the application.
Definition MooseError.h:311
OutputTools< Real >::VariableValue VariableValue
Definition MooseTypes.h:348
Base class for all Constraint types.
Definition Constraint.h:20
The main MOOSE class responsible for handling user-defined parameters in almost every MOOSE system.
const InputParameters & parameters() const
Get the parameters of the object.
Definition MooseBase.h:131
const std::string & type() const
Get the type of this class.
Definition MooseBase.h:93
Intermediate base class that ties together all the interfaces for getting MooseVariables with the Moo...
Enhances MooseVariableInterface interface provide values from neighbor elements.
virtual void computeResidual() override final
Computes the nodal residual.
Moose::ConstraintFormulationType _formulation
Specifies formulation type used to apply constraints.
unsigned int _i
Counter for primary and secondary nodes.
virtual Real computeQpResidual(Moose::ConstraintType type)=0
This is the virtual that derived classes should override for computing the residual on neighboring el...
unsigned int _j
std::vector< dof_id_type > _primary_node_vector
node IDs of the primary node
const MooseVariable & variable() const override
The variable number that this object operates on.
std::vector< dof_id_type > _connected_nodes
node IDs connected to the primary node (secondary nodes)
std::vector< Real > _weights
When the secondary node is constrained to move as a linear combination of the primary nodes,...
static InputParameters validParams()
virtual void updateConnectivity()
Built the connectivity for this constraint.
virtual Real computeQpJacobian(Moose::ConstraintJacobianType type)=0
This is the virtual that derived classes should override for computing the Jacobian on neighboring el...
MooseVariable & _var
virtual void computeJacobian() override final
Computes the jacobian for the current element.
MooseVariable & _var_secondary
const VariableValue & _u_secondary
Value of the unknown variable this BC is action on.
const VariableValue & _u_primary
Holds the current solution at the current quadrature point.
std::vector< dof_id_type > & getSecondaryNodeId()
Get the list of connected secondary nodes.
std::vector< dof_id_type > & getPrimaryNodeId()
Get the list of primary nodes.
ConstraintFormulationType
Type of constraint formulation.
Definition MooseTypes.h:972
ConstraintType
Definition MooseTypes.h:812
ConstraintJacobianType
Definition MooseTypes.h:851