www.mooseframework.org
SpiralAnnularMesh.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 "MooseMesh.h"
13 
14 class SpiralAnnularMesh;
15 
16 template <>
18 
23 {
24 public:
26 
28  SpiralAnnularMesh(const SpiralAnnularMesh & /* other_mesh */) = default;
29 
30  // No copy
31  SpiralAnnularMesh & operator=(const SpiralAnnularMesh & other_mesh) = delete;
32 
33  virtual std::unique_ptr<MooseMesh> safeClone() const override;
34 
35  virtual void buildMesh() override;
36 
37 protected:
39  const Real _inner_radius;
40 
42  const Real _outer_radius;
43 
47 
49  const unsigned int _nodes_per_ring;
50 
52  const bool _use_tri6;
53 
58  unsigned int _num_rings;
59 
61  const boundary_id_type _cylinder_bid, _exterior_bid;
62 
63  // Width of the initial layer of elements around the cylinder.
64  // This number should be approximately 2 * pi * inner_radius / nodes_per_ring
65  // to ensure that the initial layer of elements is almost
66  // equilateral
67  const Real _initial_delta_r;
68 };
69 
SpiralAnnularMesh::safeClone
virtual std::unique_ptr< MooseMesh > safeClone() const override
A safer version of the clone() method that hands back an allocated object wrapped in a smart pointer.
Definition: SpiralAnnularMesh.C:68
SpiralAnnularMesh::_nodes_per_ring
const unsigned int _nodes_per_ring
Number of nodes on each ring.
Definition: SpiralAnnularMesh.h:49
MooseMesh.h
SpiralAnnularMesh::_outer_radius
const Real _outer_radius
Radius of the outer circle. Logically, it's bigger that inner_radius.
Definition: SpiralAnnularMesh.h:42
MooseObject::parameters
const InputParameters & parameters() const
Get the parameters of the object.
Definition: MooseObject.h:76
SpiralAnnularMesh::_inner_radius
const Real _inner_radius
Radius of the inner circle.
Definition: SpiralAnnularMesh.h:39
SpiralAnnularMesh::_radial_bias
Real _radial_bias
Factor to increase initial_delta_r for each ring.
Definition: SpiralAnnularMesh.h:46
SpiralAnnularMesh::_exterior_bid
const boundary_id_type _exterior_bid
Definition: SpiralAnnularMesh.h:61
InputParameters
The main MOOSE class responsible for handling user-defined parameters in almost every MOOSE system.
Definition: InputParameters.h:53
SpiralAnnularMesh::operator=
SpiralAnnularMesh & operator=(const SpiralAnnularMesh &other_mesh)=delete
SpiralAnnularMesh
Mesh generated from parameters.
Definition: SpiralAnnularMesh.h:22
SpiralAnnularMesh::_num_rings
unsigned int _num_rings
Number of rings.You can't specify both the number of rings and the radial bias if you want to match a...
Definition: SpiralAnnularMesh.h:58
SpiralAnnularMesh::SpiralAnnularMesh
SpiralAnnularMesh(const InputParameters &parameters)
Definition: SpiralAnnularMesh.C:50
SpiralAnnularMesh::_initial_delta_r
const Real _initial_delta_r
Definition: SpiralAnnularMesh.h:67
SpiralAnnularMesh::_cylinder_bid
const boundary_id_type _cylinder_bid
The boundary id to use for the cylinder.
Definition: SpiralAnnularMesh.h:61
SpiralAnnularMesh::validParams
static InputParameters validParams()
Definition: SpiralAnnularMesh.C:20
SpiralAnnularMesh::buildMesh
virtual void buildMesh() override
Must be overridden by child classes.
Definition: SpiralAnnularMesh.C:74
MooseMesh
MooseMesh wraps a libMesh::Mesh object and enhances its capabilities by caching additional data and s...
Definition: MooseMesh.h:74
SpiralAnnularMesh::_use_tri6
const bool _use_tri6
Generate mesh of TRI6 elements instead of TRI3 elements.
Definition: SpiralAnnularMesh.h:52
validParams< SpiralAnnularMesh >
InputParameters validParams< SpiralAnnularMesh >()