gnuplotGraphWriter.C
Go to the documentation of this file.
1 /*---------------------------------------------------------------------------*\
2  ========= |
3  \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
4  \\ / O peration |
5  \\ / A nd | www.openfoam.com
6  \\/ M anipulation |
7 -------------------------------------------------------------------------------
8  Copyright (C) 2011-2012 OpenFOAM Foundation
9  Copyright (C) 2019-2022 OpenCFD Ltd.
10 -------------------------------------------------------------------------------
11 License
12  This file is part of OpenFOAM.
13 
14  OpenFOAM is free software: you can redistribute it and/or modify it
15  under the terms of the GNU General Public License as published by
16  the Free Software Foundation, either version 3 of the License, or
17  (at your option) any later version.
18 
19  OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
20  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
21  FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
22  for more details.
23 
24  You should have received a copy of the GNU General Public License
25  along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
26 
27 \*---------------------------------------------------------------------------*/
28 
29 #include "gnuplotGraphWriter.H"
31 
32 // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
33 
34 namespace Foam
35 {
37 
38 namespace graphWriters
39 {
42 }
43 }
44 
45 
46 // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
47 
49 (
50  const graph& g,
51  Ostream& os
52 ) const
53 {
54  os << "set term pngcairo" << nl
55  << "set output \"" << word(g.title()) << ".png\"" << nl
56  << "set title " << g.title() << " 0,0" << nl << "show title" << nl
57  << "set xlabel " << g.xName() << " 0,0" << nl << "show xlabel" << nl
58  << "set ylabel " << g.yName() << " 0,0" << nl << "show ylabel" << nl;
59 
60  label nplots = 0;
61  forAllConstIters(g, iter)
62  {
63  os << (nplots++ ? ", \\" : "plot \\") << nl;
64  os << "'-' title " << iter()->name() << " with lines";
65  }
66  os << "; pause -1" << nl;
67 
68 
69  forAllConstIters(g, iter)
70  {
71  os << nl;
72  writeXY(g.x(), *iter(), os);
73  }
74 }
75 
76 
77 // ************************************************************************* //
Output in gnuplot (http://www.gnuplot.info) format.
constexpr char nl
The newline &#39;\n&#39; character (0x0a)
Definition: Ostream.H:50
Macros for easy insertion into run-time selection tables.
Abstract base class for a graph writer.
Definition: graph.H:189
Class to create, store and output qgraph files.
Definition: graph.H:53
graph::writer graphWriter
Definition: graph.C:32
void write(const graph &, Ostream &os) const
Write.
A class for handling words, derived from Foam::string.
Definition: word.H:63
void writeXY(const scalarField &x, const scalarField &y, Ostream &) const
Definition: graph.C:231
defineTypeName(gnuplotWriter)
An Ostream is an abstract base class for all output systems (streams, files, token lists...
Definition: Ostream.H:56
const uniformDimensionedVectorField & g
OBJstream os(runTime.globalPath()/outputName)
Namespace for OpenFOAM.
forAllConstIters(mixture.phases(), phase)
Definition: pEqn.H:28
addToRunTimeSelectionTable(graphWriter, gnuplotWriter, word)