https://mooseframework.inl.gov
PenaltyDirichletNodalKernel.C
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 
11 
13 
16 {
18  params.addClassDescription("Enforces a Dirichlet boundary condition "
19  "in a weak sense by penalizing differences between the current "
20  "solution and the Dirichlet value on nodesets.");
21 
22  params.addRequiredParam<Real>("penalty", "Penalty scalar");
23  params.addParam<Real>("value", 0.0, "Boundary value of the variable");
24  params.declareControllable("value");
25 
26  return params;
27 }
28 
30  : NodalKernel(parameters), _p(getParam<Real>("penalty")), _v(getParam<Real>("value"))
31 {
32 }
33 
34 Real
36 {
37  return _p * (-_v + _u[_qp]);
38 }
39 
40 Real
42 {
43  return _p;
44 }
PenaltyDirichletNodalKernel(const InputParameters &parameters)
The main MOOSE class responsible for handling user-defined parameters in almost every MOOSE system...
void addRequiredParam(const std::string &name, const std::string &doc_string)
This method adds a parameter and documentation string to the InputParameters object that will be extr...
virtual Real computeQpResidual() override
The user can override this function to compute the residual at a node.
registerMooseObject("MooseApp", PenaltyDirichletNodalKernel)
virtual Real computeQpJacobian() override
The user can override this function to compute the "on-diagonal" Jacobian contribution.
const VariableValue & _u
Value of the unknown variable this is acting on.
Definition: NodalKernel.h:72
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
static InputParameters validParams()
void addClassDescription(const std::string &doc_string)
This method adds a description of the class that will be displayed in the input file syntax dump...
void addParam(const std::string &name, const S &value, const std::string &doc_string)
These methods add an optional parameter and a documentation string to the InputParameters object...
static InputParameters validParams()
Class constructor.
Definition: NodalKernel.C:18
Base class for creating nodal kernels with hand-coded Jacobians.
Definition: NodalKernel.h:17
void declareControllable(const std::string &name, std::set< ExecFlagType > execute_flags={})
Declare the given parameters as controllable.
unsigned int _qp
Quadrature point index.