Reference documentation for deal.II version 8.1.0
grid_generator.h
1 // ---------------------------------------------------------------------
2 // @f$Id: grid_generator.h 31932 2013-12-08 02:15:54Z heister @f$
3 //
4 // Copyright (C) 1999 - 2013 by the deal.II authors
5 //
6 // This file is part of the deal.II library.
7 //
8 // The deal.II library is free software; you can use it, redistribute
9 // it, and/or modify it under the terms of the GNU Lesser General
10 // Public License as published by the Free Software Foundation; either
11 // version 2.1 of the License, or (at your option) any later version.
12 // The full text of the license can be found in the file LICENSE at
13 // the top level of the deal.II distribution.
14 //
15 // ---------------------------------------------------------------------
16 
17 #ifndef __deal2__grid_generator_h
18 #define __deal2__grid_generator_h
19 
20 
21 #include <deal.II/base/config.h>
23 #include <deal.II/base/point.h>
24 #include <deal.II/base/table.h>
25 #include <deal.II/grid/tria.h>
26 #include <map>
27 
29 
30 template <int dim, int spacedim> class Triangulation;
31 template <typename number> class Vector;
32 template <typename number> class SparseMatrix;
33 
34 
53 namespace GridGenerator
54 {
72  template <int dim, int spacedim>
74  const double left = 0.,
75  const double right= 1.);
76 
90  template <int dim>
92  const unsigned int repetitions,
93  const double left = 0.,
94  const double right= 1.);
95 
111  template <int dim, int spacedim>
113  const Point<spacedim> &p1,
114  const Point<spacedim> &p2,
115  const bool colorize = false);
116 
148  template <int dim>
149  void
151  const std::vector<unsigned int> &repetitions,
152  const Point<dim> &p1,
153  const Point<dim> &p2,
154  const bool colorize=false);
155 
171  template <int dim>
172  void
174  const std::vector<std::vector<double> > &step_sizes,
175  const Point<dim> &p_1,
176  const Point<dim> &p_2,
177  const bool colorize);
178 
187  template <int dim>
188  void
190  const std::vector< std::vector<double> > &spacing,
191  const Point<dim> &p,
192  const Table<dim,types::material_id> &material_id,
193  const bool colorize=false);
194 
205  template <int dim>
206  void
208  const Point<dim> corners[dim],
209  const bool colorize=false);
210 
214  template <int dim>
215  void
217  const Tensor<2,dim> &corners,
218  const bool colorize=false) DEAL_II_DEPRECATED;
219 
237  template <int dim>
238  void
240  const Point<dim> (&corners) [dim],
241  const bool colorize = false);
242 
255  template <int dim>
256  void
258  const unsigned int n_subdivisions,
259  const Point<dim> (&corners) [dim],
260  const bool colorize = false);
261 
270  template <int dim>
271  void
273  const unsigned int (n_subdivisions) [dim],
274  const Point<dim> (&corners) [dim],
275  const bool colorize = false);
276 
277 
292  template <int dim>
294  const double left = 0.,
295  const double right= 1.,
296  const double thickness = 1.,
297  const bool colorize = false);
298 
313  template <int dim>
314  void hyper_ball (Triangulation<dim> &tria,
315  const Point<dim> &center = Point<dim>(),
316  const double radius = 1.);
317 
331  template <int dim>
333  const Point<dim> &center = Point<dim>(),
334  const double radius = 1.);
335 
351  template <int dim>
352  void cylinder (Triangulation<dim> &tria,
353  const double radius = 1.,
354  const double half_length = 1.);
355 
380  template <int dim>
381  void
383  const double radius_0 = 1.0,
384  const double radius_1 = 0.5,
385  const double half_length = 1.0);
386 
402  template <int dim>
403  void hyper_L (Triangulation<dim> &tria,
404  const double left = -1.,
405  const double right= 1.);
406 
422  template <int dim>
424  const double left = 0.,
425  const double right = 1.,
426  const bool colorize = false);
427 
476  template <int dim>
477  void hyper_shell (Triangulation<dim> &tria,
478  const Point<dim> &center,
479  const double inner_radius,
480  const double outer_radius,
481  const unsigned int n_cells = 0,
482  bool colorize = false);
483 
505  template <int dim>
507  const Point<dim> &center,
508  const double inner_radius,
509  const double outer_radius,
510  const unsigned int n_cells = 0,
511  const bool colorize = false);
512 
513 
534  template <int dim>
536  const Point<dim> &center,
537  const double inner_radius,
538  const double outer_radius,
539  const unsigned int n_cells = 0,
540  const bool colorize = false);
541 
554  template <int dim>
556  const double length,
557  const double inner_radius,
558  const double outer_radius,
559  const unsigned int n_radial_cells = 0,
560  const unsigned int n_axial_cells = 0);
561 
562 
563 
578  void torus (Triangulation<2,3> &tria,
579  const double R,
580  const double r);
581 
582 
607  template<int dim>
609  Triangulation<dim> &triangulation,
610  const double inner_radius = .25,
611  const double outer_radius = .5,
612  const double L = .5,
613  const unsigned int repetition = 1,
614  const bool colorize = false);
615 
626  void moebius (Triangulation<3,3> &tria,
627  const unsigned int n_cells,
628  const unsigned int n_rotations,
629  const double R,
630  const double r);
631 
662  template <int dim, int spacedim>
663  void
664  merge_triangulations (const Triangulation<dim, spacedim> &triangulation_1,
665  const Triangulation<dim, spacedim> &triangulation_2,
667 
668 
676  void
678  const unsigned int n_slices,
679  const double height,
680  Triangulation<3,3> &result);
681 
696  template <int dim>
698  const std::map<unsigned int,Point<dim> > &new_points) DEAL_II_DEPRECATED;
699 
703  DeclException0 (ExcInvalidRadii);
707  DeclException1 (ExcInvalidRepetitions,
708  int,
709  << "The number of repetitions " << arg1
710  << " must be >=1.");
714  DeclException1 (ExcInvalidRepetitionsDimension,
715  int,
716  << "The vector of repetitions must have "
717  << arg1 <<" elements.");
718 }
719 
720 
721 
722 DEAL_II_NAMESPACE_CLOSE
723 
724 #endif
DeclException0(ExcInvalidRadii)
void parallelogram(Triangulation< dim > &tria, const Point< dim > corners[dim], 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 moebius(Triangulation< 3, 3 > &tria, const unsigned int n_cells, const unsigned int n_rotations, const double R, const double r)
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 extrude_triangulation(const Triangulation< 2, 2 > &input, const unsigned int n_slices, const double height, Triangulation< 3, 3 > &result)
void laplace_transformation(Triangulation< dim > &tria, const std::map< unsigned int, Point< dim > > &new_points) DEAL_II_DEPRECATED
void enclosed_hyper_cube(Triangulation< dim > &tria, const double left=0., const double right=1., const double thickness=1., const bool colorize=false)
void subdivided_parallelepiped(Triangulation< dim > &tria, const unsigned int n_subdivisions, const Point< dim >(&corners)[dim], const bool colorize=false)
void hyper_shell(Triangulation< dim > &tria, const Point< dim > &center, 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_cube(Triangulation< dim, spacedim > &tria, const double left=0., const double right=1.)
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 repetition=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 half_hyper_ball(Triangulation< dim > &tria, const Point< dim > &center=Point< dim >(), const double radius=1.)
void cylinder(Triangulation< dim > &tria, const double radius=1., const double half_length=1.)
void subdivided_hyper_cube(Triangulation< dim > &tria, const unsigned int repetitions, const double left=0., const double right=1.)
BlockCompressedSparsityPattern CompressedBlockSparsityPattern DEAL_II_DEPRECATED
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 > &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 hyper_rectangle(Triangulation< dim, spacedim > &tria, const Point< spacedim > &p1, const Point< spacedim > &p2, const bool colorize=false)
void parallelepiped(Triangulation< dim > &tria, const Point< dim >(&corners)[dim], const bool colorize=false)
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)
Definition: table.h:33
void hyper_ball(Triangulation< dim > &tria, const Point< dim > &center=Point< dim >(), const double radius=1.)
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)