From 94d3e79a8617f88dc0219cfdeedfa3147833719d Mon Sep 17 00:00:00 2001
From: Adrian Kummerlaender
Date: Mon, 24 Jun 2019 14:43:36 +0200
Subject: Initialize at openlb-1-3
---
 src/io/gnuplotHeatMapWriter.h | 127 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 127 insertions(+)
 create mode 100644 src/io/gnuplotHeatMapWriter.h
(limited to 'src/io/gnuplotHeatMapWriter.h')
diff --git a/src/io/gnuplotHeatMapWriter.h b/src/io/gnuplotHeatMapWriter.h
new file mode 100644
index 0000000..0f57c50
--- /dev/null
+++ b/src/io/gnuplotHeatMapWriter.h
@@ -0,0 +1,127 @@
+/*  This file is part of the OpenLB library
+ *
+ *  Copyright (C) 2017 Marc Haussmann
+ *  E-mail contact: info@openlb.net
+ *  The most recent release of OpenLB can be downloaded at
+ *  
+ *
+ *  This program is free software; you can redistribute it and/or
+ *  modify it under the terms of the GNU General Public License
+ *  as published by the Free Software Foundation; either version 2
+ *  of the License, or (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public
+ *  License along with this program; if not, write to the Free
+ *  Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ *  Boston, MA  02110-1301, USA.
+*/
+
+#ifndef GNUPLOT_HEATMAP_WRITER_H
+#define GNUPLOT_HEATMAP_WRITER_H
+
+#include 
+#include 
+#include 
+
+#include "functors/lattice/blockReduction3D2D.h"
+#include "functors/lattice/blockReduction2D2D.h"
+
+namespace olb {
+
+namespace heatmap {
+
+template 
+struct plotParam
+{
+  std::string name;
+  bool writeCSV = false;
+  int contourlevel = 0;
+  std::string colour = std::string("rainbow");
+  Vector zoomOrigin;
+  Vector zoomExtend;
+  T minValue = 0.;
+  T maxValue = 0.;
+
+  plotParam():
+    zoomOrigin(0.0, 0.0),
+    zoomExtend(1.0, 1.0)
+  {
+  }
+
+};
+
+/** This function is used to plot heat maps as jpeg files.
+ * minValue and maxValue set a defined scalar range.
+ * contourlevel sets the number of contours in the plot.
+ * zoomOrigin and zoomExtend set a zoom scale in the plot:
+ * (zoomOrigin(0 to 1) and zoomExtend(0 to 1-zoomOrigin)
+ * Available colour schemes are "grey", "pm3d", "blackbody" and "rainbow"
+ */
+template 
+void write(BlockReduction3D2D& blockReduction, int iT, const plotParam param = {});
+
+/** This function is used to plot heat maps as jpeg files.
+ * minValue and maxValue set a defined scalar range.
+ * contourlevel sets the number of contours in the plot.
+ * zoomOrigin and zoomExtend set a zoom scale in the plot:
+ * (zoomOrigin(0 to 1) and zoomExtend(0 to 1-zoomOrigin)
+ * Available colour schemes are "grey", "pm3d", "blackbody" and "rainbow"
+ */
+template 
+void write(BlockReduction2D2D& blockReduction, int iT, const plotParam param = {});
+
+
+
+
+namespace detail {
+
+template 
+void genericHeatMapInterface(const HyperplaneLattice3D& hyperPlane, BlockF2D& blockData, int iT,
+                             const plotParam& param);
+
+
+
+template 
+struct detailParam
+{
+  const plotParam* plot;
+  BlockF2D* blockData;
+  const HyperplaneLattice3D* hyperPlane;
+  std::string matrixPath;
+  std::string csvPath;
+  std::string jpegPath;
+  std::string pngPath;
+  std::string plotFilePath;
+  std::string dir;
+  int iT;
+  int nx;
+  int ny;
+  T spacing;
+  Vector origin;
+  Vector normal;
+  Vector zoomMin;
+  Vector zoomMax;
+  std::string quantityname;
+};
+
+template 
+void writeHeatMapDataFile(detailParam& param);
+
+template 
+void writeHeatMapPlotFile(detailParam& param);
+
+template< typename T >
+void executeGnuplot(detailParam& param);
+
+} // namespace detail
+
+} // namespace heatmap
+
+} // namespace olb
+
+#endif
-- 
cgit v1.2.3