25 "Computes the directed force coming from friction and pressure differences on a surface. One " 26 "can use this object for the computation of the drag and lift coefficient as well.");
27 params.
addRequiredParam<MooseFunctorName>(
"vel_x",
"The velocity in direction x.");
28 params.
addParam<MooseFunctorName>(
"vel_y",
"The velocity in direction y.");
29 params.
addParam<MooseFunctorName>(
"vel_z",
"The velocity in direction z.");
33 "The direction in which the force is computed.");
49 "For 2D meshes the second velocity component should be provided as well!");
56 "For 3D meshes the third velocity component should be provided as well!");
74 mooseAssert(fi,
"We should have a face info in " +
name());
93 const auto shear_force =
mu *
94 (cell_velocity - face_velocity -
95 (cell_velocity - face_velocity) * fi->
normal() * fi->
normal()) /
104 mooseError(this->
type() +
" does not have an implementation for quadrature-based evaluation!");
const Moose::Functor< Real > & _pressure
Pressure field.
const Moose::Functor< Real > & _mu
The dynamic viscosity.
static InputParameters validParams()
Moose::StateArg determineState() const
Real computeFaceInfoIntegral(const FaceInfo *fi) override
virtual const std::string & name() const
static InputParameters validParams()
registerMooseObject("NavierStokesApp", IntegralDirectedSurfaceForce)
Real computeQpIntegral() override
bool isParamValid(const std::string &name) const
TensorValue< Real > RealTensorValue
virtual unsigned int dimension() const
static const std::string mu
const std::string & type() const
const Point & normal() const
void paramError(const std::string ¶m, Args... args) const
IntegralDirectedSurfaceForce(const InputParameters ¶meters)
const RealVectorValue _direction
The direction in which the force is measured.
const Elem * elemPtr() const
std::vector< const Moose::Functor< Real > * > _vel_components
Velocity components.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
Postprocessor which computes the directed force coming from friction and pressure differences on a su...
static const std::string pressure
IntRange< T > make_range(T beg, T end)
void mooseError(Args &&... args) const
const Point & dCN() const