23 "The value that will be produced for 3D elements, since such " 24 "elements do not have a 'normal direction'");
28 "The normal for all 1D elements will be perpendicular to this vector");
31 "AuxKernel to compute components of the element normal. This is mostly designed for 2D " 32 "elements living in 3D space, however, the 1D-element and 3D-element cases are handled as " 33 "special cases. The Variable for this AuxKernel must be an elemental Variable");
40 _component(getParam<
MooseEnum>(
"component")),
45 paramError(
"variable",
"The variable must be an elemental variable");
47 paramError(
"1D_perp",
"Must not be the zero vector");
49 paramError(
"3D_default",
"Must not be the zero vector");
61 for (
unsigned i = 0; i < num_nodes - 1; ++i)
70 for (
unsigned i = 0; i < num_nodes - 2; ++i)
auto norm() const -> decltype(std::norm(Real()))
const RealVectorValue _1D_perp
For 1D elements, the value computed will be perpendicular to this vector.
static const std::string component
const RealVectorValue _3D_default
Value used for 3D elements.
TypeVector< Real > unit() const
registerMooseObject("PorousFlowApp", PorousFlowElementNormal)
void paramError(const std::string ¶m, Args... args) const
TypeVector< typename CompareTypes< Real, T2 >::supertype > cross(const TypeVector< T2 > &v) const
static InputParameters validParams()
PorousFlowElementNormal(const InputParameters ¶meters)
Computes a component of the normal of elements.
virtual Real computeValue() override
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
static const std::string v
const Elem *const & _current_elem
static InputParameters validParams()
const unsigned _component
Desired component.