https://mooseframework.inl.gov
RefineBlockGenerator.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<SubdomainName> _block;
33 
35  const std::vector<unsigned int> _refinement;
36 
39 
42 
54  virtual std::unique_ptr<MeshBase> recursive_refine(const std::vector<subdomain_id_type> block_ids,
55  std::unique_ptr<MeshBase> & mesh,
56  const std::vector<unsigned int> refinement,
57  const unsigned int max,
58  unsigned int ref_step = 0);
59 };
The main MOOSE class responsible for handling user-defined parameters in almost every MOOSE system...
virtual std::unique_ptr< MeshBase > recursive_refine(const std::vector< subdomain_id_type > block_ids, std::unique_ptr< MeshBase > &mesh, const std::vector< unsigned int > refinement, const unsigned int max, unsigned int ref_step=0)
The actual function refining the blocks.
virtual std::unique_ptr< MeshBase > generate() override
Generate / modify the mesh.
auto max(const L &left, const R &right)
RefineBlockGenerator(const InputParameters &parameters)
std::unique_ptr< MeshBase > & _input
Input mesh to refine.
const std::vector< unsigned int > _refinement
The amount of times to refine each block, corresponding to their index in &#39;block&#39;.
const Real _max_element_volume
maximum element size over which elements are refined
const std::vector< SubdomainName > _block
List of block(s) to refine.
const bool _enable_neighbor_refinement
Toggles whether neighboring level one elements should be refined or not. Defaults to true...
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
const InputParameters & parameters() const
Get the parameters of the object.
MeshGenerators are objects that can modify or add to an existing mesh.
Definition: MeshGenerator.h:32
static InputParameters validParams()
MeshGenerator for refining one or more blocks.