16 #ifndef dealii__grid_generator_h 17 #define dealii__grid_generator_h 20 #include <deal.II/base/config.h> 21 #include <deal.II/base/std_cxx11/array.h> 22 #include <deal.II/base/exceptions.h> 23 #include <deal.II/base/point.h> 24 #include <deal.II/base/table.h> 25 #include <deal.II/base/function.h> 26 #include <deal.II/grid/tria.h> 29 DEAL_II_NAMESPACE_OPEN
32 template <
typename number>
class Vector;
79 template <
int dim,
int spacedim>
81 const double left = 0.,
82 const double right= 1.,
83 const bool colorize=
false);
126 template <
int dim,
int spacedim>
128 const unsigned int repetitions,
129 const double left = 0.,
130 const double right= 1.);
153 template <
int dim,
int spacedim>
157 const bool colorize =
false);
207 template <
int dim,
int spacedim>
210 const std::vector<unsigned int> &repetitions,
213 const bool colorize=
false);
233 const std::vector<std::vector<double> > &step_sizes,
236 const bool colorize);
251 const std::vector< std::vector<double> > &spacing,
254 const bool colorize=
false);
282 template <
int dim,
int spacedim>
285 const std::vector<unsigned int> &holes);
301 const bool colorize=
false);
321 const bool colorize =
false);
336 const unsigned int n_subdivisions,
338 const bool colorize =
false);
351 const unsigned int(&n_subdivisions)[dim],
353 const unsigned int *n_subdivisions,
356 const bool colorize =
false);
380 template <
int dim,
int spacedim>
385 const std::vector<unsigned int> &subdivisions = std::vector<unsigned int>(),
386 const bool colorize =
false);
404 const double left = 0.,
405 const double right= 1.,
406 const double thickness = 1.,
407 const bool colorize =
false);
430 const double radius = 1.);
464 template <
int dim,
int spacedim>
467 const double radius = 1.);
485 const double radius = 1.);
509 const double radius = 1.,
510 const double half_length = 1.);
539 const double radius_0 = 1.0,
540 const double radius_1 = 0.5,
541 const double half_length = 1.0);
571 template <
int dim,
int spacedim>
573 const std::vector<unsigned int> &sizes,
574 const bool colorize_cells =
false);
593 const double left = -1.,
594 const double right= 1.);
612 const double left = 0.,
613 const double right = 1.,
614 const bool colorize =
false);
683 const double inner_radius,
684 const double outer_radius,
685 const unsigned int n_cells = 0,
686 bool colorize =
false);
712 const double inner_radius,
713 const double outer_radius,
714 const unsigned int n_cells = 0,
715 const bool colorize =
false);
741 const double inner_radius,
742 const double outer_radius,
743 const unsigned int n_cells = 0,
744 const bool colorize =
false);
761 const double inner_radius,
762 const double outer_radius,
763 const unsigned int n_radial_cells = 0,
764 const unsigned int n_axial_cells = 0);
808 const double inner_radius = .25,
809 const double outer_radius = .5,
811 const unsigned int repetitions = 1,
812 const bool colorize =
false);
828 const unsigned int n_cells,
829 const unsigned int n_rotations,
870 template <
int dim,
int spacedim>
905 template <
int dim,
int spacedim>
943 template <
int dim,
int spacedim>
962 const unsigned int n_slices,
992 template <
int dim,
int spacedim1,
int spacedim2>
1011 template <
template <
int,
int>
class MeshType,
int dim,
int spacedim>
1012 struct ExtractBoundaryMesh
1015 std::map<
typename MeshType<dim-1,spacedim>::cell_iterator,
1016 typename MeshType<dim,spacedim>::face_iterator>
1091 template <
template <
int,
int>
class MeshType,
int dim,
int spacedim>
1093 std::map<
typename MeshType<dim-1,spacedim>::cell_iterator,
1094 typename MeshType<dim,spacedim>::face_iterator>
1096 typename ExtractBoundaryMesh<MeshType,dim,spacedim>::return_type
1099 MeshType<dim-1,spacedim> &surface_mesh,
1100 const std::set<types::boundary_id> &boundary_ids
1101 = std::set<types::boundary_id>());
1121 <<
"The number of repetitions " << arg1
1122 <<
" must be >=1.");
1128 <<
"The vector of repetitions must have " 1129 << arg1 <<
" elements.");
1136 DEAL_II_NAMESPACE_CLOSE
DeclException0(ExcInvalidRadii)
void create_union_triangulation(const Triangulation< dim, spacedim > &triangulation_1, const Triangulation< dim, spacedim > &triangulation_2, Triangulation< dim, spacedim > &result)
void hyper_sphere(Triangulation< dim, spacedim > &tria, const Point< spacedim > ¢er=Point< spacedim >(), const double radius=1.)
void truncated_cone(Triangulation< dim > &tria, const double radius_0=1.0, const double radius_1=0.5, const double half_length=1.0)
void hyper_rectangle(Triangulation< dim, spacedim > &tria, const Point< dim > &p1, const Point< dim > &p2, const bool colorize=false)
void moebius(Triangulation< 3, 3 > &tria, const unsigned int n_cells, const unsigned int n_rotations, const double R, const double r)
void flatten_triangulation(const Triangulation< dim, spacedim1 > &in_tria, Triangulation< dim, spacedim2 > &out_tria)
void quarter_hyper_shell(Triangulation< dim > &tria, const Point< dim > ¢er, const double inner_radius, const double outer_radius, const unsigned int n_cells=0, const bool colorize=false)
void extrude_triangulation(const Triangulation< 2, 2 > &input, const unsigned int n_slices, const double height, Triangulation< 3, 3 > &result)
void enclosed_hyper_cube(Triangulation< dim > &tria, const double left=0., const double right=1., const double thickness=1., const bool colorize=false)
void parallelogram(Triangulation< dim > &tria, const Point< dim >(&corners)[dim], const bool colorize=false)
void hyper_shell(Triangulation< dim > &tria, const Point< dim > ¢er, const double inner_radius, const double outer_radius, const unsigned int n_cells=0, bool colorize=false)
void cylinder_shell(Triangulation< dim > &tria, const double length, const double inner_radius, const double outer_radius, const unsigned int n_radial_cells=0, const unsigned int n_axial_cells=0)
void hyper_cross(Triangulation< dim, spacedim > &tria, const std::vector< unsigned int > &sizes, const bool colorize_cells=false)
A center cell with stacks of cell protruding from each surface.
void merge_triangulations(const Triangulation< dim, spacedim > &triangulation_1, const Triangulation< dim, spacedim > &triangulation_2, Triangulation< dim, spacedim > &result)
void subdivided_parallelepiped(Triangulation< dim > &tria, const unsigned int n_subdivisions, const Point< dim >(&corners) [dim], const bool colorize=false)
void half_hyper_ball(Triangulation< dim > &tria, const Point< dim > ¢er=Point< dim >(), const double radius=1.)
void simplex(Triangulation< dim, dim > &tria, const std::vector< Point< dim > > &vertices)
Triangulation of a d-simplex with (d+1) vertices and mesh cells.
void cylinder(Triangulation< dim > &tria, const double radius=1., const double half_length=1.)
void subdivided_hyper_cube(Triangulation< dim, spacedim > &tria, const unsigned int repetitions, const double left=0., const double right=1.)
void create_triangulation_with_removed_cells(const Triangulation< dim, spacedim > &input_triangulation, const std::set< typename Triangulation< dim, spacedim >::active_cell_iterator > &cells_to_remove, Triangulation< dim, spacedim > &result)
std::map< typename MeshType< dim-1, spacedim >::cell_iterator, typename MeshType< dim, spacedim >::face_iterator > extract_boundary_mesh(const MeshType< dim, spacedim > &volume_mesh, MeshType< dim-1, spacedim > &surface_mesh, const std::set< types::boundary_id > &boundary_ids=std::set< types::boundary_id >())
void hyper_cube_slit(Triangulation< dim > &tria, const double left=0., const double right=1., const bool colorize=false)
void subdivided_hyper_rectangle(Triangulation< dim, spacedim > &tria, const std::vector< unsigned int > &repetitions, const Point< dim > &p1, const Point< dim > &p2, const bool colorize=false)
DeclException1(ExcInvalidRepetitions, int,<< "The number of repetitions "<< arg1<< " must be >=1.")
void cheese(Triangulation< dim, spacedim > &tria, const std::vector< unsigned int > &holes)
Rectangular domain with rectangular pattern of holes.
void half_hyper_shell(Triangulation< dim > &tria, const Point< dim > ¢er, const double inner_radius, const double outer_radius, const unsigned int n_cells=0, const bool colorize=false)
void hyper_cube(Triangulation< dim, spacedim > &tria, const double left=0., const double right=1., const bool colorize=false)
void hyper_cube_with_cylindrical_hole(Triangulation< dim > &triangulation, const double inner_radius=.25, const double outer_radius=.5, const double L=.5, const unsigned int repetitions=1, const bool colorize=false)
void hyper_ball(Triangulation< dim > &tria, const Point< dim > ¢er=Point< dim >(), const double radius=1.)
void parallelepiped(Triangulation< dim > &tria, const Point< dim >(&corners) [dim], const bool colorize=false)
void hyper_L(Triangulation< dim > &tria, const double left=-1., const double right=1.)
void torus(Triangulation< 2, 3 > &tria, const double R, const double r)