www.mooseframework.org
StackGenerator.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 "MeshGenerator.h"
13 #include "libmesh/replicated_mesh.h"
14 #include "MooseEnum.h"
15 
20 {
21 public:
23 
25 
26  std::unique_ptr<MeshBase> generate() override;
27 
28 protected:
30  const MooseEnum _dim;
31 
32  // Holds pointers to the pointers to the meshes.
33  const std::vector<std::unique_ptr<MeshBase> *> _mesh_ptrs;
34 
36  const std::vector<MeshGeneratorName> & _input_names;
37 
40 
42  std::vector<std::unique_ptr<ReplicatedMesh>> _meshes;
43 
44  Real computeWidth(const MeshBase & mesh, const int & dim);
45 };
const std::vector< MeshGeneratorName > & _input_names
The meshgenerators to read.
The main MOOSE class responsible for handling user-defined parameters in almost every MOOSE system...
StackGenerator(const InputParameters &parameters)
static constexpr std::size_t dim
This is the dimension of all vector and tensor datastructures used in MOOSE.
Definition: Moose.h:148
const std::vector< std::unique_ptr< MeshBase > * > _mesh_ptrs
std::unique_ptr< MeshBase > generate() override
Generate / modify the mesh.
std::vector< std::unique_ptr< ReplicatedMesh > > _meshes
The meshes to be stitched together.
This is a "smart" enum class intended to replace many of the shortcomings in the C++ enum type It sho...
Definition: MooseEnum.h:31
const Real _bottom_height
Height (z) of the bottom of the final mesh.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
const InputParameters & parameters() const
Get the parameters of the object.
Real computeWidth(const MeshBase &mesh, const int &dim)
static InputParameters validParams()
MeshGenerators are objects that can modify or add to an existing mesh.
Definition: MeshGenerator.h:32
const MooseEnum _dim
The dimension of the mesh.
Take several 3D meshes and stitch them on top of each other like a stack.