www.mooseframework.org
ContactPenetrationVarAction.C
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://www.mooseframework.org
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 
12 #include "Factory.h"
13 #include "FEProblem.h"
14 #include "Parser.h"
15 #include "MooseApp.h"
16 #include "libmesh/string_to_enum.h"
17 
18 registerMooseAction("ContactApp", ContactPenetrationVarAction, "add_aux_variable");
19 
20 template <>
21 InputParameters
23 {
24  MooseEnum orders("CONSTANT FIRST SECOND THIRD FOURTH", "FIRST");
25 
26  InputParameters params = validParams<Action>();
27  params.addParam<MooseEnum>("order", orders, "The finite element order: FIRST, SECOND, etc.");
28  return params;
29 }
30 
32  : Action(params)
33 {
34 }
35 
36 void
38 {
39  if (!_problem->getDisplacedProblem())
40  mooseError("Contact requires updated coordinates. Use the 'displacements = ...' line in the "
41  "Mesh block.");
42 
43  auto var_params = _factory.getValidParams("MooseVariable");
44  var_params.set<MooseEnum>("order") = getParam<MooseEnum>("order");
45  var_params.set<MooseEnum>("family") = "LAGRANGE";
46 
47  _problem->addAuxVariable("MooseVariable", "penetration", var_params);
48 }
validParams< ContactPenetrationVarAction >
InputParameters validParams< ContactPenetrationVarAction >()
Definition: ContactPenetrationVarAction.C:22
ContactPenetrationVarAction.h
registerMooseAction
registerMooseAction("ContactApp", ContactPenetrationVarAction, "add_aux_variable")
ContactPenetrationVarAction::ContactPenetrationVarAction
ContactPenetrationVarAction(const InputParameters &params)
Definition: ContactPenetrationVarAction.C:31
ContactPenetrationVarAction::act
virtual void act()
Definition: ContactPenetrationVarAction.C:37
ContactPenetrationVarAction
Definition: ContactPenetrationVarAction.h:15