https://mooseframework.inl.gov
InternalSideIndicatorBase.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 
12 // local includes
13 #include "Indicator.h"
14 #include "NeighborCoupleable.h"
15 #include "ScalarCoupleable.h"
16 
18  public NeighborCoupleable,
19  public ScalarCoupleable
20 {
21 public:
23 
25 
29  virtual void computeIndicator() override;
30 
31  virtual void finalize() override;
32 
33 protected:
37  virtual bool isVarFV() const = 0;
38 
40 
42  const Elem * const & _current_elem;
44  const Elem * const & _neighbor_elem;
45 
47  const unsigned int & _current_side;
49  const Elem * const & _current_side_elem;
50 
54  unsigned int _qp;
56  const QBase * const & _qrule;
63 
66 
70 
73 
80  virtual Real computeQpIntegral() = 0;
81 
82 public:
83  // boundary id used for internal edges (all DG kernels lives on this boundary id -- a made-up
84  // number)
85  static const BoundaryID InternalBndId;
86 };
const MooseArray< Real > & _coord
The coordinate transformation.
The main MOOSE class responsible for handling user-defined parameters in almost every MOOSE system...
const QBase *const & _qrule
The quadrature rule being used.
bool _scale_by_flux_faces
Whether to scale the indicator value by the number of flux faces in an attempt to avoid penalizing in...
virtual void computeIndicator() override
Computes the indicator for the current side.
InternalSideIndicatorBase(const InputParameters &parameters)
boundary_id_type BoundaryID
static InputParameters validParams()
const Elem *const & _current_side_elem
Current side element.
const MooseArray< Point > & _q_point
The spatial location of the current quadrature point.
BoundaryID _boundary_id
The bounday (if any) that this indicator is operating on.
unsigned int _qp
The current quadrature point.
static const BoundaryID InternalBndId
const Elem *const & _neighbor_elem
The neighbor element across from the current side.
virtual void finalize() override
Can be overridden to do a final postprocessing of the indicator field.
const Elem *const & _current_elem
Current element under consideration.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
CoordinateSystemType
Definition: MooseTypes.h:809
MooseVariableFE< Real > & _field_var
virtual Real computeQpIntegral()=0
The virtual function you will want to override to compute error contributions.
virtual bool isVarFV() const =0
Whether or not the derived classes are acting on a finite volume variable or not. ...
Interface for objects that needs scalar coupling capabilities.
const MooseArray< Real > & _JxW
The quadrature weight multiplied by the element Jacobian.
const InputParameters & parameters() const
Get the parameters of the object.
const Moose::CoordinateSystemType & _coord_sys
Coordinate system.
const MooseArray< Point > & _normals
Normal vectors at the quadrature points.
const unsigned int & _current_side
Current side.
Enhances Coupleable interface to also couple the values from neighbor elements.