deal.II version GIT relicensing-6834-g5b78e6bcdf 2026-10-01 11:20:01+00:00
\(\newcommand{\dealvcentcolon}{\mathrel{\mathop{:}}}\) \(\newcommand{\dealcoloneq}{\dealvcentcolon\mathrel{\mkern-1.2mu}=}\) \(\newcommand{\jump}[1]{\left[\!\left[ #1 \right]\!\right]}\) \(\newcommand{\average}[1]{\left\{\!\left\{ #1 \right\}\!\right\}}\)
Loading...
Searching...
No Matches
grid_generator.h
Go to the documentation of this file.
1// -----------------------------------------------------------------------------
2//
3// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception OR LGPL-2.1-or-later
4// Copyright (C) 1999 - 2026 by the deal.II authors
5//
6// This file is part of the deal.II library.
7//
8// Detailed license information governing the source code and contributions
9// can be found in LICENSE.md and CONTRIBUTING.md at the top level directory.
10//
11// -----------------------------------------------------------------------------
12
13#ifndef dealii_grid_generator_h
14#define dealii_grid_generator_h
15
16
17#include <deal.II/base/config.h>
18
21#include <deal.II/base/point.h>
22#include <deal.II/base/table.h>
23
25
27#include <deal.II/grid/tria.h>
28
29#include <array>
30#include <limits>
31#include <map>
32#include <set>
33
34
36
37#ifndef DOXYGEN
39#endif
40
64{
102 template <int dim, int spacedim>
103 void
105 const double left = 0.,
106 const double right = 1.,
107 const bool colorize = false);
108
143 template <int dim>
144 void
146 const std::vector<Point<dim>> &vertices);
147
153 template <int dim, int spacedim>
154 void
157
158
188 template <int dim, int spacedim>
189 void
191 const unsigned int repetitions,
192 const double left = 0.,
193 const double right = 1.,
194 const bool colorize = false);
195
234 template <int dim, int spacedim>
235 void
237 const Point<dim> &p1,
238 const Point<dim> &p2,
239 const bool colorize = false);
240
294 template <int dim, int spacedim>
295 void
297 const std::vector<unsigned int> &repetitions,
298 const Point<dim> &p1,
299 const Point<dim> &p2,
300 const bool colorize = false);
301
321 template <int dim>
322 void
324 const std::vector<std::vector<double>> &step_sizes,
325 const Point<dim> &p1,
326 const Point<dim> &p2,
327 const bool colorize = false);
328
343 template <int dim>
344 void
346 const std::vector<std::vector<double>> &spacing,
347 const Point<dim> &p,
348 const Table<dim, types::material_id> &material_id,
349 const bool colorize = false);
350
380 template <int dim, int spacedim>
381 void
383 const std::vector<unsigned int> &holes);
384
410 template <int dim, int spacedim>
411 void
413 const Table<dim, bool> &present_voxels,
414 const double voxel_edge_length);
415
465 template <int dim>
466 void
468 const double inner_radius = 0.4,
469 const double outer_radius = 1.,
470 const double pad_bottom = 2.,
471 const double pad_top = 2.,
472 const double pad_left = 1.,
473 const double pad_right = 1.,
474 const Point<dim> &center = Point<dim>(),
475 const types::manifold_id polar_manifold_id = 0,
476 const types::manifold_id tfi_manifold_id = 1,
477 const double L = 1.,
478 const unsigned int n_slices = 2,
479 const bool colorize = false);
480
573 template <int dim>
574 void
576 const double shell_region_width = 0.03,
577 const unsigned int n_shells = 2,
578 const double skewness = 2.0,
579 const bool colorize = false);
580
666 template <int dim>
667 void
669 Triangulation<dim> &tria,
670 const std::vector<unsigned int> &lengths_and_heights,
671 const double depth = 1,
672 const unsigned int depth_division = 1,
673 const double shell_region_radius = 0.75,
674 const unsigned int n_shells = 2,
675 const double skewness = 2.0,
676 const bool use_transfinite_region = false,
677 const bool colorize = false);
678
745 template <int dim>
746 void
748 Triangulation<dim> &tria,
749 const std::vector<unsigned int> &lengths_heights_widths,
750 const double inner_radius,
751 const double outer_radius,
752 const bool use_transfinite_region = false,
753 const bool colorize = false);
754
778 template <int dim>
779 void
781 const double inner_radius = 0.25,
782 const double outer_radius = 0.5,
783 const bool colorize = false);
784
808 template <int dim, int spacedim>
809 void
811 const std::vector<Point<spacedim>> &vertices,
812 const bool colorize = false);
813
833 template <int dim>
834 void
836 const Point<dim> (&corners)[dim],
837 const bool colorize = false);
838
857 template <int dim>
858 void
860 const Point<dim> (&corners)[dim],
861 const bool colorize = false);
862
878 template <int dim>
879 void
881 const unsigned int n_subdivisions,
882 const Point<dim> (&corners)[dim],
883 const bool colorize = false);
884
897 template <int dim>
898 void
900#ifndef _MSC_VER
901 const unsigned int (&n_subdivisions)[dim],
902#else
903 const unsigned int *n_subdivisions,
904#endif
905 const Point<dim> (&corners)[dim],
906 const bool colorize = false);
907
931 template <int dim, int spacedim>
932 void
934 const Point<spacedim> &origin,
935 const std::array<Tensor<1, spacedim>, dim> &edges,
936 const std::vector<unsigned int> &subdivisions = {},
937 const bool colorize = false);
938
959 template <int dim>
960 void
962 const double left = 0.,
963 const double right = 1.,
964 const double thickness = 1.,
965 const bool colorize = false);
966
1049 template <int dim, int spacedim>
1050 void
1052 const Point<spacedim> &center = {},
1053 const double radius = 1.,
1054 const bool attach_spherical_manifold_on_boundary_cells = false);
1055
1091 template <int dim>
1092 void
1094 const Point<dim> &center = Point<dim>(),
1095 const double radius = 1.);
1096
1115 void
1117 const unsigned int n_rotate_middle_square);
1118
1140 void
1142 const bool face_orientation,
1143 const bool face_flip,
1144 const bool face_rotation,
1145 const bool manipulate_left_cube);
1146
1147
1176 template <int spacedim>
1177 void
1179 const Point<spacedim> &center = Point<spacedim>(),
1180 const double radius = 1.);
1181
1218 template <int dim>
1219 void
1221 const Point<dim> &center = Point<dim>(),
1222 const double radius = 1.);
1223
1239 template <int dim>
1240 void
1242 const Point<dim> &center = Point<dim>(),
1243 const double radius = 1.);
1244
1271 template <int dim>
1272 void
1274 const double radius = 1.,
1275 const double half_length = 1.);
1276
1277
1315 template <int dim>
1316 void
1318 const unsigned int x_subdivisions,
1319 const double radius = 1.,
1320 const double half_length = 1.);
1321
1322
1357 template <int dim>
1358 void
1360 const double radius_0 = 1.0,
1361 const double radius_1 = 0.5,
1362 const double half_length = 1.0);
1363
1487 template <int dim, int spacedim>
1488 void
1490 const std::vector<std::pair<Point<spacedim>, double>> &openings,
1491 const std::pair<Point<spacedim>, double> &bifurcation,
1492 const double aspect_ratio = 0.5);
1493
1520 template <int dim, int spacedim>
1521 void
1523 const std::vector<unsigned int> &sizes,
1524 const bool colorize_cells = false);
1525
1561 template <int dim>
1562 void
1564 const double left = -1.,
1565 const double right = 1.,
1566 const bool colorize = false);
1567
1599 template <int dim, int spacedim>
1600 void
1602 const std::vector<unsigned int> &repetitions,
1603 const Point<dim> &bottom_left,
1604 const Point<dim> &top_right,
1605 const std::vector<int> &n_cells_to_remove);
1606
1626 template <int dim>
1627 void
1629 const double left = 0.,
1630 const double right = 1.,
1631 const bool colorize = false);
1632
1708 template <int dim, int spacedim>
1709 void
1711 const Point<spacedim> &center,
1712 const double inner_radius,
1713 const double outer_radius,
1714 const unsigned int n_cells = 0,
1715 bool colorize = false);
1716
1764 template <int dim>
1765 void
1767 const Point<dim> &inner_center,
1768 const Point<dim> &outer_center,
1769 const double inner_radius,
1770 const double outer_radius,
1771 const unsigned int n_cells);
1772
1802 template <int dim>
1803 void
1805 const Point<dim> &center,
1806 const double inner_radius,
1807 const double outer_radius,
1808 const unsigned int n_cells = 0,
1809 const bool colorize = false);
1810
1811
1837 template <int dim>
1838 void
1840 const Point<dim> &center,
1841 const double inner_radius,
1842 const double outer_radius,
1843 const unsigned int n_cells = 0,
1844 const bool colorize = false);
1845
1877 template <int dim>
1878 void
1880 const double length,
1881 const double inner_radius,
1882 const double outer_radius,
1883 const unsigned int n_radial_cells = 0,
1884 const unsigned int n_axial_cells = 0,
1885 const bool colorize = false);
1886
1938 template <int dim, int spacedim>
1939 void
1941 const double centerline_radius,
1942 const double inner_radius,
1943 const unsigned int n_cells_toroidal = 6,
1944 const double phi = 2.0 * numbers::PI);
1945
1979 template <int dim, int spacedim>
1980 void
1982 const double inner_radius = .25,
1983 const double outer_radius = .5,
1984 const double L = .5,
1985 const unsigned int repetitions = 1,
1986 const bool colorize = false);
1987
2058 template <int dim>
2059 void
2061 const Point<dim> &center,
2062 const double inner_radius = 0.125,
2063 const double outer_radius = 0.25,
2064 const unsigned int n_shells = 1,
2065 const double skewness = 0.1,
2066 const unsigned int n_cells_per_shell = 0,
2067 const bool colorize = false);
2068
2082 void
2084 const unsigned int n_cells,
2085 const unsigned int n_rotations,
2086 const double R,
2087 const double r);
2088
2124 template <int dim, int spacedim>
2125 void
2128 const std::string &grid_generator_function_name,
2129 const std::string &grid_generator_function_arguments);
2130
2194 template <int dim>
2195 void
2200 const Point<3> &interior_point = Point<3>(),
2201 const double &outer_ball_radius = 1.0);
2202
2217 void
2219 Triangulation<3> &vol_tria,
2290 template <int dim, int spacedim>
2291 void
2293 const Triangulation<dim, spacedim> &triangulation_2,
2295 const double duplicated_vertex_tolerance = 1.0e-12,
2296 const bool copy_manifold_ids = false,
2297 const bool copy_boundary_ids = false);
2298
2318 template <int dim, int spacedim>
2319 void
2321 const std::vector<const Triangulation<dim, spacedim> *> &triangulations,
2323 const double duplicated_vertex_tolerance = 1.0e-12,
2324 const bool copy_manifold_ids = false,
2325 const bool copy_boundary_ids = false);
2326
2377 template <int dim, int spacedim = dim>
2378 void
2380 const std::vector<unsigned int> &extents,
2382
2420 template <int dim, int spacedim>
2421 void
2423 const Triangulation<dim, spacedim> &triangulation_1,
2424 const Triangulation<dim, spacedim> &triangulation_2,
2426
2463 template <int dim, int spacedim>
2464 void
2466 const Triangulation<dim, spacedim> &input_triangulation,
2468 &cells_to_remove,
2470
2541 void
2543 const Triangulation<2, 2> &input,
2544 const unsigned int n_slices,
2545 const double height,
2546 Triangulation<3, 3> &result,
2547 const bool copy_manifold_ids = false,
2548 const std::vector<types::manifold_id> &manifold_priorities = {});
2549
2556 void
2558 const Triangulation<2, 2> &input,
2559 const unsigned int n_slices,
2560 const double height,
2561 Triangulation<2, 2> &result,
2562 const bool copy_manifold_ids = false,
2563 const std::vector<types::manifold_id> &manifold_priorities = {});
2564
2565
2584 void
2586 const Triangulation<2, 2> &input,
2587 const std::vector<double> &slice_coordinates,
2588 Triangulation<3, 3> &result,
2589 const bool copy_manifold_ids = false,
2590 const std::vector<types::manifold_id> &manifold_priorities = {});
2591
2598 void
2600 const Triangulation<2, 2> &input,
2601 const std::vector<double> &slice_coordinates,
2602 Triangulation<2, 2> &result,
2603 const bool copy_manifold_ids = false,
2604 const std::vector<types::manifold_id> &manifold_priorities = {});
2605
2606
2607
2647 template <int dim, int spacedim1, int spacedim2>
2648 void
2651
2705 template <int dim, int spacedim>
2706 void
2709 const unsigned int n_divisions = (dim == 2 ?
2710 8u :
2711 24u));
2712
2778 template <int dim, int spacedim>
2779 void
2782
2805 template <int dim, int spacedim>
2806 void
2809
2814 namespace Airfoil
2815 {
2821 {
2826 std::string airfoil_type;
2827
2835 std::string naca_id;
2836
2843
2849
2854 double height;
2855
2860
2877
2885
2889 unsigned int refinements;
2890
2894 unsigned int n_subdivision_x_0;
2895
2899 unsigned int n_subdivision_x_1;
2900
2904 unsigned int n_subdivision_x_2;
2905
2909 unsigned int n_subdivision_y;
2910
2923
2928
2934 void
2936 };
2937
2967 template <int dim>
2968 void
2971 const AdditionalData &additional_data = AdditionalData());
2972
2973
2974
2987 template <int dim>
2988 void
2991 std::vector<GridTools::PeriodicFacePair<
2992 typename Triangulation<dim, dim>::cell_iterator>> &periodic_faces,
2993 const AdditionalData &additional_data = AdditionalData());
2994
2995 } // namespace Airfoil
2996
3013 template <int dim, int spacedim>
3014 void
3017 const std::vector<unsigned int> &repetitions,
3018 const Point<dim> &p1,
3019 const Point<dim> &p2,
3020 const bool colorize = false);
3021
3039 template <int dim, int spacedim>
3040 void
3042 const unsigned int repetitions,
3043 const double left = 0.0,
3044 const double right = 1.0,
3045 const bool colorize = false);
3046
3056#ifdef _MSC_VER
3057 // Microsoft's VC++ has a bug where it doesn't want to recognize that
3058 // an implementation (definition) of the extract_boundary_mesh function
3059 // matches a declaration. This can apparently only be avoided by
3060 // doing some contortion with the return type using the following
3061 // intermediate type. This is only used when using MS VC++ and uses
3062 // the direct way of doing it otherwise
3063 template <template <int, int> class MeshType, int dim, int spacedim>
3065 (concepts::is_triangulation_or_dof_handler<MeshType<dim, spacedim>>))
3066 struct ExtractBoundaryMesh
3067 {
3068 using return_type =
3069 std::map<typename MeshType<dim - 1, spacedim>::cell_iterator,
3070 typename MeshType<dim, spacedim>::face_iterator>;
3071 };
3072#endif
3073
3171 template <template <int, int> class MeshType, int dim, int spacedim>
3173 (concepts::is_triangulation_or_dof_handler<MeshType<dim, spacedim>>))
3174#ifdef DOXYGEN
3175 return_type
3176#else
3177# ifndef _MSC_VER
3178 std::map<typename MeshType<dim - 1, spacedim>::cell_iterator,
3179 typename MeshType<dim, spacedim>::face_iterator>
3180# else
3181 typename ExtractBoundaryMesh<MeshType, dim, spacedim>::return_type
3182# endif
3183#endif
3184 extract_boundary_mesh(const MeshType<dim, spacedim> &volume_mesh,
3185 MeshType<dim - 1, spacedim> &surface_mesh,
3186 const std::set<types::boundary_id> &boundary_ids =
3187 std::set<types::boundary_id>());
3188
3206 int,
3207 << "The number of repetitions " << arg1 << " must be >=1.");
3212 int,
3213 << "The vector of repetitions must have " << arg1
3214 << " elements.");
3215
3220 "The input to this function is oriented in a way that will"
3221 " cause all cells to have negative measure.");
3224#ifndef DOXYGEN
3225 // These functions are only implemented with specializations; declare them
3226 // here
3227 template <>
3228 void
3230 const double,
3231 const double,
3232 const double,
3233 const unsigned int,
3234 const bool);
3235
3236 template <>
3237 void
3239 const double,
3240 const double,
3241 const double,
3242 const unsigned int,
3243 const bool);
3244
3245 template <>
3246 void
3248 const double,
3249 const double,
3250 const double,
3251 const unsigned int,
3252 const bool);
3253
3254 template <>
3255 void
3257 const double,
3258 const unsigned int,
3259 const double,
3260 const bool);
3261
3262 template <>
3263 void
3265 const double,
3266 const unsigned int,
3267 const double,
3268 const bool);
3269
3270 template <>
3271 void
3273 const double,
3274 const unsigned int,
3275 const double,
3276 const bool);
3277
3278 template <>
3279 void
3281 const std::vector<unsigned int> &,
3282 const double,
3283 const double,
3284 const bool,
3285 const bool);
3286
3287 template <>
3288 void
3290 const std::vector<unsigned int> &,
3291 const double,
3292 const double,
3293 const bool,
3294 const bool);
3295
3296 template <>
3297 void
3299 const std::vector<unsigned int> &,
3300 const double,
3301 const double,
3302 const bool,
3303 const bool);
3304
3305 template <>
3306 void
3308 const double,
3309 const double,
3310 const bool);
3311
3312 template <>
3313 void
3315 const double,
3316 const double,
3317 const bool);
3318
3319 template <>
3320 void
3322 const double,
3323 const double,
3324 const bool);
3325
3326
3327
3328#endif
3329} // namespace GridGenerator
3330
3331
3332
3334
3335#endif
*  const Number height
*  const Number radius
*  const unsigned int aspect_ratio
*  *  const Number outer_radius
Definition point.h:111
#define DEAL_II_NAMESPACE_OPEN
Definition config.h:38
#define DEAL_II_CXX20_REQUIRES(condition)
Definition config.h:249
#define DEAL_II_NAMESPACE_CLOSE
Definition config.h:39
bool colorize
Definition grid_out.cc:4641
#define DeclException0(Exception0)
static ::ExceptionBase & ExcInvalidInputOrientation()
static ::ExceptionBase & ExcInvalidRepetitions(int arg1)
#define DeclExceptionMsg(Exception, defaulttext)
static ::ExceptionBase & ExcInvalidRadii()
#define DeclException1(Exception1, type1, outsequence)
static ::ExceptionBase & ExcInvalidRepetitionsDimension(int arg1)
std::vector< index_type > data
Definition mpi.cc:734
void create_triangulation(Triangulation< dim, dim > &tria, const AdditionalData &additional_data=AdditionalData())
void parallelepiped(Triangulation< dim > &tria, const Point< dim >(&corners)[dim], const bool colorize=false)
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 hyper_cube_with_cylindrical_hole(Triangulation< dim, spacedim > &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_balanced(Triangulation< dim > &tria, const Point< dim > &center=Point< dim >(), const double radius=1.)
void plate_with_a_hole(Triangulation< dim > &tria, const double inner_radius=0.4, const double outer_radius=1., const double pad_bottom=2., const double pad_top=2., const double pad_left=1., const double pad_right=1., const Point< dim > &center=Point< dim >(), const types::manifold_id polar_manifold_id=0, const types::manifold_id tfi_manifold_id=1, const double L=1., const unsigned int n_slices=2, const bool colorize=false)
Rectangular plate with an (offset) cylindrical hole.
void generate_from_name_and_arguments(Triangulation< dim, spacedim > &tria, const std::string &grid_generator_function_name, const std::string &grid_generator_function_arguments)
void enclosed_hyper_cube(Triangulation< dim > &tria, const double left=0., const double right=1., const double thickness=1., const bool colorize=false)
void uniform_channel_with_sphere(Triangulation< dim > &tria, const std::vector< unsigned int > &lengths_heights_widths, const double inner_radius, const double outer_radius, const bool use_transfinite_region=false, const bool colorize=false)
void replicate_triangulation(const Triangulation< dim, spacedim > &input, const std::vector< unsigned int > &extents, Triangulation< dim, spacedim > &result)
Replicate a given triangulation in multiple coordinate axes.
void parallelogram(Triangulation< dim > &tria, const Point< dim >(&corners)[dim], const bool colorize=false)
void general_cell(Triangulation< dim, spacedim > &tria, const std::vector< Point< spacedim > > &vertices, const bool colorize=false)
void subdivided_hyper_cube(Triangulation< dim, spacedim > &tria, const unsigned int repetitions, const double left=0., const double right=1., const bool colorize=false)
void hyper_shell(Triangulation< dim, spacedim > &tria, const Point< spacedim > &center, const double inner_radius, const double outer_radius, const unsigned int n_cells=0, bool colorize=false)
void hyper_L(Triangulation< dim > &tria, const double left=-1., const double right=1., const bool colorize=false)
void subdivided_hyper_cube_with_simplices(Triangulation< dim, spacedim > &tria, const unsigned int repetitions, const double left=0.0, const double right=1.0, const bool colorize=false)
void hyper_cube_slit(Triangulation< dim > &tria, const double left=0., const double right=1., const bool colorize=false)
void hyper_cube_with_spherical_hole(Triangulation< dim > &tria, const double inner_radius=0.25, const double outer_radius=0.5, const bool colorize=false)
void eccentric_hyper_shell(Triangulation< dim > &triangulation, const Point< dim > &inner_center, const Point< dim > &outer_center, const double inner_radius, const double outer_radius, const unsigned int n_cells)
void hyper_rectangle(Triangulation< dim, spacedim > &tria, const Point< dim > &p1, const Point< dim > &p2, const bool colorize=false)
void surface_mesh_to_volumetric_mesh(const Triangulation< 2, 3 > &surface_tria, Triangulation< 3 > &vol_tria, const CGALWrappers::AdditionalData< 3 > &data=CGALWrappers::AdditionalData< 3 >{})
void uniform_channel_with_cylinder(Triangulation< dim > &tria, const std::vector< unsigned int > &lengths_and_heights, const double depth=1, const unsigned int depth_division=1, const double shell_region_radius=0.75, const unsigned int n_shells=2, const double skewness=2.0, const bool use_transfinite_region=false, const bool colorize=false)
void cylinder(Triangulation< dim > &tria, const double radius=1., const double half_length=1.)
void moebius(Triangulation< 3, 3 > &tria, const unsigned int n_cells, const unsigned int n_rotations, const double R, const double r)
void pipe_junction(Triangulation< dim, spacedim > &tria, const std::vector< std::pair< Point< spacedim >, double > > &openings, const std::pair< Point< spacedim >, double > &bifurcation, const double aspect_ratio=0.5)
void extrude_triangulation(const Triangulation< 2, 2 > &input, const unsigned int n_slices, const double height, Triangulation< 3, 3 > &result, const bool copy_manifold_ids=false, const std::vector< types::manifold_id > &manifold_priorities={})
void half_hyper_shell(Triangulation< dim > &tria, const Point< dim > &center, const double inner_radius, const double outer_radius, const unsigned int n_cells=0, const bool colorize=false)
void quarter_hyper_ball(Triangulation< dim > &tria, const Point< dim > &center=Point< dim >(), const double radius=1.)
void cheese(Triangulation< dim, spacedim > &tria, const std::vector< unsigned int > &holes)
Rectangular domain with rectangular pattern of holes.
void implicit_function(Triangulation< dim, 3 > &tria, const Function< 3 > &implicit_function, const CGALWrappers::AdditionalData< dim > &data=CGALWrappers::AdditionalData< dim >{}, const Point< 3 > &interior_point=Point< 3 >(), const double &outer_ball_radius=1.0)
void create_union_triangulation(const Triangulation< dim, spacedim > &triangulation_1, const Triangulation< dim, spacedim > &triangulation_2, Triangulation< dim, spacedim > &result)
void hyper_ball(Triangulation< dim, spacedim > &tria, const Point< spacedim > &center={}, const double radius=1., const bool attach_spherical_manifold_on_boundary_cells=false)
void subdivided_hyper_rectangle_with_simplices(Triangulation< dim, spacedim > &tria, const std::vector< unsigned int > &repetitions, const Point< dim > &p1, const Point< dim > &p2, const bool colorize=false)
void non_standard_orientation_mesh(Triangulation< 2 > &tria, const unsigned int n_rotate_middle_square)
return_type 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 alfeld_split_of_simplex_mesh(const Triangulation< dim, spacedim > &in_tria, Triangulation< dim, spacedim > &out_tria)
void subdivided_parallelepiped(Triangulation< dim > &tria, const unsigned int n_subdivisions, const Point< dim >(&corners)[dim], const bool colorize=false)
void subdivided_cylinder(Triangulation< dim > &tria, const unsigned int x_subdivisions, const double radius=1., const double half_length=1.)
void convert_hypercube_to_simplex_mesh(const Triangulation< dim, spacedim > &in_tria, Triangulation< dim, spacedim > &out_tria, const unsigned int n_divisions=(dim==2 ? 8u :24u))
void channel_with_cylinder(Triangulation< dim > &tria, const double shell_region_width=0.03, const unsigned int n_shells=2, const double skewness=2.0, const bool colorize=false)
void subdivided_hyper_L(Triangulation< dim, spacedim > &tria, const std::vector< unsigned int > &repetitions, const Point< dim > &bottom_left, const Point< dim > &top_right, const std::vector< int > &n_cells_to_remove)
void convert_simplex_to_hypercube_mesh(const Triangulation< dim, spacedim > &in_tria, Triangulation< dim, spacedim > &out_tria)
void hyper_sphere(Triangulation< spacedim - 1, spacedim > &tria, const Point< spacedim > &center=Point< spacedim >(), const double radius=1.)
void concentric_hyper_shells(Triangulation< dim > &triangulation, const Point< dim > &center, const double inner_radius=0.125, const double outer_radius=0.25, const unsigned int n_shells=1, const double skewness=0.1, const unsigned int n_cells_per_shell=0, const bool colorize=false)
void reference_cell(Triangulation< dim, spacedim > &tria, const ReferenceCell< dim > &reference_cell)
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)
void quarter_hyper_shell(Triangulation< dim > &tria, const Point< dim > &center, 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 torus(Triangulation< dim, spacedim > &tria, const double centerline_radius, const double inner_radius, const unsigned int n_cells_toroidal=6, const double phi=2.0 *numbers::PI)
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)
void simplex(Triangulation< dim, dim > &tria, const std::vector< Point< dim > > &vertices)
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 merge_triangulations(const Triangulation< dim, spacedim > &triangulation_1, const Triangulation< dim, spacedim > &triangulation_2, Triangulation< dim, spacedim > &result, const double duplicated_vertex_tolerance=1.0e-12, const bool copy_manifold_ids=false, const bool copy_boundary_ids=false)
void half_hyper_ball(Triangulation< dim > &tria, const Point< dim > &center=Point< dim >(), const double radius=1.)
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, const bool colorize=false)
void flatten_triangulation(const Triangulation< dim, spacedim1 > &in_tria, Triangulation< dim, spacedim2 > &out_tria)
constexpr double PI
Definition numbers.h:240
void add_parameters(ParameterHandler &prm)