www.mooseframework.org
Public Member Functions | Static Public Member Functions | Protected Attributes | List of all members
CoupledPressureAction Class Reference

Action that sets up pressure boundary condition on displacement variables. More...

#include <CoupledPressureAction.h>

Inheritance diagram for CoupledPressureAction:
[legend]

Public Member Functions

 CoupledPressureAction (const InputParameters &params)
 
virtual void act () override
 

Static Public Member Functions

static InputParameters validParams ()
 

Protected Attributes

std::vector< std::vector< AuxVariableName > > _save_in_vars
 
std::vector< bool > _has_save_in_vars
 

Detailed Description

Action that sets up pressure boundary condition on displacement variables.

Definition at line 22 of file CoupledPressureAction.h.

Constructor & Destructor Documentation

◆ CoupledPressureAction()

CoupledPressureAction::CoupledPressureAction ( const InputParameters &  params)

Definition at line 47 of file CoupledPressureAction.C.

47  : Action(params)
48 {
49  _save_in_vars.push_back(getParam<std::vector<AuxVariableName>>("save_in_disp_x"));
50  _save_in_vars.push_back(getParam<std::vector<AuxVariableName>>("save_in_disp_y"));
51  _save_in_vars.push_back(getParam<std::vector<AuxVariableName>>("save_in_disp_z"));
52 
53  _has_save_in_vars.push_back(params.isParamValid("save_in_disp_x"));
54  _has_save_in_vars.push_back(params.isParamValid("save_in_disp_y"));
55  _has_save_in_vars.push_back(params.isParamValid("save_in_disp_z"));
56 }

Member Function Documentation

◆ act()

void CoupledPressureAction::act ( )
overridevirtual

Definition at line 59 of file CoupledPressureAction.C.

60 {
61  const std::string kernel_name = "CoupledPressureBC";
62 
63  std::vector<VariableName> displacements;
64  if (isParamValid("displacements"))
65  displacements = getParam<std::vector<VariableName>>("displacements");
66  else
67  {
68  // Legacy parameter scheme for displacements
69  if (!isParamValid("disp_x"))
70  mooseError("Specify displacement variables using the `displacements` parameter.");
71  displacements.push_back(getParam<VariableName>("disp_x"));
72 
73  if (isParamValid("disp_y"))
74  {
75  displacements.push_back(getParam<VariableName>("disp_y"));
76  if (isParamValid("disp_z"))
77  displacements.push_back(getParam<VariableName>("disp_z"));
78  }
79  }
80 
81  // Create pressure BCs
82  for (unsigned int i = 0; i < displacements.size(); ++i)
83  {
84  // Create unique kernel name for each of the components
85  std::string unique_kernel_name = kernel_name + "_" + _name + "_" + Moose::stringify(i);
86 
87  InputParameters params = _factory.getValidParams(kernel_name);
88  params.applySpecificParameters(parameters(), {"boundary"});
89  params.set<std::vector<VariableName>>("pressure") = {getParam<VariableName>("pressure")};
90  params.set<bool>("use_displaced_mesh") = true;
91  params.set<unsigned int>("component") = i;
92  params.set<NonlinearVariableName>("variable") = displacements[i];
93 
94  if (_has_save_in_vars[i])
95  params.set<std::vector<AuxVariableName>>("save_in") = _save_in_vars[i];
96 
97  _problem->addBoundaryCondition(kernel_name, unique_kernel_name, params);
98  }
99 }

◆ validParams()

InputParameters CoupledPressureAction::validParams ( )
static

Definition at line 20 of file CoupledPressureAction.C.

21 {
22  InputParameters params = Action::validParams();
23  params.addClassDescription("Set up Coupled Pressure boundary conditions");
24 
25  params.addRequiredParam<std::vector<BoundaryName>>(
26  "boundary", "The list of boundary IDs from the mesh where the pressure will be applied");
27 
28  params.addParam<VariableName>("disp_x", "The x displacement");
29  params.addParam<VariableName>("disp_y", "The y displacement");
30  params.addParam<VariableName>("disp_z", "The z displacement");
31 
32  params.addParam<std::vector<VariableName>>(
33  "displacements",
34  "The displacements appropriate for the simulation geometry and coordinate system");
35 
36  params.addParam<std::vector<AuxVariableName>>("save_in_disp_x",
37  "The save_in variables for x displacement");
38  params.addParam<std::vector<AuxVariableName>>("save_in_disp_y",
39  "The save_in variables for y displacement");
40  params.addParam<std::vector<AuxVariableName>>("save_in_disp_z",
41  "The save_in variables for z displacement");
42 
43  params.addParam<VariableName>("pressure", "The variable that contains the pressure");
44  return params;
45 }

Member Data Documentation

◆ _has_save_in_vars

std::vector<bool> CoupledPressureAction::_has_save_in_vars
protected

Definition at line 33 of file CoupledPressureAction.h.

Referenced by act(), and CoupledPressureAction().

◆ _save_in_vars

std::vector<std::vector<AuxVariableName> > CoupledPressureAction::_save_in_vars
protected

Definition at line 32 of file CoupledPressureAction.h.

Referenced by act(), and CoupledPressureAction().


The documentation for this class was generated from the following files:
CoupledPressureAction::_has_save_in_vars
std::vector< bool > _has_save_in_vars
Definition: CoupledPressureAction.h:33
validParams
InputParameters validParams()
CoupledPressureAction::_save_in_vars
std::vector< std::vector< AuxVariableName > > _save_in_vars
Definition: CoupledPressureAction.h:32