17#include "libmesh/elem_range.h"
18#include "libmesh/threads.h"
19#include "libmesh/system.h"
21#include <unordered_set>
51 std::vector<std::unique_ptr<NumericVector<Number>>> & temporary_gradient,
52 const std::unordered_set<unsigned int> & gradient_variables,
62 using FaceInfoRange = StoredRange<MooseMesh::const_face_info_iterator, const FaceInfo *>;
The gradient in a volume using Green Gauss theorem and a cell-centered finite-volume approximation ca...
const unsigned int _system_number
Global system number (the number of this system in the libmesh equation system)
const unsigned int _dim
The dimension of the domain.
const std::unordered_set< unsigned int > & _gradient_variables
Indices of the variables this producer should compute gradients for.
void join(const ComputeLinearFVGreenGaussGradientFaceThread &y)
Join threads at the end of the execution.
std::vector< std::unique_ptr< NumericVector< Number > > > & _temporary_gradient
Cache for the temporary gradient being built.
void operator()(const FaceInfoRange &range)
Operator which is used to execute the thread over a certain iterator range.
MooseLinearVariableFV< Real > * _current_var
Pointer to the current variable.
StoredRange< MooseMesh::const_face_info_iterator, const FaceInfo * > FaceInfoRange
FEProblemBase & _fe_problem
Reference to the problem.
const FVGreenGaussGradient & _gradient_method
Method providing the two Green-Gauss values on an internal face.
SystemBase & _system
The system wrapper this thread operates on.
const libMesh::System & _libmesh_system
Reference to the libMesh system backing the wrapper system.
Specialization of SubProblem for solving nonlinear equations plus auxiliary equations.
Green-Gauss cell-centered gradient method for linear finite-volume variables.
This class provides variable solution interface for linear finite volume problems.
Base class for a system (of equations)