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
15
21{
22public:
24
26
27 virtual void initialize();
28 virtual void finalize();
29
30 virtual void computeElement();
31
33 virtual const std::vector<RealGradient> & getElementSlope(dof_id_type elementid) const;
34
36 virtual std::vector<RealGradient> limitElementSlope() const = 0;
37
38protected:
39 virtual void serialize(std::string & serialized_buffer);
40 virtual void deserialize(std::vector<std::string> & serialized_buffers);
41
43 std::map<dof_id_type, std::vector<RealGradient>> & _lslope;
44
46 const bool _include_bc;
47
50 const libMesh::QBase * const & _qrule_face;
53
55 const unsigned int & _side;
56
57 const Elem * const & _side_elem;
58 const Real & _side_volume;
59
61 const Elem * const & _neighbor_elem;
62
63private:
64 static Threads::spin_mutex _mutex;
65};
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