Reference documentation for deal.II version 8.1.0
grid_out.h
1 // ---------------------------------------------------------------------
2 // @f$Id: grid_out.h 30040 2013-07-18 17:06:48Z maier @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_out_h
18 #define __deal2__grid_out_h
19 
20 
21 
22 #include <deal.II/base/config.h>
24 #include <deal.II/base/point.h>
25 #include <deal.II/grid/tria.h>
26 #include <deal.II/fe/mapping.h>
27 
28 #include <string>
29 
31 
32 class ParameterHandler;
33 template <int dim, int spacedim> class Triangulation;
34 template <int dim, int spacedim> class Mapping;
35 
36 
46 namespace GridOutFlags
47 {
53  struct DX
54  {
59 
64 
69 
74 
80 
84  DX (const bool write_cells = true,
85  const bool write_faces = false,
86  const bool write_diameter = false,
87  const bool write_measure = false,
88  const bool write_all_faces = true);
89 
93  static void declare_parameters (ParameterHandler &param);
94 
98  void parse_parameters (ParameterHandler &param);
99  };
100 
106  struct Msh
107  {
137 
141  Msh (const bool write_faces = false,
142  const bool write_lines = false);
146  static void declare_parameters (ParameterHandler &param);
147 
151  void parse_parameters (ParameterHandler &param);
152  };
153 
154 
160  struct Ucd
161  {
172 
186 
203 
207  Ucd (const bool write_preamble = false,
208  const bool write_faces = false,
209  const bool write_lines = false);
210 
214  static void declare_parameters (ParameterHandler &param);
215 
219  void parse_parameters (ParameterHandler &param);
220  };
221 
222 
228  struct Gnuplot
229  {
241 
249 
256 
260  Gnuplot (const bool write_cell_number = false,
261  const unsigned int n_boundary_face_points = 2,
262  const bool curved_inner_cells = false);
266  static void declare_parameters (ParameterHandler &param);
267 
271  void parse_parameters (ParameterHandler &param);
272  };
273 
286  {
292  enum SizeType
293  {
294  width, height
295  };
296 
301 
309  unsigned int size;
310 
314  double line_width;
315 
322 
331 
339 
343  EpsFlagsBase (const SizeType size_type = width,
344  const unsigned int size = 300,
345  const double line_width = 0.5,
346  const bool color_lines_on_user_flag = false,
347  const unsigned int n_boundary_face_points = 2,
348  const bool color_lines_level = false);
352  static void declare_parameters (ParameterHandler &param);
353 
358  void parse_parameters (ParameterHandler &param);
359  };
360 
361 
373  template <int dim>
374  struct Eps
375  {};
376 
382  template <>
383  struct Eps<1> : public EpsFlagsBase
384  {
388  Eps (const SizeType size_type = width,
389  const unsigned int size = 300,
390  const double line_width = 0.5,
391  const bool color_lines_on_user_flag = false,
392  const unsigned int n_boundary_face_points = 2);
396  static void declare_parameters (ParameterHandler &param);
397 
401  void parse_parameters (ParameterHandler &param);
402  };
403 
404 
410  template <>
411  struct Eps<2> : public EpsFlagsBase
412  {
432 
438 
442  Eps (const SizeType size_type = width,
443  const unsigned int size = 300,
444  const double line_width = 0.5,
445  const bool color_lines_on_user_flag = false,
446  const unsigned int n_boundary_face_points = 2,
447  const bool write_cell_numbers = false,
448  const bool write_cell_number_level = true,
449  const bool write_vertex_numbers = false,
450  const bool color_lines_level = false);
454  static void declare_parameters (ParameterHandler &param);
455 
459  void parse_parameters (ParameterHandler &param);
460  };
461 
467  template <>
468  struct Eps<3> : public EpsFlagsBase
469  {
475  double azimut_angle;
476 
485  double turn_angle;
486 
490  Eps (const SizeType size_type = width,
491  const unsigned int size = 300,
492  const double line_width = 0.5,
493  const bool color_lines_on_user_flag = false,
494  const unsigned int n_boundary_face_points = 2,
495  const double azimut_angle = 60,
496  const double turn_angle = 30);
500  static void declare_parameters (ParameterHandler &param);
501 
505  void parse_parameters (ParameterHandler &param);
506  };
507 
513  struct XFig
514  {
519 
523  enum Coloring
524  {
532  level_subdomain_id
533  } color_by;
534 
541  bool level_color DEAL_II_DEPRECATED;
542 
550 
555 
560 
566 
573 
579 
586 
591 
596 
600  XFig();
604  static void declare_parameters (ParameterHandler &param);
605 
609  void parse_parameters (ParameterHandler &param);
610  };
611 
612 
618  struct Svg
619  {
621  unsigned int line_thickness;
624 
626  bool margin;
627 
632  {
639  };
640 
641  Background background;
642 
643  // View angles for the perspective view of the grid; Default is 0, 0 (top view).
652 
656  enum Coloring
657  {
667  level_subdomain_id
668  };
669 
670  Coloring coloring;
671 
674 
681  bool label_level_number; // default: true
682  bool label_cell_index; // default: true
683  bool label_material_id; // default: false
684  bool label_subdomain_id; // default: false
685  bool label_level_subdomain_id; // default: false
686 
691 
695  Svg(const unsigned int line_thickness = 2,
696  const unsigned int boundary_line_thickness = 4,
697  bool margin = true,
698  const Background background = white,
699  const int azimuth_angle = 0,
700  const int polar_angle = 0,
701  const Coloring coloring = level_number,
702  const bool convert_level_number_to_height = false,
703  const bool label_level_number = true,
704  const bool label_cell_index = true,
705  const bool label_material_id = false,
706  const bool label_subdomain_id = false,
707  const bool draw_colorbar = true,
708  const bool draw_legend = true);
709 
714 // static void declare_parameters (ParameterHandler &param);
715 
720 // void parse_parameters (ParameterHandler &param);
721  };
722 
728  struct MathGL
729  {
733  MathGL ();
734 
739 
743  static void declare_parameters (ParameterHandler &param);
744 
748  void parse_parameters (ParameterHandler &param);
749  };
750 
751 }
752 
753 
754 
829 class GridOut
830 {
831 public:
841  {
845  dx,
859  mathgl
860  };
861 
865  GridOut ();
866 
879  template <int dim>
880  void write_dx (const Triangulation<dim> &tria,
881  std::ostream &out) const;
882 
945  template <int dim, int spacedim>
946  void write_gnuplot (const Triangulation<dim,spacedim> &tria,
947  std::ostream &out,
948  const Mapping<dim,spacedim> *mapping=0) const;
949 
969  template <int dim, int spacedim>
970  void write_msh (const Triangulation<dim,spacedim> &tria,
971  std::ostream &out) const;
972 
993  template <int dim, int spacedim>
994  void write_ucd (const Triangulation<dim,spacedim> &tria,
995  std::ostream &out) const;
996 
1028  template <int dim>
1029  void write_eps (const Triangulation<dim> &tria,
1030  std::ostream &out,
1031  const Mapping<dim> *mapping=0) const;
1032 
1051  template <int dim>
1052  void write_xfig (const Triangulation<dim> &tria,
1053  std::ostream &out,
1054  const Mapping<dim> *mapping=0) const;
1055 
1079  template <int dim, int spacedim>
1080  void write_svg (const Triangulation<dim,spacedim> &tria,
1081  std::ostream &out) const;
1082 
1083  void write_svg (const Triangulation<2,2> &tria,
1084  std::ostream &out) const;
1085 
1101  template <int dim>
1102  void write_mathgl (const Triangulation<dim> &tria,
1103  std::ostream &out) const;
1104 
1109  template <int dim, int spacedim>
1110  void write (const Triangulation<dim,spacedim> &tria,
1111  std::ostream &out,
1112  const OutputFormat output_format,
1113  const Mapping<dim,spacedim> *mapping=0) const;
1114 
1118  template <int dim, int spacedim>
1119  void write (const Triangulation<dim,spacedim> &tria,
1120  std::ostream &out,
1121  const Mapping<dim,spacedim> *mapping=0) const;
1122 
1126  void set_flags (const GridOutFlags::DX &flags);
1127 
1131  void set_flags (const GridOutFlags::Msh &flags);
1132 
1136  void set_flags (const GridOutFlags::Ucd &flags);
1137 
1141  void set_flags (const GridOutFlags::Gnuplot &flags);
1142 
1147  void set_flags (const GridOutFlags::Eps<1> &flags);
1148 
1153  void set_flags (const GridOutFlags::Eps<2> &flags);
1154 
1158  void set_flags (const GridOutFlags::Eps<3> &flags);
1159 
1163  void set_flags (const GridOutFlags::XFig &flags);
1164 
1168  void set_flags (const GridOutFlags::Svg &flags);
1169 
1173  void set_flags (const GridOutFlags::MathGL &flags);
1174 
1191  static std::string default_suffix (const OutputFormat output_format);
1192 
1197  std::string default_suffix () const;
1198 
1214  static OutputFormat parse_output_format (const std::string &format_name);
1215 
1221  static std::string get_output_format_names ();
1222 
1226  static void declare_parameters (ParameterHandler &param);
1227 
1231  void parse_parameters (ParameterHandler &param);
1232 
1237  std::size_t memory_consumption () const;
1238 
1243 
1244 private:
1249 
1254 
1260 
1266 
1272 
1280 
1288 
1296 
1301 
1306 
1311 
1329  template <int dim, int spacedim>
1330  void write_msh_faces (const Triangulation<dim,spacedim> &tria,
1331  const unsigned int starting_index,
1332  std::ostream &out) const;
1333 
1339  void write_msh_faces (const Triangulation<1,1> &tria,
1340  const unsigned int starting_index,
1341  std::ostream &out) const;
1347  void write_msh_faces (const Triangulation<1,2> &tria,
1348  const unsigned int starting_index,
1349  std::ostream &out) const;
1350  void write_msh_faces (const Triangulation<1,3> &tria,
1351  const unsigned int starting_index,
1352  std::ostream &out) const;
1353 
1354 
1355 
1373  template <int dim, int spacedim>
1374  void write_msh_lines (const Triangulation<dim,spacedim> &tria,
1375  const unsigned int starting_index,
1376  std::ostream &out) const;
1377 
1382  void write_msh_lines (const Triangulation<1,1> &tria,
1383  const unsigned int starting_index,
1384  std::ostream &out) const;
1385 
1390  void write_msh_lines (const Triangulation<1,2> &tria,
1391  const unsigned int starting_index,
1392  std::ostream &out) const;
1393  void write_msh_lines (const Triangulation<1,3> &tria,
1394  const unsigned int starting_index,
1395  std::ostream &out) const;
1400  void write_msh_lines (const Triangulation<2,2> &tria,
1401  const unsigned int starting_index,
1402  std::ostream &out) const;
1407  void write_msh_lines (const Triangulation<2,3> &tria,
1408  const unsigned int starting_index,
1409  std::ostream &out) const;
1410 
1430  template <int dim, int spacedim>
1431  void write_ucd_faces (const Triangulation<dim,spacedim> &tria,
1432  const unsigned int starting_index,
1433  std::ostream &out) const;
1434 
1439  void write_ucd_faces (const Triangulation<1,1> &tria,
1440  const unsigned int starting_index,
1441  std::ostream &out) const;
1442 
1447  void write_ucd_faces (const Triangulation<1,2> &tria,
1448  const unsigned int starting_index,
1449  std::ostream &out) const;
1450  void write_ucd_faces (const Triangulation<1,3> &tria,
1451  const unsigned int starting_index,
1452  std::ostream &out) const;
1453 
1454 
1474  template <int dim, int spacedim>
1475  void write_ucd_lines (const Triangulation<dim,spacedim> &tria,
1476  const unsigned int starting_index,
1477  std::ostream &out) const;
1478 
1483  void write_ucd_lines (const Triangulation<1,1> &tria,
1484  const unsigned int starting_index,
1485  std::ostream &out) const;
1490  void write_ucd_lines (const Triangulation<1,2> &tria,
1491  const unsigned int starting_index,
1492  std::ostream &out) const;
1493  void write_ucd_lines (const Triangulation<1,3> &tria,
1494  const unsigned int starting_index,
1495  std::ostream &out) const;
1496 
1497 
1502  void write_ucd_lines (const Triangulation<2,2> &tria,
1503  const unsigned int starting_index,
1504  std::ostream &out) const;
1509  void write_ucd_lines (const Triangulation<2,3> &tria,
1510  const unsigned int starting_index,
1511  std::ostream &out) const;
1512 
1513 
1524  static Point<2> svg_project_point(Point<3> point,
1525  Point<3> camera_position,
1526  Point<3> camera_direction,
1527  Point<3> camera_horizontal,
1528  float camera_focus);
1529 
1544  template <int dim, int spacedim>
1545  unsigned int n_boundary_faces (const Triangulation<dim,spacedim> &tria) const;
1546 
1551  unsigned int n_boundary_faces (const Triangulation<1,1> &tria) const;
1556  unsigned int n_boundary_faces (const Triangulation<1,2> &tria) const;
1557  unsigned int n_boundary_faces (const Triangulation<1,3> &tria) const;
1572  template <int dim, int spacedim>
1573  unsigned int n_boundary_lines (const Triangulation<dim,spacedim> &tria) const;
1574 
1579  unsigned int n_boundary_lines (const Triangulation<1,1> &tria) const;
1580 
1585  unsigned int n_boundary_lines (const Triangulation<1,2> &tria) const;
1586  unsigned int n_boundary_lines (const Triangulation<1,3> &tria) const;
1587 
1592  unsigned int n_boundary_lines (const Triangulation<2,2> &tria) const;
1597  unsigned int n_boundary_lines (const Triangulation<2,3> &tria) const;
1598 };
1599 
1600 
1601 
1602 DEAL_II_NAMESPACE_CLOSE
1603 
1604 #endif
Use white background.
Definition: grid_out.h:636
OutputFormat default_format
Definition: grid_out.h:1248
DX(const bool write_cells=true, const bool write_faces=false, const bool write_diameter=false, const bool write_measure=false, const bool write_all_faces=true)
bool margin
Margin around the plotted area.
Definition: grid_out.h:626
bool write_cells
Definition: grid_out.h:58
write() calls write_dx()
Definition: grid_out.h:845
unsigned int n_boundary_face_points
Definition: grid_out.h:554
No cell coloring.
Definition: grid_out.h:659
GridOutFlags::Eps< 2 > eps_flags_2
Definition: grid_out.h:1287
OutputFormat
Definition: grid_out.h:840
bool draw_legend
Draw a legend next to the plotted grid, explaining the label of the cells.
Definition: grid_out.h:690
Use transparent value of SVG.
Definition: grid_out.h:634
bool level_color DEAL_II_DEPRECATED
Definition: grid_out.h:541
Convert the level number into the cell color.
Definition: grid_out.h:663
write() calls write_eps()
Definition: grid_out.h:849
unsigned int line_thickness
Thickness of the lines between cells.
Definition: grid_out.h:621
unsigned int n_boundary_face_points
Definition: grid_out.h:248
bool convert_level_number_to_height
Interpret the level number of the cells as altitude over the x-y-plane (useful in the perpspective vi...
Definition: grid_out.h:673
bool write_diameter
Definition: grid_out.h:68
static void declare_parameters(ParameterHandler &param)
unsigned int boundary_line_thickness
Thickness of lines at the boundary.
Definition: grid_out.h:623
void parse_parameters(ParameterHandler &param)
::ExceptionBase & ExcInvalidState()
bool write_all_faces
Definition: grid_out.h:79
write() calls write_ucd()
Definition: grid_out.h:851
Point< 2 > scaling
Definition: grid_out.h:559
GridOutFlags::Gnuplot gnuplot_flags
Definition: grid_out.h:1271
Convert the global subdomain id into the cell color.
Definition: grid_out.h:530
Convert the material id into the cell color.
Definition: grid_out.h:526
GridOutFlags::MathGL mathgl_flags
Definition: grid_out.h:1310
GridOutFlags::DX dx_flags
Definition: grid_out.h:1253
GridOutFlags::Msh msh_flags
Definition: grid_out.h:1259
GridOutFlags::Eps< 1 > eps_flags_1
Definition: grid_out.h:1279
write() calls write_gnuplot()
Definition: grid_out.h:847
GridOutFlags::XFig xfig_flags
Definition: grid_out.h:1300
#define DeclException0(Exception0)
Definition: exceptions.h:505
Convert the subdomain id into the cell color.
Definition: grid_out.h:665
GridOutFlags::Ucd ucd_flags
Definition: grid_out.h:1265
Do nothing in write()
Definition: grid_out.h:843
write() calls write_xfig()
Definition: grid_out.h:853
bool write_faces
Definition: grid_out.h:63
Convert the level into the cell color.
Definition: grid_out.h:528
unsigned int n_boundary_face_points
Definition: grid_out.h:330
Point< 2 > offset
Definition: grid_out.h:565
write() calls write_msh()
Definition: grid_out.h:855
write() calls write_svg()
Definition: grid_out.h:857
GridOutFlags::Svg svg_flags
Definition: grid_out.h:1305
bool write_measure
Definition: grid_out.h:73
Convert the material id into the cell color (default)
Definition: grid_out.h:661
GridOutFlags::Eps< 3 > eps_flags_3
Definition: grid_out.h:1295
bool label_level_number
Definition: grid_out.h:681
bool draw_colorbar
Draw a colorbar next to the plotted grid with respect to the chosen coloring of the cells...
Definition: grid_out.h:688