12 #include "libmesh/quadrature.h" 13 #include "libmesh/utility.h" 14 #include "libmesh/enum_quadrature_type.h" 15 #include "libmesh/fe_type.h" 16 #include "libmesh/string_to_enum.h" 17 #include "libmesh/quadrature_gauss.h" 26 "Computes the local forces, bending moments and shear forces acting on shell elements");
27 params.
addParam<std::string>(
"base_name",
"Mechanical property base name");
30 "Thickness of the shell. Can be supplied as either a number or a variable name.");
32 "Quadrature order in out of plane direction");
34 "axial_force_0 axial_force_1 normal_force bending_moment_0 bending_moment_1 " 35 "bending_moment_01 shear_force_01 shear_force_02 shear_force_12");
39 "The stress resultant type to output, calculated on the shell element.");
46 _base_name(isParamValid(
"base_name") ? getParam<
std::string>(
"base_name") +
"_" :
""),
47 _thickness(coupledValue(
"thickness")),
51 1, Utility::string_to_enum<Order>(getParam<std::string>(
"through_thickness_order")));
58 _base_name +
"local_stress_t_points_" + std::to_string(t));
64 Real _shell_resultant = 0.0;
69 for (
unsigned int i = 0; i <
_t_points.size(); ++i)
77 for (
unsigned int i = 0; i <
_t_points.size(); ++i)
85 for (
unsigned int i = 0; i <
_t_points.size(); ++i)
93 for (
unsigned int i = 0; i <
_t_points.size(); ++i)
101 for (
unsigned int i = 0; i <
_t_points.size(); ++i)
109 for (
unsigned int i = 0; i <
_t_points.size(); ++i)
117 for (
unsigned int i = 0; i <
_t_points.size(); ++i)
125 for (
unsigned int i = 0; i <
_t_points.size(); ++i)
133 for (
unsigned int i = 0; i <
_t_points.size(); ++i)
141 return _shell_resultant;
std::unique_ptr< QGauss > _t_qrule
Quadrature rule in the out of plane direction.
registerMooseObject("SolidMechanicsApp", ShellResultantsAux)
const std::string _base_name
Base name of the material system used to calculate the elastic energy.
std::vector< Point > _t_points
Quadrature points and weights in the out of plane direction in isoparametric coordinate system...
std::vector< Real > _t_weights
ShellResultantsAux(const InputParameters ¶meters)
std::vector< const MaterialProperty< RankTwoTensor > * > _local_stress_t_points
The local stress tensor.
const VariableValue & _thickness
Coupled variable for the shell thickness.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
static InputParameters validParams()
static InputParameters validParams()
enum ShellResultantsAux::ResultantType _resultant
virtual Real computeValue()
auto index_range(const T &sizable)