17#include <unordered_set>
20#include "libmesh/elem_range.h"
21#include "libmesh/threads.h"
22#include "libmesh/system.h"
46 std::vector<std::unique_ptr<NumericVector<Number>>> & gradient,
48 const std::unordered_set<unsigned int> & requested_variables);
60 using ElemInfoRange = StoredRange<MooseMesh::const_elem_info_iterator, const ElemInfo *>;
86 std::vector<std::unique_ptr<NumericVector<Number>>> &
_gradient;
Compute limited cell gradients for linear FV variables.
const std::unordered_set< unsigned int > & _requested_variables
Variable numbers that requested the current limiter.
const unsigned int _system_number
Global system number in the libMesh equation system.
std::vector< std::unique_ptr< NumericVector< Number > > > & _gradient
Gradient storage limited in place.
MooseLinearVariableFV< Real > * _current_var
Pointer to the current variable we are operating on.
SystemBase & _system
The system wrapper this thread operates on.
const bool _owns_gradient_data
True only for the original thread object that acquired and must restore the arrays.
FEProblemBase & _fe_problem
Reference to the problem.
StoredRange< MooseMesh::const_elem_info_iterator, const ElemInfo * > ElemInfoRange
const libMesh::System & _libmesh_system
Reference to the libMesh system backing the wrapper system.
std::vector< Number * > _gradient_data
Writable local arrays, one per gradient component.
const Moose::FV::GradientLimiterType _limiter_type
The type of limiter requested.
~ComputeLinearFVLimitedGradientThread()
void join(const ComputeLinearFVLimitedGradientThread &y)
Join threads at the end of the execution.
const unsigned int _dim
The dimension of the domain.
void operator()(const ElemInfoRange &range)
Apply the limiter over the provided element range.
Specialization of SubProblem for solving nonlinear equations plus auxiliary equations.
This class provides variable solution interface for linear finite volume problems.
Base class for a system (of equations)
GradientLimiterType
Cell-gradient limiter variants used for MUSCL-style reconstructions.