www.mooseframework.org
AddSideSetsBase.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 ADDSIDESETSBASE_H
16 #define ADDSIDESETSBASE_H
17 
18 #include "MeshModifier.h"
19 
20 #include "libmesh/fe_base.h"
21 
22 // Forward declarations
23 class AddSideSetsBase;
24 
25 // libMesh forward declarations
26 namespace libMesh
27 {
28 class QGauss;
29 }
30 
31 template <>
33 
35 {
36 public:
37  AddSideSetsBase(const InputParameters & parameters);
38  virtual ~AddSideSetsBase(); // dtor required for unique_ptr with forward declarations
39 
40 protected:
46  void setup();
47 
52  void finalize();
53 
58  void flood(const Elem * elem, Point normal, BoundaryID side_id);
59 
60  BoundaryID getNextBoundaryID() const;
61 
62  Real _variance;
64 
65  std::unique_ptr<FEBase> _fe_face;
66  std::unique_ptr<QGauss> _qface;
67  std::map<BoundaryID, std::set<const Elem *>> _visited;
68 };
69 
70 #endif /* ADDSIDESETSBASE_H */
std::unique_ptr< FEBase > _fe_face
MeshModifiers are objects that can modify or add to an existing mesh.
Definition: MeshModifier.h:31
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...
InputParameters validParams< AddSideSetsBase >()
std::map< BoundaryID, std::set< const Elem * > > _visited
std::unique_ptr< QGauss > _qface
boundary_id_type BoundaryID
Definition: MooseTypes.h:75