www.mooseframework.org
AddSideSetsBase.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 #include "MeshModifier.h"
13 
14 namespace libMesh
15 {
16 template <typename>
17 class FEGenericBase;
18 typedef FEGenericBase<Real> FEBase;
19 }
20 
21 // Forward declarations
22 class AddSideSetsBase;
23 
24 // libMesh forward declarations
25 namespace libMesh
26 {
27 class QGauss;
28 }
29 
30 template <>
32 
34 {
35 public:
37  virtual ~AddSideSetsBase(); // dtor required for unique_ptr with forward declarations
38 
39 protected:
45  void setup();
46 
51  void finalize();
52 
57  void flood(const Elem * elem, Point normal, BoundaryID side_id);
58 
60 
61  Real _variance;
63 
64  std::unique_ptr<FEBase> _fe_face;
65  std::unique_ptr<QGauss> _qface;
66  std::map<BoundaryID, std::set<const Elem *>> _visited;
67 };
68 
std::unique_ptr< FEBase > _fe_face
MeshModifiers are objects that can modify or add to an existing mesh.
Definition: MeshModifier.h:25
The main MOOSE class responsible for handling user-defined parameters in almost every MOOSE system...
BoundaryID getNextBoundaryID() const
AddSideSetsBase(const InputParameters &parameters)
The following methods are specializations for using the libMesh::Parallel::packed_range_* routines fo...
void finalize()
This method finalizes the object, setting names back in the boundary_info object and releasing memory...
const InputParameters & parameters() const
Get the parameters of the object.
Definition: MooseObject.h:65
boundary_id_type BoundaryID
virtual ~AddSideSetsBase()
FEGenericBase< Real > FEBase
Definition: Assembly.h:34
InputParameters validParams< AddSideSetsBase >()
std::map< BoundaryID, std::set< const Elem * > > _visited
void flood(const Elem *elem, Point normal, BoundaryID side_id)
This method implements a recursive flood routine to paint a sideset of mesh to neighboring faces give...
std::unique_ptr< QGauss > _qface
void setup()
This method is used to construct the FE object so we can compute normals of faces.