https://mooseframework.inl.gov
Loading...
Searching...
No Matches
INSFVVariable.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 "MooseVariableFV.h"
13
14class InputParameters;
16
18{
19public:
20 INSFVVariable(const InputParameters & params);
21
23
24 // The INSFV system relies on on-the-fly functor evaluation and does not need any pre-init'd data
25 void computeFaceValues(const FaceInfo &) override;
26 void computeElemValues() override;
27 void computeElemValuesFace() override;
28 void computeNeighborValuesFace() override;
29 void computeNeighborValues() override;
30 void requireQpComputations() const override { _qp_calculations = true; }
31 bool supportsQpBasedLoops() const override { return _qp_calculations; }
32 bool supportsGeometricInfoBasedLoops() const override { return true; }
33 virtual void initialSetup() override;
34 virtual void timestepSetup() override;
35 virtual void meshChanged() override;
36
37 // If the given boundary is a hydraulic separator bouundary for this variable
38 bool isSeparatorBoundary(const FaceInfo & fi) const;
39
41 const Elem * elem,
42 const Moose::StateArg & time) const override;
43
44protected:
48 bool isFullyDevelopedFlowFace(const FaceInfo & fi) const;
49
54
57 std::unordered_map<BoundaryID, const INSFVHydraulicSeparatorInterface *>
59
60private:
64 mutable bool _qp_calculations;
65};
66
67inline void
73
74inline void
82
83inline void
89
90inline void
96
97inline void
A base class which serves as a tag for hydraulic separators.
virtual void initialSetup() override
virtual void timestepSetup() override
void computeNeighborValues() override
bool _qp_calculations
Whether to pre-initialize variable data for use in traditional MOOSE quadrature point based objects.
bool supportsQpBasedLoops() const override
void computeNeighborValuesFace() override
bool isExtrapolatedBoundaryFace(const FaceInfo &fi, const Elem *elem, const Moose::StateArg &time) const override
virtual void meshChanged() override
void requireQpComputations() const override
void cacheSeparatorBoundaries()
Caches the separator boundaries.
void computeElemValues() override
std::unordered_map< BoundaryID, const INSFVHydraulicSeparatorInterface * > _boundary_id_to_separator
A container for quick access of hydraulic separator BCs associated with this variable.
void computeFaceValues(const FaceInfo &) override
void computeElemValuesFace() override
bool supportsGeometricInfoBasedLoops() const override
static InputParameters validParams()
bool isSeparatorBoundary(const FaceInfo &fi) const
bool isFullyDevelopedFlowFace(const FaceInfo &fi) const
Returns whether the passed-in FaceInfo corresponds to a fully-developed flow face.
virtual void computeNeighborValuesFace() override
std::unique_ptr< MooseVariableDataFV< OutputType > > _element_data
virtual void computeNeighborValues() override
virtual void computeElemValuesFace() override
virtual void computeFaceValues(const FaceInfo &fi) override
virtual void computeElemValues() override