www.mooseframework.org
NodalNormalsPreprocessor.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 "ElementUserObject.h"
14 #include "BoundaryRestrictable.h"
15 
16 #include "libmesh/fe_type.h"
17 
18 #include <mutex>
19 
20 class AuxiliarySystem;
21 
27 {
28 public:
30 
32 
33  virtual void initialize() override;
34  virtual void finalize() override;
35  virtual void execute() override;
36  virtual void threadJoin(const UserObject & /*uo*/) override {}
37 
51 protected:
53  FEType _fe_type;
55  std::vector<BoundaryID> _boundaries;
57 
59 
60 private:
61  static std::mutex _nodal_normals_mutex;
62 
63  // For access to mutex
64  friend class NodalNormalsCorner;
65  friend class NodalNormalsEvaluator;
66 };
std::vector< BoundaryID > _boundaries
static std::mutex _nodal_normals_mutex
An ElementUserObject that prepares MOOSE for computing nodal normals.
The main MOOSE class responsible for handling user-defined parameters in almost every MOOSE system...
virtual void finalize() override
Finalize.
virtual void initialize() override
Called before execute() is ever called so that data can be cleared.
const VariablePhiGradient & _grad_phi
boundary_id_type BoundaryID
AuxiliarySystem & _aux
Forces object to be stored as a block object.
NodalNormalsPreprocessor(const InputParameters &parameters)
virtual void execute() override
Execute method.
forward declarations
Definition: MooseArray.h:17
Works on top of NodalNormalsPreprocessor.
virtual void threadJoin(const UserObject &) override
Must override.
const InputParameters & parameters() const
Get the parameters of the object.
static InputParameters validParams()
A system that holds auxiliary variables.
Base class for user-specific data.
Definition: UserObject.h:39