libMesh
Loading...
Searching...
No Matches
gnuplot_io.h
Go to the documentation of this file.
1// The libMesh Finite Element Library.
2// Copyright (C) 2002-2026 Benjamin S. Kirk, John W. Peterson, Roy H. Stogner
3
4// This library is free software; you can redistribute it and/or
5// modify it under the terms of the GNU Lesser General Public
6// License as published by the Free Software Foundation; either
7// version 2.1 of the License, or (at your option) any later version.
8
9// This library is distributed in the hope that it will be useful,
10// but WITHOUT ANY WARRANTY; without even the implied warranty of
11// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12// Lesser General Public License for more details.
13
14// You should have received a copy of the GNU Lesser General Public
15// License along with this library; if not, write to the Free Software
16// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17
18
19
20#ifndef LIBMESH_GNUPLOT_IO_H
21#define LIBMESH_GNUPLOT_IO_H
22
23// Local includes
24#include "libmesh/mesh_output.h"
25
26// C++ includes
27#include <cstddef>
28
29
30namespace libMesh
31{
32
33// forward declaration
34class MeshBase;
35
43class GnuPlotIO : public MeshOutput<MeshBase>
44{
45public:
46
52
59 explicit
60 GnuPlotIO (const MeshBase &,
61 const std::string & = std::string("FE 1D Solution"),
62 int properties=0);
63
67 virtual void write(const std::string &) override;
68
74
79 virtual void write_nodal_data (const std::string &,
80 const std::vector<Number> &,
81 const std::vector<std::string> &) override;
82
86 void set_title(std::string title) { _title = std::move(title); }
87
91 void use_grid(bool grid) { _grid = grid; }
92
93
97 void set_png_output(bool png_output) { _png_output = png_output; }
98
107 std::string axes_limits;
108
109private:
115 void write_solution (const std::string &,
116 const std::vector<Number> * = nullptr,
117 const std::vector<std::string> * = nullptr);
118
119 std::string _title;
120
121 bool _grid;
123};
124
125} // namespace libMesh
126
127
128#endif // LIBMESH_GNUPLOT_IO_H
This class implements writing meshes using GNUplot, designed for use only with 1D meshes.
Definition gnuplot_io.h:44
void set_png_output(bool png_output)
Write output to a .png file using gnuplot.
Definition gnuplot_io.h:97
virtual void write_nodal_data(const std::string &, const std::vector< Number > &, const std::vector< std::string > &) override
This method implements writing a mesh with nodal data to a specified file where the nodal data and va...
Definition gnuplot_io.C:48
std::string axes_limits
GNUplot automatically adjusts the x and y-axes of 2D plots to "zoom in" on the data.
Definition gnuplot_io.h:107
void use_grid(bool grid)
Turn grid on or off.
Definition gnuplot_io.h:91
void set_title(std::string title)
Set title of plot.
Definition gnuplot_io.h:86
PlottingProperties
Define enumerations to set plotting properties on construction.
Definition gnuplot_io.h:50
virtual void write(const std::string &) override
Write the mesh to the specified file.
Definition gnuplot_io.C:43
std::string _title
Definition gnuplot_io.h:119
void write_solution(const std::string &, const std::vector< Number > *=nullptr, const std::vector< std::string > *=nullptr)
This method implements writing a mesh with nodal data to a specified file where the nodal data and va...
Definition gnuplot_io.C:59
This is the MeshBase class.
Definition mesh_base.h:81
This class defines an abstract interface for Mesh output.
Definition mesh_output.h:54
The libMesh namespace provides an interface to certain functionality in the library.