#r "BoSSSpad.dll"
// #r "..\..\src\L4-application\BoSSSpad\bin\Release\net5.0\BoSSSpad.dll"
using System;
using System.Collections.Generic;
using System.Linq;
using System.IO;
using System.Data;
using System.Globalization;
using System.Threading;
using ilPSP;
using ilPSP.Utils;
using BoSSS.Platform;
using BoSSS.Foundation;
using BoSSS.Foundation.Grid;
using BoSSS.Foundation.Grid.Classic;
using BoSSS.Foundation.IO;
using BoSSS.Solution;
using BoSSS.Solution.Control;
using BoSSS.Solution.GridImport;
using BoSSS.Solution.Statistic;
using BoSSS.Solution.Utils;
using BoSSS.Solution.Gnuplot;
using BoSSS.Application.BoSSSpad;
using BoSSS.Application.XNSE_Solver;
using static BoSSS.Application.BoSSSpad.BoSSSshell;
using BoSSS.Foundation.Grid.RefElements;
using BoSSS.Platform.LinAlg;
using BoSSS.Application.XNSE_Solver.PhysicalBasedTestcases.PrintingNip;
Init();
Only if the output directories were previously created via Part0_PrintingNip_Setup
output is stored to the subdirectories.
Otherwise, datatables are stored directly to the working directory and plots displayed in the notebook.
The plots are not adjusted to look "nice" in the notebook.
This is not part of the ValidationTestRunner
.
static bool GenerateOutput = Directory.Exists(@"./PrintingNip") && Directory.Exists(@"./PrintingNip/Figures") && Directory.Exists(@"./PrintingNip/Files") && Directory.Exists(@"./PrintingNip/Output");
string ProjectName = "PrintingNip_Part3";
BoSSSshell.WorkflowMgm.Init(ProjectName);
Project name is set to 'PrintingNip_Part3'. Default Execution queue is chosen for the database. Opening existing database '\\fdygitrunner\ValidationTests\databases\PrintingNip_Part3'.
static var myDb = BoSSSshell.WorkflowMgm.DefaultDatabase;
var sessions = myDb.Sessions.Where(s => s.ProjectName == ProjectName && s.SuccessfulTermination).ToArray();
sessions.Count()
BoSSSshell.WorkflowMgm.AdditionalSessionTableColums.Clear();
BoSSSshell.WorkflowMgm.AdditionalSessionTableColums.Add("PressureRange", Postprocessing.PressureRange);
BoSSSshell.WorkflowMgm.AdditionalSessionTableColums.Add("VelocityXMax", Postprocessing.VelocityXMax);
BoSSSshell.WorkflowMgm.AdditionalSessionTableColums.Add("Massflux", Postprocessing.Massflux);
BoSSSshell.WorkflowMgm.AdditionalSessionTableColums.Add("NipShearRate", Postprocessing.NipShearRate);
BoSSSshell.WorkflowMgm.AdditionalSessionTableColums.Add("NipShearRateCylinder", Postprocessing.NipShearRateCylinder);
BoSSSshell.WorkflowMgm.AdditionalSessionTableColums.Add("ShearStressCylinder", Postprocessing.ShearStressCylinder);
BoSSSshell.WorkflowMgm.AdditionalSessionTableColums.Add("NipShearRateSubstrate", Postprocessing.NipShearRateSubstrate);
BoSSSshell.WorkflowMgm.AdditionalSessionTableColums.Add("ShearStressSubstrate", Postprocessing.ShearStressSubstrate);
BoSSSshell.WorkflowMgm.AdditionalSessionTableColums.Add("ViscousDissipation", Postprocessing.ViscousDissipation);
BoSSSshell.WorkflowMgm.AdditionalSessionTableColums.Add("PositionOfSynchronousFlow", Postprocessing.PositionOfSynchronousFlow);
BoSSSshell.WorkflowMgm.AdditionalSessionTableColums.Add("PositionOfStagnatingFlow", Postprocessing.PositionOfStagnatingFlow);
BoSSSshell.WorkflowMgm.AdditionalSessionTableColums.Add("dPdXatSynchronousPoint", Postprocessing.dPdXatSynchronousPoint);
BoSSSshell.WorkflowMgm.AdditionalSessionTableColums.Add("dPdXatStagnationPoint", Postprocessing.dPdXatStagnationPoint);
BoSSSshell.WorkflowMgm.AdditionalSessionTableColums.Add("dPdXatNip", Postprocessing.dPdXatNip);
BoSSSshell.WorkflowMgm.AdditionalSessionTableColums.Add("dPdXatConstantX", Postprocessing.dPdXatConstantX);
DataTable tab;
if(GenerateOutput){
if(!File.Exists("./PrintingNip/Files/PrintingNip-Part3Export.csv")){
tab = sessions.GetSessionTable(BoSSSshell.WorkflowMgm.AdditionalSessionTableColums.Select(kv => new Tuple<string, Func<ISessionInfo, object>>(kv.Key, kv.Value)).ToArray());
tab.ToCSVFile("./PrintingNip/Files/PrintingNip-Part3Export.csv", ColSep: '%');
} else{
tab = TableExtensions.FromCSVFile("./PrintingNip/Files/PrintingNip-Part3Export.csv", ColSep: '%');
}
} else {
// in this case always recreate the datatable
tab = sessions.GetSessionTable(BoSSSshell.WorkflowMgm.AdditionalSessionTableColums.Select(kv => new Tuple<string, Func<ISessionInfo, object>>(kv.Key, kv.Value)).ToArray());
tab.ToCSVFile("./PrintingNip-Part3Export.csv", ColSep: '%');
}
Loaded Fields for J2000_delta1E-06_V1.25_RL100 Loaded Fields for J2000_delta1E-06_V1_RL100 Loaded Fields for J2000_delta1E-06_V0.75_RL100 Loaded Fields for J2000_delta1E-06_V0.5_RL100 Loaded Fields for J2000_delta1E-06_V0.33333_RL100 Loaded Fields for J2000_delta1E-06_V0.16667_RL100 Loaded Fields for J2000_delta1E-06_V1.25_RL80 Loaded Fields for J2000_delta1E-06_V1_RL80 Loaded Fields for J2000_delta1E-06_V0.75_RL80 Loaded Fields for J2000_delta1E-06_V0.5_RL80 Loaded Fields for J2000_delta1E-06_V0.33333_RL80 Loaded Fields for J2000_delta1E-06_V1.25_RL70 Loaded Fields for J2000_delta1E-06_V0.16667_RL80 Loaded Fields for J2000_delta1E-06_V1_RL70 Loaded Fields for J2000_delta1E-06_V0.75_RL70 Loaded Fields for J2000_delta1E-06_V0.5_RL70 Loaded Fields for J2000_delta1E-06_V0.33333_RL70 Loaded Fields for J2000_delta1E-06_V0.16667_RL70 Loaded Fields for J2000_delta1E-06_V1_RL60 Loaded Fields for J2000_delta1E-06_V1.25_RL60 Loaded Fields for J2000_delta1E-06_V0.75_RL60 Loaded Fields for J2000_delta1E-06_V0.5_RL60 Loaded Fields for J2000_delta1E-06_V0.33333_RL60 Loaded Fields for J2000_delta1E-06_V0.16667_RL60 Loaded Fields for J2000_delta5E-06_V1_RL100 Loaded Fields for J2000_delta5E-06_V0.75_RL100 Loaded Fields for J2000_delta5E-06_V1.25_RL100 Loaded Fields for J2000_delta5E-06_V0.5_RL100 Loaded Fields for J2000_delta5E-06_V0.33333_RL100 Loaded Fields for J2000_delta5E-06_V0.16667_RL100 Loaded Fields for J2000_delta5E-06_V1.25_RL80 Loaded Fields for J2000_delta5E-06_V1_RL80 Loaded Fields for J2000_delta5E-06_V0.75_RL80 Loaded Fields for J2000_delta5E-06_V0.5_RL80 Loaded Fields for J2000_delta5E-06_V1.25_RL70 Loaded Fields for J2000_delta5E-06_V1_RL70 Loaded Fields for J2000_delta5E-06_V0.16667_RL80 Loaded Fields for J2000_delta5E-06_V0.33333_RL80 Loaded Fields for J2000_delta5E-06_V0.75_RL70 Loaded Fields for J2000_delta5E-06_V0.5_RL70 Loaded Fields for J2000_delta5E-06_V0.33333_RL70 Loaded Fields for J2000_delta5E-06_V0.16667_RL70 Loaded Fields for J2000_delta5E-06_V1.25_RL60 Loaded Fields for J2000_delta5E-06_V1_RL60 Loaded Fields for J2000_delta5E-06_V0.75_RL60 Loaded Fields for J2000_delta5E-06_V0.5_RL60 Loaded Fields for J2000_delta5E-06_V0.33333_RL60 Loaded Fields for J2000_delta5E-06_V0.16667_RL60 Loaded Fields for J2000_delta1E-05_V1.25_RL100 Loaded Fields for J2000_delta1E-05_V0.75_RL100 Loaded Fields for J2000_delta1E-05_V1_RL100 Loaded Fields for J2000_delta1E-05_V0.5_RL100 Loaded Fields for J2000_delta1E-05_V0.33333_RL100 Loaded Fields for J2000_delta1E-05_V0.16667_RL100 Loaded Fields for J2000_delta1E-05_V1.25_RL80 Loaded Fields for J2000_delta1E-05_V1_RL80 Loaded Fields for J2000_delta1E-05_V0.75_RL80 Loaded Fields for J2000_delta1E-05_V0.5_RL80 Loaded Fields for J2000_delta1E-05_V0.33333_RL80 Loaded Fields for J2000_delta1E-05_V1.25_RL70 Loaded Fields for J2000_delta1E-05_V0.16667_RL80 Loaded Fields for J2000_delta1E-05_V1_RL70 Loaded Fields for J2000_delta1E-05_V0.75_RL70 Loaded Fields for J2000_delta1E-05_V0.5_RL70 Loaded Fields for J2000_delta1E-05_V0.33333_RL70 Loaded Fields for J2000_delta1E-05_V0.16667_RL70 Loaded Fields for J2000_delta1E-05_V1.25_RL60 Loaded Fields for J2000_delta1E-05_V1_RL60 Loaded Fields for J2000_delta1E-05_V0.75_RL60 Loaded Fields for J2000_delta1E-05_V0.33333_RL60 Loaded Fields for J2000_delta1E-05_V0.16667_RL60 Loaded Fields for J2000_delta1E-05_V0.5_RL60
string[] Columns = new string[] {"PressureRange", "VelocityXMax", "Massflux", "NipShearRate", "NipShearRateCylinder", "ShearStressCylinder", "NipShearRateSubstrate", "ShearStressSubstrate", "ViscousDissipation", "PositionOfSynchronousFlow", "PositionOfStagnatingFlow", "dPdXatSynchronousPoint", "dPdXatStagnationPoint", "dPdXatNip", "dPdXatConstantX"};
string[] Labels = new string[] {"Pressure", "Velocity", "Massflux", "Shearrate (Nip)", "Shearrate (Cylinder)", "Shearforce (Cylinder)", "Shearrate (Substrate)", "Shearforce (Substrate)", "Dissipation", "$x_{sync}$", "$x_{stag}$", @"$\\\frac{\\\partial p}{\\\partial x}_{sync}$", @"$\\\frac{\\\partial p}{\\\partial x}_{stag}$", @"$\\\frac{\\\partial p}{\\\partial x}_{nip}$", @"$\\\frac{\\\partial p}{\\\partial x}$"};
string[] Units = new string[] {@"$\\\left[\\\frac{N}{m^2}\\right]$", @"$\\\left[\\\frac{m}{s}\\right]$", @"$\\\left[\\\frac{kg}{s}\\right]$", @"$\\\left[\\\frac{1}{s}\\right]$", @"$\\\left[\\\frac{1}{s}\\right]$", @"$\\\left[N\\right]$", @"$\\\left[\\\frac{1}{s}\\right]$", @"$\\\left[N\\right]$", @"$\\\left[W\\right]$", @"$\\\left[m\\right]$", @"$\\\left[m\\right]$", @"$\\\left[\\\frac{N}{m^3}\\right]$", @"$\\\left[\\\frac{N}{m^3}\\right]$", @"$\\\left[\\\frac{N}{m^3}\\right]$", @"$\\\left[\\\frac{N}{m^3}\\right]$"}; // some escape character nonsense
var tab2export = tab.ExtractColumns(Columns.ToList().Prepend("id:V_Wall").Prepend("id:P_Diff").Prepend("id:Radius").Prepend("id:delta").Prepend("id:Raster").Prepend("SessionName").ToArray());
if(GenerateOutput){
tab2export.ToHTMLFile("PrintingNip-Part3.html", Path.GetFullPath("./PrintingNip/Files"));
tab2export.ToCSVFile("./PrintingNip/Files/PrintingNip-Part3.csv", ColSep: ';');
} else {
tab2export.ToHTMLFile("PrintingNip-Part3.html", Path.GetFullPath("./"));
tab2export.ToCSVFile("./PrintingNip-Part3.csv", ColSep: ';');
}
Plot all Properties, we looked at before as functions of nip width. Remember, this time around the pressure b.c. is such that the stagnation point should remain constant
var tab2plt = tab.ExtractRows((i,row) => Convert.ToDouble(row["id:P_Diff"]) > 0.0 && Convert.ToDouble(row["id:delta"]).ApproxEqual(1e-5)); // arbitrary nip width
List<Plot2Ddata> plts = new List<Plot2Ddata>();
foreach(string col in Columns){
int k = Columns.IndexOf(col);
var plt = tab2plt.ToPlot("id:V_Wall", col, ColName_GroupSelection: new string[] { "id:Raster" });
plt.LogX = true;
plt.LogY = true;
plt.Xlabel = @"Printing Velocity Width $\\\left[\\\frac{m}{s}\\right]$";
plt.Ylabel = Labels[k] + " " + Units[k];
plt.LabelTitleFont = 32;
plt.LabelFont = 24;
plt.LegendFont = 18;
plt.lmargin = 12;
plt.bmargin = 4;
plt.ShowLegend = true;
plt.LegendBox = true;
if(plt.Regression().Average(kv => kv.Value) > 0){
plt.LegendAlignment = new string[]{"i", "l", "t"};
plt.LegendSwap = true;
} else{
plt.LegendAlignment = new string[]{"i", "r", "t"};
plt.LegendSwap = false;
}
for(int n= 0; n < plt.dataGroups.Count(); n++){
plt.dataGroups[n].Format.LineWidth = 2;
plt.dataGroups[n].Format.PointSize = 1;
plt.dataGroups[n].Name = "Raster $ = " + Convert.ToDouble(plt.dataGroups[n].Name.Split("id:Raster").Last()).ToString() + @" \\\frac{1}{cm}$";
}
plt.ModFormat();
plts.Add(plt);
}
if(GenerateOutput){
using(StreamWriter stw = new StreamWriter("./PrintingNip/Output/SlopesOverRaster.txt")){
foreach(var plt in plts){
var slopes = plt.Regression();
stw.WriteLine("<===================================================>");
stw.WriteLine(plt.Ylabel + ":");
slopes.ForEach(kvp => stw.WriteLine("\t" + kvp.Key + " : " + kvp.Value));
stw.WriteLine("<===================================================>");
}
}
} else {
{
StringBuilder stw = new StringBuilder();
foreach(var plt in plts){
var slopes = plt.Regression();
stw.AppendLine("<===================================================>");
stw.AppendLine(plt.Ylabel + ":");
slopes.ForEach(kvp => stw.AppendLine("\t" + kvp.Key + " : " + kvp.Value));
stw.AppendLine("<===================================================>");
}
stw.ToString().Display();
}
}
<===================================================> Pressure $\\\left[\\\frac{N}{m^2}\\right]$: Raster $ = 100 \\\frac{1}{cm}$ : 1.150258727632342 Raster $ = 80 \\\frac{1}{cm}$ : 1.2020778296602872 Raster $ = 70 \\\frac{1}{cm}$ : 1.1733596548919005 Raster $ = 60 \\\frac{1}{cm}$ : 1.4163471180550082 <===================================================> <===================================================> Velocity $\\\left[\\\frac{m}{s}\\right]$: Raster $ = 100 \\\frac{1}{cm}$ : 1.1337413493840065 Raster $ = 80 \\\frac{1}{cm}$ : 1.182982643634283 Raster $ = 70 \\\frac{1}{cm}$ : 1.1584277287101798 Raster $ = 60 \\\frac{1}{cm}$ : 1.38960600106303 <===================================================> <===================================================> Massflux $\\\left[\\\frac{kg}{s}\\right]$: Raster $ = 100 \\\frac{1}{cm}$ : 1.128930396979203 Raster $ = 80 \\\frac{1}{cm}$ : 1.177318871710269 Raster $ = 70 \\\frac{1}{cm}$ : 1.1539525441437266 Raster $ = 60 \\\frac{1}{cm}$ : 1.3814057327976903 <===================================================> <===================================================> Shearrate (Nip) $\\\left[\\\frac{1}{s}\\right]$: Raster $ = 100 \\\frac{1}{cm}$ : 2.4717388214314586 Raster $ = 80 \\\frac{1}{cm}$ : 2.5911748314497975 Raster $ = 70 \\\frac{1}{cm}$ : 2.4048280360415557 Raster $ = 60 \\\frac{1}{cm}$ : 2.9375034135335145 <===================================================> <===================================================> Shearrate (Cylinder) $\\\left[\\\frac{1}{s}\\right]$: Raster $ = 100 \\\frac{1}{cm}$ : 1.1445372695203075 Raster $ = 80 \\\frac{1}{cm}$ : 1.1954885116208362 Raster $ = 70 \\\frac{1}{cm}$ : 1.1682159515827877 Raster $ = 60 \\\frac{1}{cm}$ : 1.4071868977754265 <===================================================> <===================================================> Shearforce (Cylinder) $\\\left[N\\right]$: Raster $ = 100 \\\frac{1}{cm}$ : 1.1641926376890586 Raster $ = 80 \\\frac{1}{cm}$ : 1.2175625496792255 Raster $ = 70 \\\frac{1}{cm}$ : 1.1851820642862778 Raster $ = 60 \\\frac{1}{cm}$ : 1.436574597982836 <===================================================> <===================================================> Shearrate (Substrate) $\\\left[\\\frac{1}{s}\\right]$: Raster $ = 100 \\\frac{1}{cm}$ : 1.1445372695203075 Raster $ = 80 \\\frac{1}{cm}$ : 1.1954885116208362 Raster $ = 70 \\\frac{1}{cm}$ : 1.1682159515827877 Raster $ = 60 \\\frac{1}{cm}$ : 1.4071868977754265 <===================================================> <===================================================> Shearforce (Substrate) $\\\left[N\\right]$: Raster $ = 100 \\\frac{1}{cm}$ : 1.1641926376890586 Raster $ = 80 \\\frac{1}{cm}$ : 1.2175625496792255 Raster $ = 70 \\\frac{1}{cm}$ : 1.1851820642862778 Raster $ = 60 \\\frac{1}{cm}$ : 1.436574597982836 <===================================================> <===================================================> Dissipation $\\\left[W\\right]$: Raster $ = 100 \\\frac{1}{cm}$ : 2.2970711147086806 Raster $ = 80 \\\frac{1}{cm}$ : 2.400809575230805 Raster $ = 70 \\\frac{1}{cm}$ : 2.3443802496067083 Raster $ = 60 \\\frac{1}{cm}$ : 2.8295030563619914 <===================================================> <===================================================> $x_{sync}$ $\\\left[m\\right]$: Raster $ = 100 \\\frac{1}{cm}$ : 0.07227468711254892 Raster $ = 80 \\\frac{1}{cm}$ : 0.09775405774180151 Raster $ = 70 \\\frac{1}{cm}$ : 0.0841172326794055 Raster $ = 60 \\\frac{1}{cm}$ : 0.2036256363784547 <===================================================> <===================================================> $x_{stag}$ $\\\left[m\\right]$: Raster $ = 100 \\\frac{1}{cm}$ : 0.06688867521735609 Raster $ = 80 \\\frac{1}{cm}$ : 0.09152033293310753 Raster $ = 70 \\\frac{1}{cm}$ : 0.07924144944997666 Raster $ = 60 \\\frac{1}{cm}$ : 0.19489976418758592 <===================================================> <===================================================> $\\\frac{\\\partial p}{\\\partial x}_{sync}$ $\\\left[\\\frac{N}{m^3}\\right]$: Raster $ = 100 \\\frac{1}{cm}$ : 0.8897308151784016 Raster $ = 80 \\\frac{1}{cm}$ : 0.8242292714081741 Raster $ = 70 \\\frac{1}{cm}$ : 0.8610700310682174 Raster $ = 60 \\\frac{1}{cm}$ : 0.6402577560214144 <===================================================> <===================================================> $\\\frac{\\\partial p}{\\\partial x}_{stag}$ $\\\left[\\\frac{N}{m^3}\\right]$: Raster $ = 100 \\\frac{1}{cm}$ : 0.7419767206325929 Raster $ = 80 \\\frac{1}{cm}$ : 0.6450998688011964 Raster $ = 70 \\\frac{1}{cm}$ : 0.6918456529733785 Raster $ = 60 \\\frac{1}{cm}$ : 0.23630661260438057 <===================================================> <===================================================> $\\\frac{\\\partial p}{\\\partial x}_{nip}$ $\\\left[\\\frac{N}{m^3}\\right]$: Raster $ = 100 \\\frac{1}{cm}$ : 1.144536827695865 Raster $ = 80 \\\frac{1}{cm}$ : 1.1954880060706374 Raster $ = 70 \\\frac{1}{cm}$ : 1.1682155575700355 Raster $ = 60 \\\frac{1}{cm}$ : 1.407186202748773 <===================================================> <===================================================> $\\\frac{\\\partial p}{\\\partial x}$ $\\\left[\\\frac{N}{m^3}\\right]$: Raster $ = 100 \\\frac{1}{cm}$ : 0.9833337732131644 Raster $ = 80 \\\frac{1}{cm}$ : 0.9725546562883067 Raster $ = 70 \\\frac{1}{cm}$ : 0.9736452227874605 Raster $ = 60 \\\frac{1}{cm}$ : 0.8976332978720764 <===================================================>
int k = 0;
foreach(var plt in plts){
var gp = new Gnuplot();
gp.PlotLogSlope(plt, format: new PlotFormat(lineColor: (LineColors)7));
gp.Cmd("set key box width -9");
plt.ToGnuplot(gp);
if(GenerateOutput){
gp.PlotCairolatex().SaveTo("./PrintingNip/Figures/Part3/H0_"+Columns[k]+".tex");
} else {
gp.PlotNow().Display();
}
k++;
}
Using gnuplot: C:\Program Files (x86)\FDY\BoSSS\bin\native\win\gnuplot-gp510-20160418-win32-mingw\gnuplot\bin\gnuplot.exe Note: In a Jupyter Worksheet, you must NOT have a trailing semicolon in order to see the plot on screen; otherwise, the output migth be surpressed.!
Using gnuplot: C:\Program Files (x86)\FDY\BoSSS\bin\native\win\gnuplot-gp510-20160418-win32-mingw\gnuplot\bin\gnuplot.exe Note: In a Jupyter Worksheet, you must NOT have a trailing semicolon in order to see the plot on screen; otherwise, the output migth be surpressed.!
Using gnuplot: C:\Program Files (x86)\FDY\BoSSS\bin\native\win\gnuplot-gp510-20160418-win32-mingw\gnuplot\bin\gnuplot.exe Note: In a Jupyter Worksheet, you must NOT have a trailing semicolon in order to see the plot on screen; otherwise, the output migth be surpressed.!
Using gnuplot: C:\Program Files (x86)\FDY\BoSSS\bin\native\win\gnuplot-gp510-20160418-win32-mingw\gnuplot\bin\gnuplot.exe Note: In a Jupyter Worksheet, you must NOT have a trailing semicolon in order to see the plot on screen; otherwise, the output migth be surpressed.!
Using gnuplot: C:\Program Files (x86)\FDY\BoSSS\bin\native\win\gnuplot-gp510-20160418-win32-mingw\gnuplot\bin\gnuplot.exe Note: In a Jupyter Worksheet, you must NOT have a trailing semicolon in order to see the plot on screen; otherwise, the output migth be surpressed.!
Using gnuplot: C:\Program Files (x86)\FDY\BoSSS\bin\native\win\gnuplot-gp510-20160418-win32-mingw\gnuplot\bin\gnuplot.exe Note: In a Jupyter Worksheet, you must NOT have a trailing semicolon in order to see the plot on screen; otherwise, the output migth be surpressed.!
Using gnuplot: C:\Program Files (x86)\FDY\BoSSS\bin\native\win\gnuplot-gp510-20160418-win32-mingw\gnuplot\bin\gnuplot.exe Note: In a Jupyter Worksheet, you must NOT have a trailing semicolon in order to see the plot on screen; otherwise, the output migth be surpressed.!
Using gnuplot: C:\Program Files (x86)\FDY\BoSSS\bin\native\win\gnuplot-gp510-20160418-win32-mingw\gnuplot\bin\gnuplot.exe Note: In a Jupyter Worksheet, you must NOT have a trailing semicolon in order to see the plot on screen; otherwise, the output migth be surpressed.!
Using gnuplot: C:\Program Files (x86)\FDY\BoSSS\bin\native\win\gnuplot-gp510-20160418-win32-mingw\gnuplot\bin\gnuplot.exe Note: In a Jupyter Worksheet, you must NOT have a trailing semicolon in order to see the plot on screen; otherwise, the output migth be surpressed.!
Using gnuplot: C:\Program Files (x86)\FDY\BoSSS\bin\native\win\gnuplot-gp510-20160418-win32-mingw\gnuplot\bin\gnuplot.exe Note: In a Jupyter Worksheet, you must NOT have a trailing semicolon in order to see the plot on screen; otherwise, the output migth be surpressed.!
Using gnuplot: C:\Program Files (x86)\FDY\BoSSS\bin\native\win\gnuplot-gp510-20160418-win32-mingw\gnuplot\bin\gnuplot.exe Note: In a Jupyter Worksheet, you must NOT have a trailing semicolon in order to see the plot on screen; otherwise, the output migth be surpressed.!
Using gnuplot: C:\Program Files (x86)\FDY\BoSSS\bin\native\win\gnuplot-gp510-20160418-win32-mingw\gnuplot\bin\gnuplot.exe Note: In a Jupyter Worksheet, you must NOT have a trailing semicolon in order to see the plot on screen; otherwise, the output migth be surpressed.!
Using gnuplot: C:\Program Files (x86)\FDY\BoSSS\bin\native\win\gnuplot-gp510-20160418-win32-mingw\gnuplot\bin\gnuplot.exe Note: In a Jupyter Worksheet, you must NOT have a trailing semicolon in order to see the plot on screen; otherwise, the output migth be surpressed.!
Using gnuplot: C:\Program Files (x86)\FDY\BoSSS\bin\native\win\gnuplot-gp510-20160418-win32-mingw\gnuplot\bin\gnuplot.exe Note: In a Jupyter Worksheet, you must NOT have a trailing semicolon in order to see the plot on screen; otherwise, the output migth be surpressed.!
Using gnuplot: C:\Program Files (x86)\FDY\BoSSS\bin\native\win\gnuplot-gp510-20160418-win32-mingw\gnuplot\bin\gnuplot.exe Note: In a Jupyter Worksheet, you must NOT have a trailing semicolon in order to see the plot on screen; otherwise, the output migth be surpressed.!