phaseflow
FEM solver for the Navier-Stokes-Boussinesq equations coupled with enthalpy-based phase change
 All Classes Namespaces Files Functions Variables Macros Pages
my_grid_generator.h
Go to the documentation of this file.
1 #ifndef my_grid_generator_h
2 #define my_grid_generator_h
3 
4 #include <iostream>
5 #include <cmath>
6 
7 #include <deal.II/grid/grid_tools.h>
8 #include <deal.II/grid/tria.h>
9 #include <deal.II/grid/tria_accessor.h>
10 #include <deal.II/grid/tria_iterator.h>
11 
12 namespace MyGridGenerator
13 {
14  using namespace dealii;
15 
16  template<int dim>
18  Triangulation<dim> &triangulation,
19  std::vector<unsigned int> &manifold_ids,
20  std::vector<std::string> &manifold_descriptors,
21  unsigned int &boundary_count,
22  const std::string grid_name,
23  const std::vector<double> sizes)
24  {
25  if (grid_name == "hyper_rectangle")
26  {
27  GridGenerator::hyper_rectangle(
28  triangulation,
29  {sizes[0], sizes[1]},
30  {sizes[2], sizes[3]},
31  true);
32 
33  boundary_count = 4;
34  }
35  else if (grid_name == "hyper_shell")
36  {
37  GridGenerator::hyper_shell(triangulation, Point<dim>(), sizes[0], sizes[1], 0, 0);
38 
39  triangulation.set_all_manifold_ids(0);
40 
41  manifold_ids.push_back(0);
42 
43  manifold_descriptors.push_back("spherical");
44 
45  boundary_count = 1;
46  }
47  else
48  {
49  throw(ExcNotImplemented());
50  }
51  }
52 
53 }
54 
55 #endif
void create_coarse_grid(Triangulation< dim > &triangulation, std::vector< unsigned int > &manifold_ids, std::vector< std::string > &manifold_descriptors, unsigned int &boundary_count, const std::string grid_name, const std::vector< double > sizes)
Definition: my_grid_generator.h:17