|
Reference documentation for deal.II version 9.2.0
|
\(\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\}}\)
Go to the documentation of this file.
16 #ifndef dealii_grid_generator_h
17 #define dealii_grid_generator_h
92 template <
int dim,
int spacedim>
95 const double left = 0.,
96 const double right = 1.,
161 template <
int dim,
int spacedim>
164 const unsigned int repetitions,
165 const double left = 0.,
166 const double right = 1.,
204 template <
int dim,
int spacedim>
261 template <
int dim,
int spacedim>
264 const std::vector<unsigned int> &repetitions,
287 const std::vector<std::vector<double>> &step_sizes,
305 const std::vector<std::vector<double>> &spacing,
335 template <
int dim,
int spacedim>
338 const std::vector<unsigned int> &holes);
388 const double inner_radius = 0.4,
389 const double outer_radius = 1.,
390 const double pad_bottom = 2.,
391 const double pad_top = 2.,
392 const double pad_left = 1.,
393 const double pad_right = 1.,
398 const unsigned int n_slices = 2,
490 const double shell_region_width = 0.03,
491 const unsigned int n_shells = 2,
492 const double skewness = 2.0,
517 template <
int dim,
int spacedim>
580 const unsigned int n_subdivisions,
596 const unsigned int (&n_subdivisions)[dim],
598 const unsigned int *n_subdivisions,
626 template <
int dim,
int spacedim>
631 const std::vector<unsigned int> &subdivisions = {},
653 const double left = 0.,
654 const double right = 1.,
655 const double thickness = 1.,
738 const double radius = 1.,
739 const bool attach_spherical_manifold_on_boundary_cells =
false);
777 const double radius = 1.);
805 template <
int spacedim>
808 const double radius = 1.);
847 const double radius = 1.);
865 const double radius = 1.);
893 const double radius = 1.,
894 const double half_length = 1.);
931 const double radius_0 = 1.0,
932 const double radius_1 = 0.5,
933 const double half_length = 1.0);
963 template <
int dim,
int spacedim>
966 const std::vector<unsigned int> &sizes,
967 const bool colorize_cells =
false);
1007 const double left = -1.,
1008 const double right = 1.,
1042 template <
int dim,
int spacedim>
1045 const std::vector<unsigned int> &repetitions,
1048 const std::vector<int> & n_cells_to_remove);
1072 const double left = 0.,
1073 const double right = 1.,
1137 const double inner_radius,
1138 const double outer_radius,
1139 const unsigned int n_cells = 0,
1180 const double inner_radius,
1181 const double outer_radius,
1217 const double inner_radius,
1218 const double outer_radius,
1219 const unsigned int n_cells = 0,
1252 const double inner_radius,
1253 const double outer_radius,
1254 const unsigned int n_cells = 0,
1287 const double length,
1288 const double inner_radius,
1289 const double outer_radius,
1290 const unsigned int n_radial_cells = 0,
1291 const unsigned int n_axial_cells = 0);
1342 template <
int dim,
int spacedim>
1347 const unsigned int n_cells_toroidal = 6,
1382 const double inner_radius = .25,
1383 const double outer_radius = .5,
1384 const double L = .5,
1385 const unsigned int repetitions = 1,
1463 const double inner_radius = 0.125,
1464 const double outer_radius = 0.25,
1465 const unsigned int n_shells = 1,
1466 const double skewness = 0.1,
1467 const unsigned int n_cells_per_shell = 0,
1485 const unsigned int n_rotations,
1526 template <
int dim,
int spacedim>
1530 const std::string & grid_generator_function_name,
1531 const std::string & grid_generator_function_arguments);
1599 template <
int dim,
int spacedim>
1604 const double duplicated_vertex_tolerance = 1.0
e-12,
1605 const bool copy_manifold_ids =
false);
1621 template <
int dim,
int spacedim>
1626 const double duplicated_vertex_tolerance = 1.0
e-12,
1627 const bool copy_manifold_ids =
false);
1676 template <
int dim,
int spacedim = dim>
1679 const std::vector<unsigned int> & extents,
1718 template <
int dim,
int spacedim>
1760 template <
int dim,
int spacedim>
1825 const unsigned int n_slices,
1826 const double height,
1828 const bool copy_manifold_ids =
false,
1829 const std::vector<types::manifold_id> &manifold_priorities = {});
1840 const unsigned int n_slices,
1841 const double height,
1843 const bool copy_manifold_ids =
false,
1844 const std::vector<types::manifold_id> &manifold_priorities = {});
1870 const std::vector<double> & slice_coordinates,
1872 const bool copy_manifold_ids =
false,
1873 const std::vector<types::manifold_id> &manifold_priorities = {});
1884 const std::vector<double> & slice_coordinates,
1886 const bool copy_manifold_ids =
false,
1887 const std::vector<types::manifold_id> &manifold_priorities = {});
1925 template <
int dim,
int spacedim1,
int spacedim2>
2138 template <
template <
int,
int>
class MeshType,
int dim,
int spacedim>
2139 struct ExtractBoundaryMesh
2142 std::map<
typename MeshType<dim - 1, spacedim>::cell_iterator,
2143 typename MeshType<dim, spacedim>::face_iterator>;
2222 template <
template <
int,
int>
class MeshType,
int dim,
int spacedim>
2224 std::map<
typename MeshType<dim - 1, spacedim>::cell_iterator,
2225 typename MeshType<dim, spacedim>::face_iterator>
2227 typename ExtractBoundaryMesh<MeshType, dim, spacedim>::return_type
2230 MeshType<dim - 1, spacedim> & surface_mesh,
2231 const std::set<types::boundary_id> &boundary_ids =
2232 std::set<types::boundary_id>());
2252 <<
"The number of repetitions " << arg1 <<
" must be >=1.");
2258 <<
"The vector of repetitions must have " << arg1
2265 "The input to this function is oriented in a way that will"
2266 " cause all cells to have negative measure.");
#define DeclExceptionMsg(Exception, defaulttext)
void subdivided_parallelepiped(Triangulation< dim > &tria, const unsigned int n_subdivisions, const Point< dim >(&corners)[dim], 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 create_union_triangulation(const Triangulation< dim, spacedim > &triangulation_1, const Triangulation< dim, spacedim > &triangulation_2, Triangulation< dim, spacedim > &result)
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 flatten_triangulation(const Triangulation< dim, spacedim1 > &in_tria, Triangulation< dim, spacedim2 > &out_tria)
void simplex(Triangulation< dim, dim > &tria, const std::vector< Point< dim >> &vertices)
void enclosed_hyper_cube(Triangulation< dim > &tria, const double left=0., const double right=1., const double thickness=1., const bool colorize=false)
void concentric_hyper_shells(Triangulation< dim > &triangulation, const Point< dim > ¢er, 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 general_cell(Triangulation< dim, spacedim > &tria, const std::vector< Point< spacedim >> &vertices, const bool colorize=false)
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 torus(Triangulation< dim, spacedim > &tria, const double R, const double r, const unsigned int n_cells_toroidal=6, const double phi=2.0 *numbers::PI)
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 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 hyper_rectangle(Triangulation< dim, spacedim > &tria, const Point< dim > &p1, const Point< dim > &p2, const bool colorize=false)
SymmetricTensor< 2, dim, Number > e(const Tensor< 2, dim, Number > &F)
void parallelogram(Triangulation< dim > &tria, 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.)
__global__ void set(Number *val, const Number s, const size_type N)
void moebius(Triangulation< 3, 3 > &tria, const unsigned int n_cells, const unsigned int n_rotations, const double R, const double r)
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 create_triangulation(Triangulation< dim, dim > &tria, const AdditionalData &additional_data=AdditionalData())
void cylinder(Triangulation< dim > &tria, const double radius=1., const double half_length=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)
void hyper_L(Triangulation< dim > &tria, const double left=-1., const double right=1., const 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 quarter_hyper_ball(Triangulation< dim > &tria, const Point< dim > ¢er=Point< dim >(), const double radius=1.)
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 & ExcInvalidRepetitions(int arg1)
void hyper_sphere(Triangulation< spacedim - 1, spacedim > &tria, const Point< spacedim > ¢er=Point< spacedim >(), const double radius=1.)
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 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)
#define DEAL_II_NAMESPACE_OPEN
unsigned int airfoil_sampling_factor
unsigned int n_subdivision_x_1
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 hyper_cube_slit(Triangulation< dim > &tria, const double left=0., const double right=1., const bool colorize=false)
#define DeclException1(Exception1, type1, outsequence)
Point< 2, double > joukowski_center
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)
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)
unsigned int n_subdivision_y
void hyper_ball_balanced(Triangulation< dim > &tria, const Point< dim > ¢er=Point< dim >(), const double radius=1.)
unsigned int n_subdivision_x_2
unsigned int n_subdivision_x_0
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 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 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_cube(Triangulation< dim, spacedim > &tria, const double left=0., const double right=1., const bool colorize=false)
void cheese(Triangulation< dim, spacedim > &tria, const std::vector< unsigned int > &holes)
Rectangular domain with rectangular pattern of holes.
#define DeclException0(Exception0)
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)
static ::ExceptionBase & ExcInvalidInputOrientation()
static ::ExceptionBase & ExcInvalidRadii()
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)
const typename ::parallel::distributed::Triangulation< dim, spacedim > * triangulation
unsigned int n_cells(const internal::TriangulationImplementation::NumberCache< 1 > &c)
#define DEAL_II_NAMESPACE_CLOSE
void parallelepiped(Triangulation< dim > &tria, const Point< dim >(&corners)[dim], const bool colorize=false)
static constexpr double PI
void add_parameters(ParameterHandler &prm)
static ::ExceptionBase & ExcInvalidRepetitionsDimension(int arg1)