www.mooseframework.org
NodalUserObject.h
Go to the documentation of this file.
1 /****************************************************************/
2 /* DO NOT MODIFY THIS HEADER */
3 /* MOOSE - Multiphysics Object Oriented Simulation Environment */
4 /* */
5 /* (c) 2010 Battelle Energy Alliance, LLC */
6 /* ALL RIGHTS RESERVED */
7 /* */
8 /* Prepared by Battelle Energy Alliance, LLC */
9 /* Under Contract No. DE-AC07-05ID14517 */
10 /* With the U. S. Department of Energy */
11 /* */
12 /* See COPYRIGHT for full restrictions */
13 /****************************************************************/
14 
15 #ifndef NODALUSEROBJECT_H
16 #define NODALUSEROBJECT_H
17 
18 // MOOSE includes
19 #include "UserObject.h"
20 #include "BlockRestrictable.h"
21 #include "BoundaryRestrictable.h"
22 #include "UserObjectInterface.h"
23 #include "Coupleable.h"
25 #include "TransientInterface.h"
26 #include "PostprocessorInterface.h"
27 #include "RandomInterface.h"
28 #include "ZeroInterface.h"
29 
30 // Forward Declarations
31 class NodalUserObject;
32 
33 template <>
35 
40 class NodalUserObject : public UserObject,
41  public BlockRestrictable,
42  public BoundaryRestrictable,
43  public UserObjectInterface,
44  public Coupleable,
46  public TransientInterface,
47  protected PostprocessorInterface,
48  public RandomInterface,
49  public ZeroInterface
50 {
51 public:
53 
54  virtual void subdomainSetup() override /*final*/;
55 
57 
58 protected:
61 
63  const unsigned int _qp;
64 
66  const Node *& _current_node;
67 
68  // Flag for enable/disabling multiple execute calls on nodes that share block ids
69  const bool & _unique_node_execute;
70 };
71 
72 #endif
Interface for objects that need parallel consistent random numbers without patterns over the course o...
const Node *& _current_node
Reference to current node pointer.
NodalUserObject(const InputParameters &parameters)
The main MOOSE class responsible for handling user-defined parameters in almost every MOOSE system...
/class BoundaryRestrictable /brief Provides functionality for limiting the object to certain boundary...
A user object that runs over all the nodes and does an aggregation step to compute a single value...
Interface for objects that needs transient capabilities.
MooseMesh & _mesh
The mesh that is being iterated over.
MooseMesh wraps a libMesh::Mesh object and enhances its capabilities by caching additional data and s...
Definition: MooseMesh.h:74
bool isUniqueNodeExecute()
Interface for objects that need to use UserObjects.
const unsigned int _qp
Quadrature point index.
Interface for objects that needs coupling capabilities.
Definition: Coupleable.h:35
Interface to bring zero values inside objects.
Definition: ZeroInterface.h:35
virtual void subdomainSetup() override
Gets called when the subdomain changes (i.e.
An interface that restricts an object to subdomains via the &#39;blocks&#39; input parameter.
const InputParameters & parameters() const
Get the parameters of the object.
Definition: MooseObject.h:53
InputParameters validParams< NodalUserObject >()
const bool & _unique_node_execute
Base class for user-specific data.
Definition: UserObject.h:42
Interface class for classes which interact with Postprocessors.