www.mooseframework.org
InternalSideUserObject.h
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://www.mooseframework.org
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 #include "UserObject.h"
13 #include "BlockRestrictable.h"
14 #include "NeighborCoupleable.h"
17 #include "TransientInterface.h"
18 #include "ElementIDInterface.h"
19 
25  public BlockRestrictable,
27  public NeighborCoupleable,
29  public TransientInterface,
30  public ElementIDInterface
31 {
32 public:
34 
36 
37 protected:
39 
41  const QBase * const & _qrule;
45 
47  const Elem * const & _current_elem;
48 
51 
53  const unsigned int & _current_side;
54 
55  const Elem * const & _current_side_elem;
57 
59  const Elem * const & _neighbor_elem;
60 
63 
65  const Real & getNeighborElemVolume();
66 
68  std::vector<const FaceInfo *> _face_infos;
69 
77  void getFaceInfos();
78 };
const unsigned int & _current_side
current side of the current element
const Real & getNeighborElemVolume()
The volume (or length) of the current neighbor.
void getFaceInfos()
Computes the local FaceInfo(s) to use in functor arguments and interpolations.
const Real & _current_neighbor_volume
the neighboring element&#39;s volume
static InputParameters validParams()
const MooseArray< Real > & _JxW
The main MOOSE class responsible for handling user-defined parameters in almost every MOOSE system...
Interface for objects that needs transient capabilities.
const Elem *const & _neighbor_elem
The neighboring element.
MooseMesh wraps a libMesh::Mesh object and enhances its capabilities by caching additional data and s...
Definition: MooseMesh.h:88
const Real & _current_elem_volume
the volume of the current element
InternalSideUserObject(const InputParameters &parameters)
Base class for user objects executed on all element sides internal to one or more blocks...
const Elem *const & _current_elem
pointer to the current element object
const QBase *const & _qrule
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
const MooseArray< Point > & _q_point
std::vector< const FaceInfo * > _face_infos
Holds the FaceInfos to loop on to consider all active neighbors of an element on a given side...
An interface that restricts an object to subdomains via the &#39;blocks&#39; input parameter.
const MooseArray< Real > & _coord
This interface is designed for DGKernel, InternalSideUserObject, InterfaceUserObject, where material properties on a side of both its primary side (face) and its secondary side (neighbor) all required.
const InputParameters & parameters() const
Get the parameters of the object.
const Elem *const & _current_side_elem
Base class for user-specific data.
Definition: UserObject.h:39
const MooseArray< Point > & _normals
Enhances Coupleable interface to also couple the values from neighbor elements.