24 "boundary",
"The list of boundary IDs from the mesh where the pressure will be applied");
26 params.
addParam<std::vector<VariableName>>(
29 "The displacements appropriate for the simulation geometry and coordinate system");
30 params.
addParam<std::vector<AuxVariableName>>(
"save_in", {},
"The displacement residuals");
33 params.
addParam<
bool>(
"use_automatic_differentiation",
35 "Flag to use automatic differentiation (AD) objects when possible");
41 _use_ad(getParam<bool>(
"use_automatic_differentiation")),
42 _displacements(getParam<
std::vector<VariableName>>(
"displacements")),
43 _ndisp(_displacements.size()),
44 _save_in(getParam<
std::vector<AuxVariableName>>(
"save_in"))
47 mooseError(
"InclinedNoDisplacementBC is specific to 2D and 3D models.");
50 mooseError(
"Number of save_in variables should equal to the number of displacement variables ",
57 std::string ad_prepend =
"";
60 const std::string kernel_name = ad_prepend +
"PenaltyInclinedNoDisplacementBC";
63 for (
unsigned int i = 0; i <
_ndisp; ++i)
70 params.
set<
bool>(
"use_displaced_mesh") =
false;
71 params.
set<
unsigned int>(
"component") = i;
75 params.
set<std::vector<AuxVariableName>>(
"save_in") = {
_save_in[i]};
77 _problem->addBoundaryCondition(kernel_name, unique_kernel_name, params);
static InputParameters validParams()
const bool _use_ad
Flag to use automatic differentiation.
InputParameters getValidParams(const std::string &name) const
registerMooseAction("SolidMechanicsApp", InclinedNoDisplacementBCAction, "add_bc")
static InputParameters validParams()
virtual void act() override
std::string stringify(const T &t)
std::vector< VariableName > _displacements
displacement variables
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
void mooseError(Args &&... args) const
std::shared_ptr< FEProblemBase > & _problem
const InputParameters & parameters() const
InclinedNoDisplacementBCAction(const InputParameters ¶ms)
unsigned int _ndisp
number of displacement variables
std::vector< AuxVariableName > _save_in
auxvariables to save residuals