www.mooseframework.org
ElementUserObject.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 // MOOSE includes
13 #include "UserObject.h"
14 #include "BlockRestrictable.h"
16 #include "UserObjectInterface.h"
17 #include "Coupleable.h"
19 #include "TransientInterface.h"
20 #include "PostprocessorInterface.h"
21 #include "RandomInterface.h"
22 
23 // Forward Declarations
24 class ElementUserObject;
25 
26 namespace libMesh
27 {
28 class Elem;
29 class QBase;
30 }
31 
32 template <>
34 
36  public BlockRestrictable,
38  public UserObjectInterface,
39  public Coupleable,
41  public TransientInterface,
42  protected PostprocessorInterface,
43  public RandomInterface
44 {
45 public:
47 
48 protected:
50 
52  const Elem * const & _current_elem;
53 
55  const Real & _current_elem_volume;
56 
58  const QBase * const & _qrule;
61 };
Interface for objects that need parallel consistent random numbers without patterns over the course o...
InputParameters validParams< ElementUserObject >()
const MooseArray< Point > & _q_point
const MooseArray< Real > & _coord
The main MOOSE class responsible for handling user-defined parameters in almost every MOOSE system...
The following methods are specializations for using the libMesh::Parallel::packed_range_* routines fo...
const Real & _current_elem_volume
The current element volume (available during execute())
Interface for objects that needs transient capabilities.
const InputParameters & parameters() const
Get the parameters of the object.
Definition: MooseObject.h:65
MooseMesh wraps a libMesh::Mesh object and enhances its capabilities by caching additional data and s...
Definition: MooseMesh.h:74
Interface for objects that need to use UserObjects.
Interface for objects that needs coupling capabilities.
Definition: Coupleable.h:62
const QBase *const & _qrule
const Elem *const & _current_elem
The current element pointer (available during execute())
An interface for accessing Materials.
const MooseArray< Real > & _JxW
An interface that restricts an object to subdomains via the &#39;blocks&#39; input parameter.
ElementUserObject(const InputParameters &parameters)
Base class for user-specific data.
Definition: UserObject.h:37
Interface class for classes which interact with Postprocessors.