https://mooseframework.inl.gov
RinglebMeshGenerator.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  // No copy
25  RinglebMeshGenerator & operator=(const RinglebMeshGenerator & other_mesh) = delete;
26 
27  std::unique_ptr<MeshBase> generate() override;
28 
29  // This function computes the different parameters a, rho, p and J
30  std::vector<Real> arhopj(const Real & gamma, const std::vector<Real> & q, const int & index);
31 
32  // This function computes the (x,y) coordinates of the nodes
33  // The vector `values` can be got with the `arhopj` function above
34  std::vector<Real> computexy(const std::vector<Real> values,
35  const int & i,
36  const int & index,
37  const std::vector<Real> & ks,
38  const std::vector<Real> & q);
39 
40 protected:
42  const Real & _gamma;
43 
48  const Real & _kmax;
49 
51  const Real & _kmin;
52 
54  const int & _num_q_pts;
55 
57  const int & _n_extra_q_pts;
58 
60  const int & _num_k_pts;
61 
64 
66  const bool & _triangles;
67 };
const Real & _kmax
k is a streamline parameter, i.e.
const Real & _kmin
kmin corresponds to the outer wall
std::vector< Real > computexy(const std::vector< Real > values, const int &i, const int &index, const std::vector< Real > &ks, const std::vector< Real > &q)
const int & _n_extra_q_pts
how many "extra" points should be inserted in the nearest element from the horizontal in additi /// o...
The main MOOSE class responsible for handling user-defined parameters in almost every MOOSE system...
const boundary_id_type _outflow_bid
const boundary_id_type _inflow_bid
The boundary ids to use for the ringleb mesh.
static InputParameters validParams()
Generates a mesh given all the parameters.
const boundary_id_type _inner_wall_bid
std::unique_ptr< MeshBase > generate() override
Generate / modify the mesh.
std::vector< Real > arhopj(const Real &gamma, const std::vector< Real > &q, const int &index)
RinglebMeshGenerator & operator=(const RinglebMeshGenerator &other_mesh)=delete
const Real & _gamma
Gamma.
int8_t boundary_id_type
const boundary_id_type _outer_wall_bid
const bool & _triangles
This parameter, if true, allows to split the quadrilateral elements into triangular elements...
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
const int & _num_q_pts
How many points to discretize the range q = (0.5, k) into.
const int & _num_k_pts
how many points in the range k=(kmin, kmax).
const InputParameters & parameters() const
Get the parameters of the object.
RinglebMeshGenerator(const InputParameters &parameters)
MeshGenerators are objects that can modify or add to an existing mesh.
Definition: MeshGenerator.h:32