16 #ifndef dealii_grid_generator_h 17 #define dealii_grid_generator_h 20 #include <deal.II/base/config.h> 21 #include <deal.II/base/exceptions.h> 22 #include <deal.II/base/point.h> 23 #include <deal.II/base/table.h> 24 #include <deal.II/base/function.h> 25 #include <deal.II/grid/tria.h> 30 DEAL_II_NAMESPACE_OPEN
85 template <
int dim,
int spacedim>
87 const double left = 0.,
88 const double right= 1.,
89 const bool colorize=
false);
132 template <
int dim,
int spacedim>
134 const unsigned int repetitions,
135 const double left = 0.,
136 const double right= 1.);
167 template <
int dim,
int spacedim>
171 const bool colorize =
false);
221 template <
int dim,
int spacedim>
224 const std::vector<unsigned int> &repetitions,
227 const bool colorize=
false);
247 const std::vector<std::vector<double> > &step_sizes,
250 const bool colorize=
false);
265 const std::vector< std::vector<double> > &spacing,
268 const bool colorize=
false);
296 template <
int dim,
int spacedim>
299 const std::vector<unsigned int> &holes);
319 const bool colorize =
false);
335 const bool colorize=
false);
355 const bool colorize =
false);
370 const unsigned int n_subdivisions,
372 const bool colorize =
false);
385 const unsigned int(&n_subdivisions)[dim],
387 const unsigned int *n_subdivisions,
390 const bool colorize =
false);
414 template <
int dim,
int spacedim>
419 const std::vector<unsigned int> &subdivisions = std::vector<unsigned int>(),
420 const bool colorize =
false);
438 const double left = 0.,
439 const double right= 1.,
440 const double thickness = 1.,
441 const bool colorize =
false);
480 const double radius = 1.,
481 const bool attach_spherical_manifold_on_boundary_cells=
false);
508 template <
int spacedim>
511 const double radius = 1.);
527 const double radius = 1.);
543 const double radius = 1.);
570 const double radius = 1.,
571 const double half_length = 1.);
600 const double radius_0 = 1.0,
601 const double radius_1 = 0.5,
602 const double half_length = 1.0);
632 template <
int dim,
int spacedim>
634 const std::vector<unsigned int> &sizes,
635 const bool colorize_cells =
false);
672 const double left = -1.,
673 const double right= 1.,
674 const bool colorize =
false);
695 const double left = 0.,
696 const double right = 1.,
697 const bool colorize =
false);
739 const double inner_radius,
740 const double outer_radius,
741 const unsigned int n_cells = 0,
742 bool colorize =
false);
771 const double inner_radius,
772 const double outer_radius,
773 const unsigned int n_cells = 0,
774 const bool colorize =
false);
803 const double inner_radius,
804 const double outer_radius,
805 const unsigned int n_cells = 0,
806 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);
858 template <
int dim,
int spacedim>
893 const double inner_radius = .25,
894 const double outer_radius = .5,
896 const unsigned int repetitions = 1,
897 const bool colorize =
false);
913 const unsigned int n_cells,
914 const unsigned int n_rotations,
958 template <
int dim,
int spacedim>
997 template <
int dim,
int spacedim>
1038 template <
int dim,
int spacedim>
1060 const unsigned int n_slices,
1061 const double height,
1084 const std::vector<double> &slice_coordinates,
1118 template <
int dim,
int spacedim1,
int spacedim2>
1137 template <
template <
int,
int>
class MeshType,
int dim,
int spacedim>
1138 struct ExtractBoundaryMesh
1141 std::map<
typename MeshType<dim-1,spacedim>::cell_iterator,
1142 typename MeshType<dim,spacedim>::face_iterator>
1221 template <
template <
int,
int>
class MeshType,
int dim,
int spacedim>
1223 std::map<
typename MeshType<dim-1,spacedim>::cell_iterator,
1224 typename MeshType<dim,spacedim>::face_iterator>
1226 typename ExtractBoundaryMesh<MeshType,dim,spacedim>::return_type
1229 MeshType<dim-1,spacedim> &surface_mesh,
1230 const std::set<types::boundary_id> &boundary_ids
1231 = std::set<types::boundary_id>());
1251 <<
"The number of repetitions " << arg1
1252 <<
" must be >=1.");
1258 <<
"The vector of repetitions must have " 1259 << arg1 <<
" elements.");
1265 "The input to this function is oriented in a way that will" 1266 " cause all cells to have negative measure.");
1272 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 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)
void hyper_sphere(Triangulation< spacedim-1, spacedim > &tria, const Point< spacedim > ¢er=Point< spacedim >(), const double radius=1.)
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_ball(Triangulation< dim > &tria, const Point< dim > ¢er=Point< dim >(), const double radius=1., const bool attach_spherical_manifold_on_boundary_cells=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 parallelepiped(Triangulation< dim > &tria, const Point< dim >(&corners) [dim], const bool colorize=false)
static ::ExceptionBase & ExcInvalidRepetitions(int arg1)