https://mooseframework.inl.gov
FaceArgInterface.h
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://mooseframework.inl.gov
3 //*
4 //* All rights reserved, see COPYRIGHT for full restrictions
5 //* https://github.com/idaholab/moose/blob/master/COPYRIGHT
6 //*
7 //* Licensed under LGPL 2.1, please see LICENSE for details
8 //* https://www.gnu.org/licenses/lgpl-2.1.html
9 
10 #pragma once
11 
12 #include "MooseTypes.h"
13 #include "FaceInfo.h"
14 #include "MooseFunctorArguments.h"
15 #include "libmesh/elem.h"
16 
22 {
23 public:
24  virtual ~FaceArgInterface() = default;
25  virtual bool hasFaceSide(const FaceInfo & fi, const bool fi_elem_side) const = 0;
26 };
27 
33 {
34 public:
44  Moose::FaceArg makeFace(const FaceInfo & fi,
45  const Moose::FV::LimiterType limiter_type,
46  const bool elem_is_upwind,
47  const bool correct_skewness = false,
48  const Moose::StateArg * state_limiter = nullptr) const;
49 
58  Moose::FaceArg makeCDFace(const FaceInfo & fi, const bool correct_skewness = false) const;
59 };
60 
61 inline Moose::FaceArg
62 FaceArgProducerInterface::makeCDFace(const FaceInfo & fi, const bool correct_skewness) const
63 {
64  return makeFace(fi, Moose::FV::LimiterType::CentralDifference, true, correct_skewness);
65 }
virtual ~FaceArgInterface()=default
This data structure is used to store geometric and variable related metadata about each cell face in ...
Definition: FaceInfo.h:36
A structure defining a "face" evaluation calling argument for Moose functors.
An interface for producers of functor face arguments, e.g.
LimiterType
Definition: Limiter.h:26
State argument for evaluating functors.
virtual bool hasFaceSide(const FaceInfo &fi, const bool fi_elem_side) const =0
Moose::FaceArg makeCDFace(const FaceInfo &fi, const bool correct_skewness=false) const
Make a functor face argument with a central differencing limiter, e.g.
A base class interface for both producers and consumers 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.