https://mooseframework.inl.gov
FVBoundaryCondition.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 // MOOSE
13 #include "MooseObject.h"
14 #include "SetupInterface.h"
15 #include "ParallelUniqueId.h"
16 #include "FunctionInterface.h"
17 #include "DistributionInterface.h"
18 #include "UserObjectInterface.h"
19 #include "TransientInterface.h"
20 #include "PostprocessorInterface.h"
24 #include "MeshChangedInterface.h"
25 #include "TaggingInterface.h"
27 #include "ADFunctorInterface.h"
28 #include "FaceArgInterface.h"
29 #include "MooseVariableInterface.h"
30 
31 // Forward declarations
32 template <typename>
36 class MooseMesh;
37 class Problem;
38 class SubProblem;
39 class SystemBase;
40 class Assembly;
41 class FEProblemBase;
42 
48  public SetupInterface,
49  public FunctionInterface,
50  public DistributionInterface,
51  public UserObjectInterface,
52  public TransientInterface,
56  public MeshChangedInterface,
57  public TaggingInterface,
58  public MooseVariableInterface<Real>,
60  public ADFunctorInterface,
62 {
63 public:
70 
72 
77  const SubProblem & subProblem() const { return _subproblem; }
78 
79  const MooseVariableFV<Real> & variable() const { return _var; }
80 
81  bool hasFaceSide(const FaceInfo & fi, bool fi_elem_side) const override;
82 
83 protected:
94  const FaceInfo * fi = nullptr,
96  bool correct_skewness = false,
97  const Moose::StateArg * state_limiter = nullptr) const;
98 
100 
103 
106 
109 
112 
115 
118 
120  const FaceInfo * _face_info = nullptr;
121 };
A class for requiring an object to be boundary restricted.
const FaceInfo * _face_info
Holds information for the face we are currently examining.
Keeps track of stuff related to assembling.
Definition: Assembly.h:101
Class for stuff related to variables.
Definition: Adaptivity.h:31
SystemBase & _sys
Reference to SystemBase.
Base class for creating new types of boundary conditions.
MooseVariableFE< VectorValue< Real > > VectorMooseVariable
Assembly & _assembly
Reference to assembly.
Class that hold the whole problem being solved.
Definition: Problem.h:19
The main MOOSE class responsible for handling user-defined parameters in almost every MOOSE system...
Moose::FaceArg singleSidedFaceArg(const FaceInfo *fi=nullptr, Moose::FV::LimiterType limiter_type=Moose::FV::LimiterType::CentralDifference, bool correct_skewness=false, const Moose::StateArg *state_limiter=nullptr) const
Determine the single sided face argument when evaluating a functor on a face.
MooseVariableFV< Real > & _var
Base class for a system (of equations)
Definition: SystemBase.h:84
Specialization of SubProblem for solving nonlinear equations plus auxiliary equations.
An interface for accessing Moose::Functors for systems that care about automatic differentiation, e.g.
Interface for objects that needs transient capabilities.
This data structure is used to store geometric and variable related metadata about each cell face in ...
Definition: FaceInfo.h:36
Interface for notifications that the mesh has changed.
A structure defining a "face" evaluation calling argument for Moose functors.
Every object that can be built by the factory should be derived from this class.
Definition: MooseObject.h:28
bool hasFaceSide(const FaceInfo &fi, bool fi_elem_side) const override
An interface for producers of functor face arguments, e.g.
SubProblem & _subproblem
Reference to SubProblem.
Interface for objects that need to use distributions.
MooseMesh wraps a libMesh::Mesh object and enhances its capabilities by caching additional data and s...
Definition: MooseMesh.h:88
LimiterType
Definition: Limiter.h:26
FVBoundaryCondition(const InputParameters &parameters)
Class constructor.
MooseVariableFE< Real > MooseVariable
Interface for objects that need to use UserObjects.
FEProblemBase & _fv_problem
Reference to the ruling finite volume problem.
THREAD_ID _tid
Thread id.
Generic class for solving transient nonlinear problems.
Definition: SubProblem.h:78
Interface for objects that need to get values of MooseVariables.
const InputParameters & parameters() const
Get the parameters of the object.
State argument for evaluating functors.
static InputParameters validParams()
const SubProblem & subProblem() const
Get a reference to the subproblem.
Interface for objects that need to use functions.
MooseMesh & _mesh
Mesh this BC is defined on.
Interface class for classes which interact with Postprocessors.
unsigned int THREAD_ID
Definition: MooseTypes.h:209
const MooseVariableFV< Real > & variable() const