https://mooseframework.inl.gov
Public Member Functions | List of all members
FaceArgProducerInterface Class Referenceabstract

An interface for producers of functor face arguments, e.g. More...

#include <FaceArgInterface.h>

Inheritance diagram for FaceArgProducerInterface:
[legend]

Public Member Functions

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. More...
 
Moose::FaceArg makeCDFace (const FaceInfo &fi, const bool correct_skewness=false) const
 Make a functor face argument with a central differencing limiter, e.g. More...
 
virtual bool hasFaceSide (const FaceInfo &fi, const bool fi_elem_side) const =0
 

Detailed Description

An interface for producers of functor face arguments, e.g.

objects such as residual objects and postprocessors

Definition at line 32 of file FaceArgInterface.h.

Member Function Documentation

◆ hasFaceSide()

virtual bool FaceArgInterface::hasFaceSide ( const FaceInfo fi,
const bool  fi_elem_side 
) const
pure virtualinherited

Implemented in Moose::NullFunctor< T >, Moose::FunctorEnvelope< T >, Moose::FunctorEnvelope< ADReal >, Moose::FunctorEnvelope< GenericReal< is_ad > >, Moose::FunctorEnvelope< GenericRealVectorValue< is_ad > >, Moose::FunctorEnvelope< VectorValue< Real > >, Moose::FunctorEnvelope< Moose::GenericType< T, is_ad > >, Moose::FunctorEnvelope< VectorValue< GenericReal< is_ad > > >, Moose::FunctorEnvelope< Moose::GenericType< Real, is_ad > >, Moose::FunctorEnvelope< Real >, Moose::FunctorEnvelope< libMesh::VectorValue >, Moose::FunctorBase< T >, Moose::FunctorBase< Moose::ADType< OutputType >::type >, Moose::FunctorBase< ADReal >, Moose::FunctorBase< GenericReal< is_ad > >, Moose::FunctorBase< VectorValue< T > >, Moose::FunctorBase< GenericRealVectorValue< is_ad > >, Moose::FunctorBase< typename Moose::ADType< T >::type >, Moose::FunctorBase< VectorValue< Real > >, Moose::FunctorBase< Moose::GenericType< T, is_ad > >, Moose::FunctorBase< VectorValue< GenericReal< is_ad > > >, Moose::FunctorBase< Moose::GenericType< Real, is_ad > >, Moose::FunctorBase< typename MetaPhysicL::RawType< T >::value_type >, Moose::FunctorBase< Real >, Moose::FunctorBase< libMesh::VectorValue >, FVInterfaceKernel, FVBoundaryCondition, LinearFVBoundaryCondition, FVFluxKernel, Moose::ADWrapperFunctor< T >, Moose::RawValueFunctor< T >, LinearFVFluxKernel, InternalSideIntegralVariablePostprocessor, InterfaceIntegralVariableValuePostprocessor, SideIntegralVariablePostprocessor, SideIntegralFunctorPostprocessorTempl< is_ad >, and SideIntegralFunctorPostprocessorTempl< false >.

Referenced by makeFace().

◆ makeCDFace()

Moose::FaceArg FaceArgProducerInterface::makeCDFace ( const FaceInfo fi,
const bool  correct_skewness = false 
) const
inline

Make a functor face argument with a central differencing limiter, e.g.

compose a face argument that will tell functors to perform (possibly skew-corrected) linear interpolations from cell center values to faces

Parameters
fithe face information
correct_skewnesswhether to apply skew correction
Returns
a face argument for functors

Definition at line 62 of file FaceArgInterface.h.

Referenced by LinearFVAdvectionDiffusionFunctorNeumannBC::computeBoundaryNormalGradient(), LinearFVAdvectionDiffusionFunctorNeumannBC::computeBoundaryValue(), LinearFVAdvectionDiffusionFunctorNeumannBC::computeBoundaryValueRHSContribution(), SideIntegralVariablePostprocessor::computeFaceInfoIntegral(), InternalSideIntegralVariablePostprocessor::computeFaceInfoIntegral(), LinearFVDiffusion::computeFluxMatrixContribution(), LinearFVAnisotropicDiffusion::computeFluxMatrixContribution(), LinearFVDiffusion::computeFluxRHSContribution(), LinearFVAnisotropicDiffusion::computeFluxRHSContribution(), and InterfaceIntegralVariableValuePostprocessor::computeQpIntegral().

63 {
64  return makeFace(fi, Moose::FV::LimiterType::CentralDifference, true, correct_skewness);
65 }
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.

◆ makeFace()

Moose::FaceArg FaceArgProducerInterface::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.

Parameters
fithe face information object
limiter_typethe limiter that defines how to perform interpolations to the faces
elem_is_upwindwhether the face information element is the upwind element (the value of this doesn't matter when the limiter type is CentralDifference)
correct_skewnesswhether to apply skew correction
Returns
the functor face argument

Definition at line 13 of file FaceArgInterface.C.

Referenced by FVAdvection::computeQpResidual(), FVMatAdvection::computeQpResidual(), FVDivergence::computeQpResidual(), FVBoundaryIntegralValueConstraint::computeQpResidual(), makeCDFace(), LinearFVFluxKernel::singleSidedFaceArg(), FVBoundaryCondition::singleSidedFaceArg(), LinearFVBoundaryCondition::singleSidedFaceArg(), and FVFluxKernel::singleSidedFaceArg().

18 {
19  const bool defined_on_elem_side = hasFaceSide(fi, true);
20  const bool defined_on_neighbor_side = hasFaceSide(fi, false);
21  const Elem * const elem = defined_on_elem_side && defined_on_neighbor_side
22  ? nullptr
23  : (defined_on_elem_side ? &fi.elem() : fi.neighborPtr());
24 
25  if (!defined_on_elem_side && !defined_on_neighbor_side)
26  mooseError("No definition on either side");
27 
28  return {&fi, limiter_type, elem_is_upwind, correct_skewness, elem, state_limiter};
29 }
void mooseError(Args &&... args)
Emit an error message with the given stringified, concatenated args and terminate the application...
Definition: MooseError.h:302
const Elem & elem() const
Definition: FaceInfo.h:81
const Elem * neighborPtr() const
Definition: FaceInfo.h:84
virtual bool hasFaceSide(const FaceInfo &fi, const bool fi_elem_side) const =0

The documentation for this class was generated from the following files: