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
75 template <
int dim,
int spacedim>
77 const double left = 0.,
78 const double right= 1.,
79 const bool colorize=
false);
122 template <
int dim,
int spacedim>
124 const unsigned int repetitions,
125 const double left = 0.,
126 const double right= 1.);
161 template <
int dim,
int spacedim>
165 const bool colorize =
false);
215 template <
int dim,
int spacedim>
218 const std::vector<unsigned int> &repetitions,
221 const bool colorize=
false);
241 const std::vector<std::vector<double> > &step_sizes,
244 const bool colorize=
false);
259 const std::vector< std::vector<double> > &spacing,
262 const bool colorize=
false);
290 template <
int dim,
int spacedim>
293 const std::vector<unsigned int> &holes);
313 const bool colorize =
false);
329 const bool colorize=
false);
349 const bool colorize =
false);
364 const unsigned int n_subdivisions,
366 const bool colorize =
false);
379 const unsigned int(&n_subdivisions)[dim],
381 const unsigned int *n_subdivisions,
384 const bool colorize =
false);
408 template <
int dim,
int spacedim>
413 const std::vector<unsigned int> &subdivisions = std::vector<unsigned int>(),
414 const bool colorize =
false);
432 const double left = 0.,
433 const double right= 1.,
434 const double thickness = 1.,
435 const bool colorize =
false);
458 const double radius = 1.);
492 template <
int dim,
int spacedim>
495 const double radius = 1.);
511 const double radius = 1.);
529 const double radius = 1.);
553 const double radius = 1.,
554 const double half_length = 1.);
583 const double radius_0 = 1.0,
584 const double radius_1 = 0.5,
585 const double half_length = 1.0);
615 template <
int dim,
int spacedim>
617 const std::vector<unsigned int> &sizes,
618 const bool colorize_cells =
false);
654 const double left = -1.,
655 const double right= 1.,
656 const bool colorize =
false);
677 const double left = 0.,
678 const double right = 1.,
679 const bool colorize =
false);
748 const double inner_radius,
749 const double outer_radius,
750 const unsigned int n_cells = 0,
751 bool colorize =
false);
777 const double inner_radius,
778 const double outer_radius,
779 const unsigned int n_cells = 0,
780 const bool colorize =
false);
806 const double inner_radius,
807 const double outer_radius,
808 const unsigned int n_cells = 0,
809 const bool colorize =
false);
830 const double inner_radius,
831 const double outer_radius,
832 const unsigned int n_radial_cells = 0,
833 const unsigned int n_axial_cells = 0);
859 template <
int dim,
int spacedim>
889 const double inner_radius = .25,
890 const double outer_radius = .5,
892 const unsigned int repetitions = 1,
893 const bool colorize =
false);
909 const unsigned int n_cells,
910 const unsigned int n_rotations,
951 template <
int dim,
int spacedim>
986 template <
int dim,
int spacedim>
1024 template <
int dim,
int spacedim>
1043 const unsigned int n_slices,
1044 const double height,
1073 template <
int dim,
int spacedim1,
int spacedim2>
1092 template <
template <
int,
int>
class MeshType,
int dim,
int spacedim>
1093 struct ExtractBoundaryMesh
1096 std::map<
typename MeshType<dim-1,spacedim>::cell_iterator,
1097 typename MeshType<dim,spacedim>::face_iterator>
1172 template <
template <
int,
int>
class MeshType,
int dim,
int spacedim>
1174 std::map<
typename MeshType<dim-1,spacedim>::cell_iterator,
1175 typename MeshType<dim,spacedim>::face_iterator>
1177 typename ExtractBoundaryMesh<MeshType,dim,spacedim>::return_type
1180 MeshType<dim-1,spacedim> &surface_mesh,
1181 const std::set<types::boundary_id> &boundary_ids
1182 = std::set<types::boundary_id>());
1202 <<
"The number of repetitions " << arg1
1203 <<
" must be >=1.");
1209 <<
"The vector of repetitions must have " 1210 << arg1 <<
" elements.");
1216 "The input to this function is oriented in a way that will" 1217 " cause all cells to have negative measure.");
1223 DEAL_II_NAMESPACE_CLOSE
void create_union_triangulation(const Triangulation< dim, spacedim > &triangulation_1, const Triangulation< dim, spacedim > &triangulation_2, Triangulation< dim, spacedim > &result)
void torus(Triangulation< dim, spacedim > &tria, const double R, const double r)
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)
static ::ExceptionBase & ExcInvalidRepetitionsDimension(int arg1)
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)
static ::ExceptionBase & ExcInvalidInputOrientation()
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 general_cell(Triangulation< dim > &tria, const std::vector< Point< dim > > &vertices, const bool colorize=false)
void hyper_L(Triangulation< dim > &tria, const double left=-1., const double right=1., const bool colorize=false)
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.
#define DeclException1(Exception1, type1, outsequence)
void cylinder(Triangulation< dim > &tria, const double radius=1., const double half_length=1.)
#define DeclExceptionMsg(Exception, defaulttext)
#define DeclException0(Exception0)
void quarter_hyper_ball(Triangulation< dim > &tria, const Point< dim > ¢er=Point< dim >(), const double radius=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)
static ::ExceptionBase & ExcInvalidRadii()
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)
static ::ExceptionBase & ExcInvalidRepetitions(int arg1)