https://mooseframework.inl.gov
Loading...
Searching...
No Matches
SlopeLimitingBase.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
13
19{
20public:
22
24
25 virtual void initialize();
26 virtual void finalize();
27
28 virtual void computeElement();
29
31 virtual const std::vector<RealGradient> & getElementSlope(dof_id_type elementid) const;
32
34 virtual std::vector<RealGradient> limitElementSlope() const = 0;
35
36protected:
37 virtual void serialize(std::string & serialized_buffer);
38 virtual void deserialize(std::vector<std::string> & serialized_buffers);
39
41 std::map<dof_id_type, std::vector<RealGradient>> & _lslope;
42
44 const bool _include_bc;
45
48 const libMesh::QBase * const & _qrule_face;
51
53 const unsigned int & _side;
54
55 const Elem * const & _side_elem;
56 const Real & _side_volume;
57
59 const Elem * const & _neighbor_elem;
60
61private:
62 static Threads::spin_mutex _mutex;
63};
A base class that loops over elements and do things.
const InputParameters & parameters() const
Base class for slope limiting to limit the slopes of cell average variables.
const Real & _side_volume
virtual void initialize()
virtual std::vector< RealGradient > limitElementSlope() const =0
compute the slope of the cell
std::map< dof_id_type, std::vector< RealGradient > > & _lslope
store the updated slopes into this map indexed by element ID
const MooseArray< Point > & _normals_face
virtual void serialize(std::string &serialized_buffer)
virtual const std::vector< RealGradient > & getElementSlope(dof_id_type elementid) const
accessor function call
virtual void computeElement()
static Threads::spin_mutex _mutex
virtual void deserialize(std::vector< std::string > &serialized_buffers)
const libMesh::QBase *const & _qrule_face
const Elem *const & _neighbor_elem
the neighboring element
const MooseArray< Point > & _q_point_face
required data for face assembly
static InputParameters validParams()
const bool _include_bc
option whether to include BCs
const unsigned int & _side
current side of the current element
virtual void finalize()
const MooseArray< Real > & _JxW_face
const Elem *const & _side_elem