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_out.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 - 2025 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_out_h
14#define dealii_grid_out_h
15
16
17
18#include <deal.II/base/config.h>
19
22#include <deal.II/base/point.h>
23
24#include <string>
25
27
28// Forward declarations
29#ifndef DOXYGEN
31template <int dim, int spacedim>
33class Triangulation;
34template <int dim, int spacedim>
35class Mapping;
36#endif
37
38
47namespace GridOutFlags
48{
54 struct DX
55 {
60
65
70
75
81
85 DX(const bool write_cells = true,
86 const bool write_faces = false,
87 const bool write_diameter = false,
88 const bool write_measure = false,
89 const bool write_all_faces = true);
90
94 static void
96
100 void
102 };
103
109 struct Msh
110 {
139
143 Msh(const bool write_faces = false, const bool write_lines = false);
147 static void
149
153 void
155 };
156
157
163 struct Ucd
164 {
175
189
205
209 Ucd(const bool write_preamble = false,
210 const bool write_faces = false,
211 const bool write_lines = false);
212
216 static void
218
222 void
224 };
225
226
232 struct Gnuplot
233 {
244
252
258
271
275 Gnuplot(const bool write_cell_number = false,
276 const unsigned int n_extra_curved_line_points = 2,
277 const bool curved_inner_cells = false,
278 const bool write_additional_boundary_lines = true);
279
283 static void
285
289 void
291 };
292
305 {
312 {
320 height
321 };
322
327
335 unsigned int size;
336
341
349
361
369
374 const unsigned int size = 300,
375 const double line_width = 0.5,
376 const bool color_lines_on_user_flag = false,
377 const unsigned int n_boundary_face_points = 2,
378 const bool color_lines_level = false);
382 static void
384
388 void
390 };
391
392
403 template <int dim>
404 struct Eps
405 {};
406
412 template <>
413 struct Eps<1> : public EpsFlagsBase
414 {
418 Eps(const SizeType size_type = width,
419 const unsigned int size = 300,
420 const double line_width = 0.5,
421 const bool color_lines_on_user_flag = false,
422 const unsigned int n_boundary_face_points = 2);
426 static void
427 declare_parameters(ParameterHandler &param);
428
432 void
433 parse_parameters(ParameterHandler &param);
434 };
435
436
442 template <>
443 struct Eps<2> : public EpsFlagsBase
444 {
462
468
472 Eps(const SizeType size_type = width,
473 const unsigned int size = 300,
474 const double line_width = 0.5,
475 const bool color_lines_on_user_flag = false,
476 const unsigned int n_boundary_face_points = 2,
477 const bool write_cell_numbers = false,
478 const bool write_cell_number_level = true,
479 const bool write_vertex_numbers = false,
480 const bool color_lines_level = false);
484 static void
485 declare_parameters(ParameterHandler &param);
486
490 void
491 parse_parameters(ParameterHandler &param);
492 };
493
499 template <>
500 struct Eps<3> : public EpsFlagsBase
501 {
508
518
522 Eps(const SizeType size_type = width,
523 const unsigned int size = 300,
524 const double line_width = 0.5,
525 const bool color_lines_on_user_flag = false,
526 const unsigned int n_boundary_face_points = 2,
527 const double azimut_angle = 60,
528 const double turn_angle = 30);
532 static void
533 declare_parameters(ParameterHandler &param);
534
538 void
539 parse_parameters(ParameterHandler &param);
540 };
541
639
640
653 struct Svg
654 {
659 unsigned int height;
660
665 unsigned int width;
666
670 unsigned int line_thickness;
675
679 bool margin;
680
685 {
690
695
700 dealii
701 };
702
707
708 // View angles for the perspective view of the grid; Default is 0, 0 (top
709 // view).
710
715
720
737
739
743
749
758
763
768
773
778
787
793
799
803 Svg(const unsigned int line_thickness = 2,
804 const unsigned int boundary_line_thickness = 4,
805 const bool margin = true,
807 const int azimuth_angle = 0,
808 const int polar_angle = 0,
810 const bool convert_level_number_to_height = false,
811 const bool label_level_number = false,
812 const bool label_cell_index = false,
813 const bool label_material_id = false,
814 const bool label_subdomain_id = false,
815 const bool draw_colorbar = false,
816 const bool draw_legend = false,
817 const bool label_boundary_id = false);
818 };
819
825 struct MathGL
826 {
830 MathGL();
831
836
840 static void
842
846 void
848 };
849
850
858 {
862 Vtk(const bool output_cells = true,
863 const bool output_faces = true,
864 const bool output_edges = true,
865 const bool output_only_relevant = true)
870 {}
871
876
881
886
892 };
893
894
914} // namespace GridOutFlags
915
916
917
991{
992public:
1023
1027 GridOut();
1028
1037 template <int dim, int spacedim>
1038 void
1039 write_dx(const Triangulation<dim, spacedim> &tria, std::ostream &out) const;
1040
1071 template <int dim, int spacedim>
1072 void
1074 std::ostream &out,
1075 const Mapping<dim, spacedim> *mapping = nullptr) const;
1076
1095 template <int dim, int spacedim>
1096 void
1097 write_msh(const Triangulation<dim, spacedim> &tria, std::ostream &out) const;
1098
1141 template <int dim, int spacedim>
1142 void
1144 const std::string &filename) const;
1145
1165 template <int dim, int spacedim>
1166 void
1167 write_ucd(const Triangulation<dim, spacedim> &tria, std::ostream &out) const;
1168
1198 template <int dim, int spacedim>
1199 void
1201 std::ostream &out,
1202 const Mapping<dim, spacedim> *mapping = nullptr) const;
1203
1222 template <int dim, int spacedim>
1223 void
1225 std::ostream &out,
1226 const Mapping<dim, spacedim> *mapping = nullptr) const;
1227
1248 void
1249 write_svg(const Triangulation<2, 2> &tria, std::ostream &out) const;
1250
1256 template <int dim, int spacedim>
1257 void
1258 write_svg(const Triangulation<dim, spacedim> &tria, std::ostream &out) const;
1259
1260
1275 template <int dim, int spacedim>
1276 void
1278 std::ostream &out) const;
1279
1316 template <int dim, int spacedim>
1317 void
1318 write_vtk(const Triangulation<dim, spacedim> &tria, std::ostream &out) const;
1319
1338 template <int dim, int spacedim>
1339 void
1340 write_vtu(const Triangulation<dim, spacedim> &tria, std::ostream &out) const;
1341
1372 template <int dim, int spacedim>
1373 void
1375 const std::string &filename_without_extension,
1376 const bool view_levels = false,
1377 const bool include_artificial = false) const;
1378
1383 template <int dim, int spacedim>
1384 void
1386 std::ostream &out,
1387 const OutputFormat output_format,
1388 const Mapping<dim, spacedim> *mapping = nullptr) const;
1389
1393 template <int dim, int spacedim>
1394 void
1396 std::ostream &out,
1397 const Mapping<dim, spacedim> *mapping = nullptr) const;
1398
1402 void
1403 set_flags(const GridOutFlags::DX &flags);
1404
1408 void
1409 set_flags(const GridOutFlags::Msh &flags);
1410
1414 void
1415 set_flags(const GridOutFlags::Ucd &flags);
1416
1420 void
1421 set_flags(const GridOutFlags::Gnuplot &flags);
1422
1426 void
1427 set_flags(const GridOutFlags::Eps<1> &flags);
1428
1432 void
1433 set_flags(const GridOutFlags::Eps<2> &flags);
1434
1438 void
1439 set_flags(const GridOutFlags::Eps<3> &flags);
1440
1444 void
1445 set_flags(const GridOutFlags::XFig &flags);
1446
1450 void
1451 set_flags(const GridOutFlags::Svg &flags);
1452
1456 void
1457 set_flags(const GridOutFlags::MathGL &flags);
1458
1462 void
1463 set_flags(const GridOutFlags::Vtk &flags);
1464
1468 void
1469 set_flags(const GridOutFlags::Vtu &flags);
1470
1485 static std::string
1486 default_suffix(const OutputFormat output_format);
1487
1492 std::string
1493 default_suffix() const;
1494
1508 static OutputFormat
1509 parse_output_format(const std::string &format_name);
1510
1516 static std::string
1518
1522 static void
1524
1528 void
1530
1535 std::size_t
1536 memory_consumption() const;
1537
1542
1543private:
1548
1553
1559
1565
1571
1577
1583
1589
1594
1599
1604
1609
1614
1640 template <int dim, int spacedim>
1641 unsigned int
1643 const unsigned int next_element_index,
1644 std::ostream &out) const;
1645
1649 unsigned int
1651 const unsigned int next_element_index,
1652 std::ostream &out) const;
1657 unsigned int
1659 const unsigned int next_element_index,
1660 std::ostream &out) const;
1661 unsigned int
1663 const unsigned int next_element_index,
1664 std::ostream &out) const;
1665
1666
1667
1693 template <int dim, int spacedim>
1694 unsigned int
1696 const unsigned int next_element_index,
1697 std::ostream &out) const;
1698
1702 unsigned int
1704 const unsigned int next_element_index,
1705 std::ostream &out) const;
1706
1711 unsigned int
1713 const unsigned int next_element_index,
1714 std::ostream &out) const;
1715
1720 unsigned int
1722 const unsigned int next_element_index,
1723 std::ostream &out) const;
1727 unsigned int
1729 const unsigned int next_element_index,
1730 std::ostream &out) const;
1735 unsigned int
1737 const unsigned int next_element_index,
1738 std::ostream &out) const;
1739
1765 template <int dim, int spacedim>
1766 unsigned int
1768 const unsigned int next_element_index,
1769 std::ostream &out) const;
1770
1774 unsigned int
1776 const unsigned int next_element_index,
1777 std::ostream &out) const;
1778
1783 unsigned int
1785 const unsigned int next_element_index,
1786 std::ostream &out) const;
1787 unsigned int
1789 const unsigned int next_element_index,
1790 std::ostream &out) const;
1791
1792
1818 template <int dim, int spacedim>
1819 unsigned int
1821 const unsigned int next_element_index,
1822 std::ostream &out) const;
1823
1827 unsigned int
1829 const unsigned int next_element_index,
1830 std::ostream &out) const;
1835 unsigned int
1837 const unsigned int next_element_index,
1838 std::ostream &out) const;
1843 unsigned int
1845 const unsigned int next_element_index,
1846 std::ostream &out) const;
1847
1848
1852 unsigned int
1854 const unsigned int next_element_index,
1855 std::ostream &out) const;
1860 unsigned int
1862 const unsigned int next_element_index,
1863 std::ostream &out) const;
1864
1865
1878 template <int dim, int spacedim>
1879 unsigned int
1881
1886 unsigned int
1887 n_boundary_faces(const Triangulation<1, 1> &tria) const;
1888
1893 unsigned int
1894 n_boundary_faces(const Triangulation<1, 2> &tria) const;
1895
1900 unsigned int
1901 n_boundary_faces(const Triangulation<1, 3> &tria) const;
1902
1915 template <int dim, int spacedim>
1916 unsigned int
1918
1923 unsigned int
1924 n_boundary_lines(const Triangulation<1, 1> &tria) const;
1925
1930 unsigned int
1931 n_boundary_lines(const Triangulation<1, 2> &tria) const;
1932
1937 unsigned int
1938 n_boundary_lines(const Triangulation<1, 3> &tria) const;
1939
1944 unsigned int
1945 n_boundary_lines(const Triangulation<2, 2> &tria) const;
1950 unsigned int
1951 n_boundary_lines(const Triangulation<2, 3> &tria) const;
1952};
1953
1954
1955
1957
1958#endif
unsigned int n_boundary_faces(const Triangulation< dim, spacedim > &tria) const
Definition grid_out.cc:3793
GridOutFlags::Vtu vtu_flags
Definition grid_out.h:1613
GridOutFlags::Eps< 2 > eps_flags_2
Definition grid_out.h:1582
unsigned int write_ucd_lines(const Triangulation< dim, spacedim > &tria, const unsigned int next_element_index, std::ostream &out) const
Definition grid_out.cc:4114
void parse_parameters(ParameterHandler &param)
Definition grid_out.cc:698
void write_svg(const Triangulation< 2, 2 > &tria, std::ostream &out) const
Definition grid_out.cc:1709
void set_flags(const GridOutFlags::DX &flags)
Definition grid_out.cc:469
GridOutFlags::Eps< 1 > eps_flags_1
Definition grid_out.h:1576
GridOutFlags::XFig xfig_flags
Definition grid_out.h:1593
unsigned int write_ucd_faces(const Triangulation< dim, spacedim > &tria, const unsigned int next_element_index, std::ostream &out) const
Definition grid_out.cc:4072
void write_mathgl(const Triangulation< dim, spacedim > &tria, std::ostream &out) const
Definition grid_out.cc:2995
std::string default_suffix() const
Definition grid_out.cc:591
static void declare_parameters(ParameterHandler &param)
Definition grid_out.cc:649
static OutputFormat parse_output_format(const std::string &format_name)
Definition grid_out.cc:599
void write_vtk(const Triangulation< dim, spacedim > &tria, std::ostream &out) const
Definition grid_out.cc:3318
GridOutFlags::Gnuplot gnuplot_flags
Definition grid_out.h:1570
void write_msh(const Triangulation< dim, spacedim > &tria, std::ostream &out) const
Definition grid_out.cc:1019
unsigned int write_msh_lines(const Triangulation< dim, spacedim > &tria, const unsigned int next_element_index, std::ostream &out) const
Definition grid_out.cc:3952
void write_eps(const Triangulation< dim, spacedim > &tria, std::ostream &out, const Mapping< dim, spacedim > *mapping=nullptr) const
Definition grid_out.cc:5140
static std::string get_output_format_names()
Definition grid_out.cc:642
GridOutFlags::Eps< 3 > eps_flags_3
Definition grid_out.h:1588
void write(const Triangulation< dim, spacedim > &tria, std::ostream &out, const OutputFormat output_format, const Mapping< dim, spacedim > *mapping=nullptr) const
Definition grid_out.cc:5150
void write_vtu(const Triangulation< dim, spacedim > &tria, std::ostream &out) const
Definition grid_out.cc:3557
GridOutFlags::Ucd ucd_flags
Definition grid_out.h:1564
void write_dx(const Triangulation< dim, spacedim > &tria, std::ostream &out) const
Definition grid_out.cc:779
std::size_t memory_consumption() const
Definition grid_out.cc:744
unsigned int n_boundary_lines(const Triangulation< dim, spacedim > &tria) const
Definition grid_out.cc:3809
GridOutFlags::DX dx_flags
Definition grid_out.h:1552
unsigned int write_msh_faces(const Triangulation< dim, spacedim > &tria, const unsigned int next_element_index, std::ostream &out) const
Definition grid_out.cc:3913
void write_ucd(const Triangulation< dim, spacedim > &tria, std::ostream &out) const
Definition grid_out.cc:1124
GridOutFlags::Svg svg_flags
Definition grid_out.h:1598
OutputFormat default_format
Definition grid_out.h:1547
void write_xfig(const Triangulation< dim, spacedim > &tria, std::ostream &out, const Mapping< dim, spacedim > *mapping=nullptr) const
Definition grid_out.cc:1242
void write_gnuplot(const Triangulation< dim, spacedim > &tria, std::ostream &out, const Mapping< dim, spacedim > *mapping=nullptr) const
Definition grid_out.cc:4624
GridOutFlags::Vtk vtk_flags
Definition grid_out.h:1608
GridOutFlags::Msh msh_flags
Definition grid_out.h:1558
void write_mesh_per_processor_as_vtu(const Triangulation< dim, spacedim > &tria, const std::string &filename_without_extension, const bool view_levels=false, const bool include_artificial=false) const
Definition grid_out.cc:3604
@ vtk
write() calls write_vtk()
Definition grid_out.h:1019
@ eps
write() calls write_eps()
Definition grid_out.h:1007
@ msh
write() calls write_msh()
Definition grid_out.h:1013
@ xfig
write() calls write_xfig()
Definition grid_out.h:1011
@ dx
write() calls write_dx()
Definition grid_out.h:1003
@ ucd
write() calls write_ucd()
Definition grid_out.h:1009
@ gnuplot
write() calls write_gnuplot()
Definition grid_out.h:1005
@ mathgl
write() calls write_mathgl()
Definition grid_out.h:1017
@ svg
write() calls write_svg()
Definition grid_out.h:1015
@ none
Do nothing in write()
Definition grid_out.h:1001
@ vtu
write() calls write_vtu()
Definition grid_out.h:1021
GridOutFlags::MathGL mathgl_flags
Definition grid_out.h:1603
Abstract base class for mapping classes.
Definition mapping.h:318
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
#define DeclException0(Exception0)
static ::ExceptionBase & ExcInvalidState()
std::size_t size
Definition mpi.cc:733
static void declare_parameters(ParameterHandler &param)
Definition grid_out.cc:64
bool write_all_faces
Definition grid_out.h:80
void parse_parameters(ParameterHandler &param)
Definition grid_out.cc:92
bool write_diameter
Definition grid_out.h:69
static void declare_parameters(ParameterHandler &param)
Definition grid_out.cc:196
unsigned int n_boundary_face_points
Definition grid_out.h:360
void parse_parameters(ParameterHandler &param)
Definition grid_out.cc:229
unsigned int n_extra_curved_line_points
Definition grid_out.h:251
void parse_parameters(ParameterHandler &param)
Definition grid_out.cc:173
static void declare_parameters(ParameterHandler &param)
Definition grid_out.cc:165
bool write_additional_boundary_lines
Definition grid_out.h:270
void parse_parameters(ParameterHandler &param)
Definition grid_out.cc:455
static void declare_parameters(ParameterHandler &param)
Definition grid_out.cc:449
void parse_parameters(ParameterHandler &param)
Definition grid_out.cc:116
static void declare_parameters(ParameterHandler &param)
Definition grid_out.cc:108
bool label_level_number
Definition grid_out.h:757
unsigned int height
Definition grid_out.h:659
bool label_level_subdomain_id
Definition grid_out.h:777
bool label_subdomain_id
Definition grid_out.h:772
Background background
Definition grid_out.h:706
unsigned int line_thickness
Definition grid_out.h:670
bool convert_level_number_to_height
Definition grid_out.h:742
float cell_font_scaling
Definition grid_out.h:753
Coloring coloring
Definition grid_out.h:738
@ level_subdomain_id
Convert the level subdomain id into the cell color.
Definition grid_out.h:735
@ subdomain_id
Convert the subdomain id into the cell color.
Definition grid_out.h:733
@ none
No cell coloring.
Definition grid_out.h:727
@ material_id
Convert the material id into the cell color (default)
Definition grid_out.h:729
@ level_number
Convert the level number into the cell color.
Definition grid_out.h:731
unsigned int width
Definition grid_out.h:665
unsigned int boundary_line_thickness
Definition grid_out.h:674
float level_height_factor
Definition grid_out.h:748
static void declare_parameters(ParameterHandler &param)
Definition grid_out.cc:134
void parse_parameters(ParameterHandler &param)
Definition grid_out.cc:143
Vtk(const bool output_cells=true, const bool output_faces=true, const bool output_edges=true, const bool output_only_relevant=true)
Definition grid_out.h:862
bool output_only_relevant
Definition grid_out.h:891
bool serialize_triangulation
Definition grid_out.h:912
Vtu(const bool serialize_triangulation=false)
Definition grid_out.h:905
unsigned int n_boundary_face_points
Definition grid_out.h:580
Point< 2 > scaling
Definition grid_out.h:585
@ level_number
Convert the level into the cell color.
Definition grid_out.h:562
@ material_id
Convert the material id into the cell color.
Definition grid_out.h:560
@ level_subdomain_id
Convert the level subdomain id into the cell color.
Definition grid_out.h:566
@ subdomain_id
Convert the global subdomain id into the cell color.
Definition grid_out.h:564
void parse_parameters(ParameterHandler &param)
Definition grid_out.cc:395
static void declare_parameters(ParameterHandler &param)
Definition grid_out.cc:379
Point< 2 > offset
Definition grid_out.h:591
enum GridOutFlags::XFig::Coloring color_by