https://mooseframework.inl.gov
Loading...
Searching...
No Matches
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"
18#include "UserObjectInterface.h"
19#include "TransientInterface.h"
25#include "TaggingInterface.h"
27#include "ADFunctorInterface.h"
28#include "FaceArgInterface.h"
30
31// Forward declarations
32template <typename>
33class MooseVariableFE;
36class MooseMesh;
37class Problem;
38class SubProblem;
39class SystemBase;
40class Assembly;
41class FEProblemBase;
42
48 public SetupInterface,
49 public FunctionInterface,
52 public TransientInterface,
57 public TaggingInterface,
58 public MooseVariableInterface<Real>,
60 public ADFunctorInterface,
62{
63public:
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
83protected:
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};
MooseVariableFE< Real > MooseVariable
MooseVariableFE< VectorValue< Real > > VectorMooseVariable
unsigned int THREAD_ID
Definition MooseTypes.h:237
An interface for accessing Moose::Functors for systems that care about automatic differentiation,...
Keeps track of stuff related to assembling.
Definition Assembly.h:110
A class for requiring an object to be boundary restricted.
Interface for objects that need to use distributions.
Specialization of SubProblem for solving nonlinear equations plus auxiliary equations.
Base class for creating new types of boundary conditions.
static InputParameters validParams()
FEProblemBase & _fv_problem
Reference to the ruling finite volume problem.
THREAD_ID _tid
Thread id.
SubProblem & _subproblem
Reference to SubProblem.
SystemBase & _sys
Reference to SystemBase.
MooseVariableFV< Real > & _var
const FaceInfo * _face_info
Holds information for the face we are currently examining.
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.
Assembly & _assembly
Reference to assembly.
const SubProblem & subProblem() const
Get a reference to the subproblem.
bool hasFaceSide(const FaceInfo &fi, bool fi_elem_side) const override
MooseMesh & _mesh
Mesh this BC is defined on.
const MooseVariableFV< Real > & variable() const
An interface for producers of functor face arguments, e.g.
This data structure is used to store geometric and variable related metadata about each cell face in ...
Definition FaceInfo.h:38
Interface for objects that need to use functions.
The main MOOSE class responsible for handling user-defined parameters in almost every MOOSE system.
Interface for notifications that the mesh has changed.
const InputParameters & parameters() const
Get the parameters of the object.
Definition MooseBase.h:131
MooseMesh wraps a libMesh::Mesh object and enhances its capabilities by caching additional data and s...
Definition MooseMesh.h:95
Every object that can be built by the factory should be derived from this class.
Definition MooseObject.h:31
Class for stuff related to variables.
This class provides variable solution values for other classes/objects to bind to when looping over f...
Interface for objects that need to get values of MooseVariables.
Interface class for classes which interact with Postprocessors.
Class that hold the whole problem being solved.
Definition Problem.h:20
Generic class for solving transient nonlinear problems.
Definition SubProblem.h:79
Base class for a system (of equations)
Definition SystemBase.h:87
Interface for objects that needs transient capabilities.
Interface for objects that need to use UserObjects.
A structure defining a "face" evaluation calling argument for Moose functors.
State argument for evaluating functors.