https://mooseframework.inl.gov
RefineSidesetGenerator.h
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://mooseframework.inl.gov
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 "MeshGenerator.h"
13 
18 {
19 public:
21 
23 
24 protected:
25  virtual std::unique_ptr<MeshBase> generate() override;
26 
27 private:
29  std::unique_ptr<MeshBase> & _input;
30 
32  const std::vector<BoundaryName> _boundaries;
33 
35  const std::vector<int> _refinement;
36 
39 
42 
54  std::unique_ptr<MeshBase> recursive_refine(const std::vector<boundary_id_type> boundary_ids,
55  std::unique_ptr<MeshBase> & mesh,
56  const std::vector<int> refinement,
57  const int max,
58  int ref_step = 0);
59 };
static InputParameters validParams()
The main MOOSE class responsible for handling user-defined parameters in almost every MOOSE system...
MeshGenerator for refining one or more sidesets.
const std::vector< int > _refinement
The amount of times to refine each boundary, corresponding to their index in &#39;boundaries&#39;.
auto max(const L &left, const R &right)
const bool _enable_neighbor_refinement
Toggles whether neighboring level one elements should be refined or not. Defaults to true...
std::unique_ptr< MeshBase > recursive_refine(const std::vector< boundary_id_type > boundary_ids, std::unique_ptr< MeshBase > &mesh, const std::vector< int > refinement, const int max, int ref_step=0)
The actual function refining the boundaries.
const MultiMooseEnum _boundary_side
Side(s) of the boundary/boundaries to be refined. Can be either "primary"(just the boundary elements)...
virtual std::unique_ptr< MeshBase > generate() override
Generate / modify the mesh.
const InputParameters & parameters() const
Get the parameters of the object.
This is a "smart" enum class intended to replace many of the shortcomings in the C++ enum type...
RefineSidesetGenerator(const InputParameters &parameters)
MeshGenerators are objects that can modify or add to an existing mesh.
Definition: MeshGenerator.h:32
const std::vector< BoundaryName > _boundaries
List of boundarie(s) to refine.
std::unique_ptr< MeshBase > & _input
Input mesh to refine.