26 "Applies a distributed load (specified in units of force per area) on the shell plane in a " 27 "given direction (e.g. self_weight, wind load) or normal to the shell plan (e.g. pressure " 30 "The string of displacements suitable for the problem statement");
32 "project_load_to_normal",
false,
"Whether to apply the distributed load normal to the shell");
35 "The function that describes the distributed load specified in units of force per area ");
42 _ndisp(this->coupledComponents(
"displacements")),
44 _function(&this->getFunction(
"function")),
45 _project_load_to_normal(parameters.isParamSetByUser(
"project_load_to_normal")
46 ? this->template getParam<bool>(
"project_load_to_normal")
51 mooseError(
"ADDistributedLoadShell: parameter 'displacements' needs to have exactly three " 54 for (
unsigned int i = 0; i <
_ndisp; ++i)
70 for (
unsigned int i = 0; i < 4; ++i)
71 _nodes[i] = _current_elem->node_ptr(i);
73 _v1 = (*_nodes[1] - *_nodes[0]);
74 _v2 = (*_nodes[2] - *_nodes[0]);
76 _normal = _v1.cross(_v2);
77 _normal /= _normal.norm();
79 if (_project_load_to_normal)
80 return computeFactor() * (_normal(_component) * _test[_i][_qp]);
82 return computeFactor() * (_test[_i][_qp]);
89 return _function->value(_t, _q_point[_qp]);
ADDistributedLoadShellTempl(const InputParameters ¶meters)
Moose::GenericType< Real, is_ad > GenericReal
virtual unsigned int coupled(const std::string &var_name, unsigned int comp=0) const
const unsigned int invalid_uint
unsigned int number() const
static InputParameters validParams()
GenericReal< is_ad > computeFactor() const
unsigned int _component
displacement component to apply the pressure to the shell
The following methods are specializations for using the Parallel::packed_range_* routines for a vecto...
const unsigned int _ndisp
Number of displacement variables.
registerMooseObject("SolidMechanicsApp", ADDistributedLoadShell)
std::vector< unsigned int > _disp_var
Variable numbers of coupled displacement variables.
void mooseError(Args &&... args) const
virtual GenericReal< is_ad > computeQpResidual() override
static InputParameters validParams()