17#include <unordered_set>
38 using GradientContainer = std::vector<std::unique_ptr<libMesh::NumericVector<libMesh::Number>>>;
58 const std::unordered_set<unsigned int> & variable_numbers)
const;
74 const std::unordered_set<unsigned int> & variable_numbers)
const = 0;
Base class for linear finite-volume cell-gradient methods.
static InputParameters validParams()
Input parameters shared by all the gradient methods.
Moose::FV::GradientLimiterType limiterType() const
Limiter selected for this method.
const Moose::FV::GradientLimiterType _limiter_type
Limiter applied after method-specific pre-limiter gradient computation.
std::vector< std::unique_ptr< libMesh::NumericVector< libMesh::Number > > > GradientContainer
One vector per spatial component of the cell-centered gradient.
void computeGradient(SystemBase &system, GradientContainer &gradient, const std::unordered_set< unsigned int > &variable_numbers) const
Compute the final gradient values for the requested variables.
virtual void computeGradientWithoutLimiter(SystemBase &system, GradientContainer &gradient, const std::unordered_set< unsigned int > &variable_numbers) const =0
Compute the method-specific gradient before this base class applies any limiter.
Every object that can be built by the factory should be derived from this class.
Base class for a system (of equations)
GradientLimiterType
Cell-gradient limiter variants used for MUSCL-style reconstructions.
The following methods are specializations for using the libMesh::Parallel::packed_range_* routines fo...