15#include "libmesh/elem.h"
46 const bool elem_is_upwind,
47 const bool correct_skewness =
false,
70 template <
typename FunctorType>
74 const bool elem_is_upwind,
75 const bool correct_skewness =
false,
89template <
typename FunctorType>
94 const bool elem_is_upwind,
95 const bool correct_skewness,
98 const bool defined_on_elem_side = functor.hasFaceSide(fi,
true);
99 const bool defined_on_neighbor_side = functor.hasFaceSide(fi,
false);
101 if (!defined_on_elem_side && !defined_on_neighbor_side)
103 functor.functorName(),
104 "' is not defined on either side of the face with centroid ",
108 const Elem *
const face_side = defined_on_elem_side && defined_on_neighbor_side
112 return {&fi, limiter_type, elem_is_upwind, correct_skewness, face_side, state_limiter};
void mooseError(Args &&... args)
Emit an error message with the given stringified, concatenated args and terminate the application.
A base class interface for both producers and consumers of functor face arguments,...
virtual ~FaceArgInterface()=default
virtual bool hasFaceSide(const FaceInfo &fi, const bool fi_elem_side) const =0
An interface for producers of functor face arguments, e.g.
Moose::FaceArg makeFace(const FaceInfo &fi, const Moose::FV::LimiterType limiter_type, const bool elem_is_upwind, const bool correct_skewness=false, const Moose::StateArg *state_limiter=nullptr) const
Create a functor face argument from provided component arguments.
Moose::FaceArg makeCDFace(const FaceInfo &fi, const bool correct_skewness=false) const
Make a functor face argument with a central differencing limiter, e.g.
This data structure is used to store geometric and variable related metadata about each cell face in ...
const Elem * neighborPtr() const
const Elem * elemPtr() const
const Point & faceCentroid() const
Returns the coordinates of the face centroid.
A structure defining a "face" evaluation calling argument for Moose functors.
State argument for evaluating functors.