www.mooseframework.org
NodalUserObject.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"
15 #include "BoundaryRestrictable.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 NodalUserObject;
25 
26 template <>
28 
33 class NodalUserObject : public UserObject,
34  public BlockRestrictable,
35  public BoundaryRestrictable,
36  public UserObjectInterface,
37  public Coupleable,
39  public TransientInterface,
40  protected PostprocessorInterface,
41  public RandomInterface
42 {
43 public:
45 
46  virtual void subdomainSetup() override /*final*/;
47 
49 
50 protected:
53 
55  const unsigned int _qp;
56 
58  const Node * const & _current_node;
59 
60  // Flag for enable/disabling multiple execute calls on nodes that share block ids
61  const bool & _unique_node_execute;
62 };
63 
Interface for objects that need parallel consistent random numbers without patterns over the course o...
NodalUserObject(const InputParameters &parameters)
const Node *const & _current_node
Reference to current node pointer.
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.
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
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:62
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.
InputParameters validParams< NodalUserObject >()
const bool & _unique_node_execute
Base class for user-specific data.
Definition: UserObject.h:37
Interface class for classes which interact with Postprocessors.