diff options
-rw-r--r-- | content.tex | 42 | ||||
-rw-r--r-- | img/data/poiseuille2d_refined_order2ipol_velocity_outflow_bb_walls.csv | 20 | ||||
-rw-r--r-- | img/data/poiseuille2d_refined_order2ipol_velocity_outflow_velocity_walls.csv | 20 | ||||
-rw-r--r-- | img/data/poiseuille2d_refined_order4ipol_velocity_outflow_bb_walls.csv | 20 | ||||
-rw-r--r-- | img/data/poiseuille2d_refined_order4ipol_velocity_outflow_velocity_walls.csv | 20 | ||||
-rw-r--r-- | img/data/poiseuille2d_unrefined_coarse_velocity_outflow_velocity_walls.csv | 10 | ||||
-rw-r--r-- | img/data/poiseuille2d_unrefined_velocity_outflow_bb_walls.csv | 20 | ||||
-rw-r--r-- | img/data/poiseuille2d_unrefined_velocity_outflow_velocity_walls.csv | 20 | ||||
-rw-r--r-- | img/poiseuille2d_grid.tikz | 8 | ||||
-rw-r--r-- | img/poiseuille2d_velocity_grid.tikz | 13 | ||||
-rw-r--r-- | img/poiseuille2d_velocity_outflow.tikz | 115 | ||||
-rw-r--r-- | main.tex | 3 |
12 files changed, 295 insertions, 16 deletions
diff --git a/content.tex b/content.tex index 99c7ab0..280ffae 100644 --- a/content.tex +++ b/content.tex @@ -805,42 +805,62 @@ Unter diesen Einschränkungen ist es -- abseits offensichtlicher Gütekriterien Als Einstiegspunkt wollen wir zunächst die grundsätzliche Funktion des Verfeinerungsverfahren an einem möglichst einfachen Beispiel gegen möglichst korrekte Vergleichsdaten testen. Ein solches Beispiel ist gegeben durch die laminare Strömung in einem Rohr mit kreisförmigem Querschnitt und ohne Hindernisse abseits der Wände.
-Eine solche Rohrströmung stellt nicht nur eine der denkbar einfachsten Strömungssituationen dar, sondern besitzt als Poiseuille-Fluss auch eine analytische Lösung, so dass wir ideale Vergleichsbedingungen vorfinden. Lieferte unser Verfahren in diesem Beispiel keine guten Ergebnisse, wäre nicht davon auszugehen, dass dies sich in komplexeren Situationen verbessern würde.
+Eine solche Rohrströmung stellt nicht nur eine der einfachsten Strömungssituationen dar, sondern besitzt als Poiseuille-Fluss auch eine analytische Lösung, so dass wir ideale Vergleichsbedingungen vorfinden. Lieferte unser Verfahren in diesem Beispiel keine guten Ergebnisse, wäre nicht davon auszugehen, dass dies sich in komplexeren Situationen verbessern würde.
+
+\begin{Definition}[Analytische Lösung des Poiseuille-Flusses]
+Seien \(L_x, L_y \in \R_+\) die räumlichen Rohrdimensionen, \(\nu\) die kinematische Viskosität und \(\Delta p := p_1 - p_0\) die Druckdifferenz zwischen Ein- und Ausfluss. Dann ist die analytische Geschwindigkeit in \(x\)-Richtung gegeben als:
+\[u_x(y) = \frac{1}{2\nu} \frac{\Delta p}{L_x} y (y-L_y)\]
+Dies kann mit \(u_x(L_y/2):=1\) und \(\Delta p = 1 - p_0\) vereinfacht werden zu:
+\[u_x(y) = -\frac{4}{L_y^2} y (y-L_y)\]
+Das Geschwindigkeitsprofil des Poiseuille-Flusses ist also parabelförmig.
+\end{Definition}
+
+Wir wollen in einem \(1 \times 4\) Längeneinheiten bemessenden Rohr einen Poiseuille-Fluss simulieren. Als Auflösung einer Längeneinheit sei dabei \(N=10\) gewählt, was in der Gitterdiskretisierung durch \(11 \times 21\) grobe und \(21 \times 43\) feine Knoten abgebildet wird. In Abbilddung~\ref{fig:PoiseuilleGridSetup} sehen wir das resultierende Gitter zusammen mit den zugewiesenen Materialzahlen.
\begin{figure}[h]
\begin{adjustbox}{center}
\input{img/poiseuille2d_grid.tikz}
\end{adjustbox}
\caption{Gitterstruktur einer halbseitig verfeinerten Rohrströmung}
-\label{fig:PoiseuilleSetup}
+\label{fig:PoiseuilleGridSetup}
\end{figure}
-Wir wollen in einem Rohr mit Dimensionen \(1 \times 4\) in Längeneinheiten einen Poiseuille-Fluss simulieren. Als Auflösung der Längeneinheit sei dabei \(N=10\) gewählt, was in der Gitterdiskretisierung durch \(11 \times 21\) grobe und \(21 \times 43\) feine Knoten abgebildet wird. In Abbilddung~\ref{fig:PoiseuilleSetup} sehen wir das resultierende Gitter zusammen mit den zugewiesenen Materialzahlen.
+Wand- und Einflusszellen werden nach dieser Vorlage mit Geschwindigkeitsrandbedingungen umgesetzt. Während für den Einfluss dabei das Geschwindigkeitsprofil der analytischen Poiseuille-Lösung vorausgesetzt wird, erhält der Ausfluss eine Druckrandbedingung. Die noch verbleibenden normalen Fluidzellen erfahren, abgesehen von den üblichen Kollisions- und Strömungsschritten, keine besondere Behandlung.
-Wandzellen werden nach dieser Vorlage mit einfachen ungerichteten Bounce-Back Randbedingungen umgesetzt. Weiter wird für den Einfluss eine Geschwindigkeitsrandbedingung mit dem analytischen Poiseuille-Geschwindigkeitsprofil gesetzt. Der Ausfluss erhält eine korrespondierende Druckrandbedingung. Die verbleibenden Fluidzellen benötigen mit Ausnahme der Durchführung des, allen Gitterzellen dieser Arbeit gemeinen, D2Q9 BGK Kollisions- und Strömungsschritt keine besondere Behandlung.
-
-Neben diesen knotenspezifischen Eigenschaften sei \(u=0.01\) die charateristische Geschwindigkeit in Lattice-Einheiten und \(\text{Re}=10\) die modellierte Reynolds-Zahl. Erstellen wir unsere grobe \class{Grid2D} Instanz mit diesen, die Relaxionszeit \(\tau\) fixierenden, Werten und führen die Simulation bis zur Konvergenz aus, erblicken wir bei geeigneter Aufbereitung in ParaView~\cite{paraview05} schließlich das in Abbildung~\ref{fig:PoiseuilleSim} ersichtliche Strömungsbild. Konvergenz bedeutet in diesem Kontext, dass die durchschnittliche Energie des feinen Gitters unter einen Residuumswert, hier \(1\mathrm{e}{-5}\), gefallen ist.
\begin{figure}[h]
\begin{adjustbox}{center}
\input{img/poiseuille2d_velocity_grid.tikz}
\end{adjustbox}
-\caption{Norm der Geschwindigkeiten im simulierten Poiseuille Fluss}
-\label{fig:PoiseuilleSim}
+\caption{Geschwindigkeiten in \(x\)-Richtung im simulierten Poiseuille-Fluss}
+\label{fig:PoiseuilleVelocityGrid}
+\end{figure}
+
+Neben diesen knotenspezifischen Eigenschaften sei \(u=0.01\) die charateristische Geschwindigkeit in Lattice-Einheiten und \(\text{Re}=10\) die modellierte Reynolds-Zahl. Erstellen wir unsere grobe \class{Grid2D} Instanz mit diesen, die Relaxionszeit \(\tau\) fixierenden, Werten und führen die Simulation bis zur Konvergenz aus, erblicken wir bei geeigneter Aufbereitung in ParaView~\cite{paraview05} schließlich das in Abbildung~\ref{fig:PoiseuilleVelocityGrid} ersichtliche Strömungsbild. Konvergenz bedeutet in diesem Kontext, dass die durchschnittliche Energie des feinen Gitters unter einen Residuumswert, hier \(1\mathrm{e}{-5}\), gefallen ist.
+
+\begin{figure}[h]
+\begin{adjustbox}{center}
+\input{img/poiseuille2d_velocity_outflow.tikz}
+\end{adjustbox}
+\caption{Vergleich der Poiseuille-Ausflussgeschwindigkeiten}
+\label{fig:PoiseuilleOutflowProfile}
\end{figure}
Bei erster Betrachtung lässt sich erkennen, dass die Strömung den Gitterübergang subjektiv ideal bestritten hat. Es treten also keine ungewöhnlichen Artefakte im Geschwindigkeitsbild auf und dieses setzt sich nach dem Übergang in bis auf die neuen Zwischenwerte unveränderter Weise fort. Tatsächlich ist bei Interpolation der Knotenzwischenbereiche zur Bildung einer geschlossenen Fläche kein Gitterübergang erkennbar.
+Dieser Eindruck bestätigt sich auch im Vergleich der simulierten und analytischen Ausflussgeschwindigkeiten in Abbildung~\ref{fig:PoiseuilleOutflowProfile}.
+
\subsubsection{Vergleich der Interpolationsverfahren}
Den Poiseuille Simulationsaufbau können wir an dieser Stelle auch zur Nachvollziehung des, von Lagrava et al. für die Verwendung eines Verfahrens vierter Ordnung in der räumlichen Interpolation feiner Übergangsknoten ohne koinzidierende grobe Stützpunkte hervorgebrachten \cite[Kap.~3.7]{lagrava12}, Arguments verwenden.
-Wir setzen dazu \(N=50\) als Auflösung der Längeneinheit, \(\text{Re}=100\) als Reynolds-Zahl und eine Geschwindigkeitsrandbedingung mit Poiseuilleprofil im Ausfluss. Führen wir dann die Simulation mit dem linearen Interpolationsverfahren (\ref{eq:ipol2ord}) aus und vergleichen den Verlauf des physikalischen Drucks auf einer vertikal zentrierten horizontalen Linie mit den, aus einem Durchlauf mit dem Verfahren vierter Ordnung (\ref{eq:ipol4ord}) gewonnen, Daten, erhalten wir den in Abbildung~\ref{fig:massloss} zu sehenden Plot.
+Wir setzen dazu \(N=50\) als Auflösung der Längeneinheit, \(\text{Re}=100\) als Reynolds-Zahl und eine Geschwindigkeitsrandbedingung mit Poiseuilleprofil im Ausfluss. Führen wir dann die Simulation mit dem linearen Interpolationsverfahren (\ref{eq:ipol2ord}) aus und vergleichen den Verlauf des physikalischen Drucks auf einer vertikal zentrierten horizontalen Linie mit den, aus einem Durchlauf mit dem Verfahren vierter Ordnung (\ref{eq:ipol4ord}) gewonnen, Daten, erhalten wir den in Abbildung~\ref{fig:PoiseuilleMassloss} zu sehenden Plot.
\begin{figure}[h]
-\centering
+\begin{adjustbox}{center}
\input{img/massloss_interpolation_plot.tikz}
+\end{adjustbox}
\caption{Druckverlauf bei linearer und kubischer Interpolation}
-\label{fig:massloss}
+\label{fig:PoiseuilleMassloss}
\end{figure}
\subsection{Umströmter Zylinder}
diff --git a/img/data/poiseuille2d_refined_order2ipol_velocity_outflow_bb_walls.csv b/img/data/poiseuille2d_refined_order2ipol_velocity_outflow_bb_walls.csv new file mode 100644 index 0000000..48eb46f --- /dev/null +++ b/img/data/poiseuille2d_refined_order2ipol_velocity_outflow_bb_walls.csv @@ -0,0 +1,20 @@ +geometry;ux;uy;p;x;y +4;0,10501491;0;1;4;0,050000001 +4;0,3021979;0;1;4;0,1 +4;0,47633973;0;1;4;0,15000001 +4;0,6270411;0;1;4;0,2 +4;0,75486946;0;1;4;0,25 +4;0,8595866;0;1;4;0,30000001 +4;0,94110405;0;1;4;0,34999999 +4;0,99936461;0;1;4;0,40000001 +4;1,03435;0;1;4;0,44999999 +4;1,0460171;0;1;4;0,5 +4;1,03435;0;1;4;0,55000001 +4;0,99936461;0;1;4;0,60000002 +4;0,94110405;0;1;4;0,64999998 +4;0,8595866;0;1;4;0,69999999 +4;0,75486946;0;1;4;0,75 +4;0,6270411;0;1;4;0,80000001 +4;0,47633973;0;1;4;0,85000002 +4;0,3021979;0;1;4;0,89999998 +4;0,10501491;0;1;4;0,94999999 diff --git a/img/data/poiseuille2d_refined_order2ipol_velocity_outflow_velocity_walls.csv b/img/data/poiseuille2d_refined_order2ipol_velocity_outflow_velocity_walls.csv new file mode 100644 index 0000000..85b0053 --- /dev/null +++ b/img/data/poiseuille2d_refined_order2ipol_velocity_outflow_velocity_walls.csv @@ -0,0 +1,20 @@ +geometry,ux,uy,p,x,y +4,0.18898219,0,1,4,0.050000001 +4,0.36055607,0,1,4,0.1 +4,0.51207048,0,1,4,0.15000001 +4,0.64336717,0,1,4,0.2 +4,0.75464326,0,1,4,0.25 +4,0.84575975,0,1,4,0.30000001 +4,0.91669858,0,1,4,0.34999999 +4,0.96739316,0,1,4,0.40000001 +4,0.99782735,0,1,4,0.44999999 +4,1.0079721,0,1,4,0.5 +4,0.99782735,0,1,4,0.55000001 +4,0.96739316,0,1,4,0.60000002 +4,0.91669858,0,1,4,0.64999998 +4,0.84575975,0,1,4,0.69999999 +4,0.75464326,0,1,4,0.75 +4,0.64336717,0,1,4,0.80000001 +4,0.51207048,0,1,4,0.85000002 +4,0.36055607,0,1,4,0.89999998 +4,0.18898219,0,1,4,0.94999999 diff --git a/img/data/poiseuille2d_refined_order4ipol_velocity_outflow_bb_walls.csv b/img/data/poiseuille2d_refined_order4ipol_velocity_outflow_bb_walls.csv new file mode 100644 index 0000000..37db705 --- /dev/null +++ b/img/data/poiseuille2d_refined_order4ipol_velocity_outflow_bb_walls.csv @@ -0,0 +1,20 @@ +geometry;ux;uy;p;x;y +4;0,10513373;0;1;4;0,050000001 +4;0,30253884;0;1;4;0,1 +4;0,47687662;0;1;4;0,15000001 +4;0,62774706;0;1;4;0,2 +4;0,75571918;0;1;4;0,25 +4;0,86055434;0;1;4;0,30000001 +4;0,94216371;0;1;4;0,34999999 +4;1,00049;0;1;4;0,40000001 +4;1,035515;0;1;4;0,44999999 +4;1,0471953;0;1;4;0,5 +4;1,035515;0;1;4;0,55000001 +4;1,00049;0;1;4;0,60000002 +4;0,94216371;0;1;4;0,64999998 +4;0,86055434;0;1;4;0,69999999 +4;0,75571918;0;1;4;0,75 +4;0,62774706;0;1;4;0,80000001 +4;0,47687662;0;1;4;0,85000002 +4;0,30253884;0;1;4;0,89999998 +4;0,10513373;0;1;4;0,94999999 diff --git a/img/data/poiseuille2d_refined_order4ipol_velocity_outflow_velocity_walls.csv b/img/data/poiseuille2d_refined_order4ipol_velocity_outflow_velocity_walls.csv new file mode 100644 index 0000000..b0125c3 --- /dev/null +++ b/img/data/poiseuille2d_refined_order4ipol_velocity_outflow_velocity_walls.csv @@ -0,0 +1,20 @@ +geometry,ux,uy,p,x,y +4,0.18905593,0,1,4,0.050000001 +4,0.36069685,0,1,4,0.1 +4,0.51227051,0,1,4,0.15000001 +4,0.6436184,0,1,4,0.2 +4,0.75493807,0,1,4,0.25 +4,0.8460902,0,1,4,0.30000001 +4,0.91705674,0,1,4,0.34999999 +4,0.96777117,0,1,4,0.40000001 +4,0.99821723,0,1,4,0.44999999 +4,1.008366,0,1,4,0.5 +4,0.99821723,0,1,4,0.55000001 +4,0.96777117,0,1,4,0.60000002 +4,0.91705674,0,1,4,0.64999998 +4,0.8460902,0,1,4,0.69999999 +4,0.75493807,0,1,4,0.75 +4,0.6436184,0,1,4,0.80000001 +4,0.51227051,0,1,4,0.85000002 +4,0.36069685,0,1,4,0.89999998 +4,0.18905593,0,1,4,0.94999999 diff --git a/img/data/poiseuille2d_unrefined_coarse_velocity_outflow_velocity_walls.csv b/img/data/poiseuille2d_unrefined_coarse_velocity_outflow_velocity_walls.csv new file mode 100644 index 0000000..417ccd6 --- /dev/null +++ b/img/data/poiseuille2d_unrefined_coarse_velocity_outflow_velocity_walls.csv @@ -0,0 +1,10 @@ +geometry,ux,uy,p,x,y +4,0.35229355,0,1,4,0.1 +4,0.63773042,0,1,4,0.2 +4,0.84351379,0,1,4,0.30000001 +4,0.96691775,0,1,4,0.40000001 +4,1.0083944,0,1,4,0.5 +4,0.96691775,0,1,4,0.60000002 +4,0.84351379,0,1,4,0.69999999 +4,0.63773042,0,1,4,0.80000001 +4,0.35229355,0,1,4,0.89999998 diff --git a/img/data/poiseuille2d_unrefined_velocity_outflow_bb_walls.csv b/img/data/poiseuille2d_unrefined_velocity_outflow_bb_walls.csv new file mode 100644 index 0000000..bcf70bd --- /dev/null +++ b/img/data/poiseuille2d_unrefined_velocity_outflow_bb_walls.csv @@ -0,0 +1,20 @@ +geometry;ux;uy;p;x;y +4;0,10556783;0;1;4;0,94999999 +4;0,30378494;0;1;4;0,89999998 +4;0,47883838;0;1;4;0,85000002 +4;0,63032639;0;1;4;0,80000001 +4;0,75882447;0;1;4;0,75 +4;0,86409104;0;1;4;0,69999999 +4;0,94603628;0;1;4;0,64999998 +4;1,0046031;0;1;4;0,60000002 +4;1,0397729;0;1;4;0,55000001 +4;1,0515014;0;1;4;0,5 +4;1,0397729;0;1;4;0,44999999 +4;1,0046031;0;1;4;0,40000001 +4;0,94603628;0;1;4;0,34999999 +4;0,86409104;0;1;4;0,30000001 +4;0,75882447;0;1;4;0,25 +4;0,63032639;0;1;4;0,2 +4;0,47883838;0;1;4;0,15000001 +4;0,30378494;0;1;4;0,1 +4;0,10556783;0;1;4;0,050000001 diff --git a/img/data/poiseuille2d_unrefined_velocity_outflow_velocity_walls.csv b/img/data/poiseuille2d_unrefined_velocity_outflow_velocity_walls.csv new file mode 100644 index 0000000..ee4741c --- /dev/null +++ b/img/data/poiseuille2d_unrefined_velocity_outflow_velocity_walls.csv @@ -0,0 +1,20 @@ +geometry,ux,uy,p,x,y +4,0.1880112,0,1,4,0.050000001 +4,0.35870126,0,1,4,0.1 +4,0.50943297,0,1,4,0.15000001 +4,0.64005154,0,1,4,0.2 +4,0.75075144,0,1,4,0.25 +4,0.84139568,0,1,4,0.30000001 +4,0.91196662,0,1,4,0.34999999 +4,0.96239835,0,1,4,0.40000001 +4,0.99267453,0,1,4,0.44999999 +4,1.0027666,0,1,4,0.5 +4,0.99267453,0,1,4,0.55000001 +4,0.96239835,0,1,4,0.60000002 +4,0.91196662,0,1,4,0.64999998 +4,0.84139568,0,1,4,0.69999999 +4,0.75075144,0,1,4,0.75 +4,0.64005154,0,1,4,0.80000001 +4,0.50943297,0,1,4,0.85000002 +4,0.35870126,0,1,4,0.89999998 +4,0.1880112,0,1,4,0.94999999 diff --git a/img/poiseuille2d_grid.tikz b/img/poiseuille2d_grid.tikz index 3df52a8..8ca285f 100644 --- a/img/poiseuille2d_grid.tikz +++ b/img/poiseuille2d_grid.tikz @@ -7,10 +7,10 @@ xmin=0, xmax=4, ymin=0, ymax=1, scatter/classes={ - 1={color=blue}, - 2={color=black}, - 3={color=green}, - 4={color=red} + 1={color=blue!50!white}, + 2={color=gray!70!black}, + 3={color=green!70!black}, + 4={color=red!70!black} }, legend style={ at={(0.5,-0.2)}, diff --git a/img/poiseuille2d_velocity_grid.tikz b/img/poiseuille2d_velocity_grid.tikz index 4326784..61afaeb 100644 --- a/img/poiseuille2d_velocity_grid.tikz +++ b/img/poiseuille2d_velocity_grid.tikz @@ -7,14 +7,25 @@ xmin=0, xmax=4, ymin=0, ymax=1, point meta=explicit, - colormap/bluered, colorbar, + colormap/RdYlBu-4, + colormap={reverse RdYlBu-4}{ + indices of colormap={ + \pgfplotscolormaplastindexof{RdYlBu-4},...,0 of RdYlBu-4 + } + }, colorbar horizontal, colorbar style={ /pgf/number format/precision=2, at={(0.5,-0.2)}, anchor=north, width=0.5*\pgfkeysvalueof{/pgfplots/parent axis width}, + ylabel=\(m/s\), + y label style={ + at={(axis description cs:1.3,0.5)}, + rotate=-90, + anchor=east + } }, scatter/use mapped color={color=mapped color} ] diff --git a/img/poiseuille2d_velocity_outflow.tikz b/img/poiseuille2d_velocity_outflow.tikz new file mode 100644 index 0000000..9b39e1e --- /dev/null +++ b/img/poiseuille2d_velocity_outflow.tikz @@ -0,0 +1,115 @@ +\begin{tikzpicture} +\pgfplotstableread[col sep=comma]{img/data/poiseuille2d_refined_order4ipol_velocity_outflow_velocity_walls.csv}\refinedCubicIpol +\pgfplotstableread[col sep=comma]{img/data/poiseuille2d_refined_order2ipol_velocity_outflow_velocity_walls.csv}\refinedLinearIpol +\pgfplotstableread[col sep=comma]{img/data/poiseuille2d_unrefined_velocity_outflow_velocity_walls.csv}\unrefined +\pgfplotstableread[col sep=comma]{img/data/poiseuille2d_unrefined_coarse_velocity_outflow_velocity_walls.csv}\coarse + +\begin{axis}[ + scale only axis, + height=8cm, + width=0.4*\textwidth, + mark size=4, + legend cell align=left, + legend style={at={(0.9,-0.1)},anchor=north}, + grid=both, + ylabel=\(x\)-Geschwindigkeit + xtick={0,0.25,0.5,0.75,1}, + title=Geschwindigkeitsprofil, + every axis plot/.append style={thick} +] + +\addplot[ + only marks, + mark=x, + color=green!70!black +] table [ + x=y, y=ux +] {\refinedCubicIpol}; +\addlegendentry{Halbseitig verfeinertes Gitter mit kubischer Interpolation}; + +\addplot[ + only marks, + mark=+, + color=red!70!black +] table [ + x=y, y=ux +] {\refinedLinearIpol}; +\addlegendentry{Halbseitig verfeinertes Gitter mit linearer Interpolation}; + +\addplot[ + only marks, + mark=asterisk, + color=blue!50!white +] table[ + x=y, y=ux +] {\unrefined}; +\addlegendentry{Uniform fein aufgelöstes Gitter}; + +\addplot[ + only marks, + mark=star, + color=gray +] table[ + x=y, y=ux +] {\coarse}; +\addlegendentry{Uniform grob aufgelöstes Gitter}; + +\addplot [domain=0.05:0.95, samples=100]{-4*x*(x-1)}; +\addlegendentry{Analytische Lösung} +\end{axis} + +\begin{axis}[ + scale only axis, + height=8cm, + width=0.4*\textwidth, + mark size=4, + grid=both, + xtick={0,0.25,0.5,0.75,1}, + xshift=7cm, + scaled y ticks=false, + ylabel=Fehler, + yticklabel pos=right, + y tick label style={/pgf/number format/sci}, + title=Fehler zur analytischen Lösung, + every axis plot/.append style={thick} +] + +\addplot[ + only marks, + mark=x, + color=green!70!black +] table [ + x=y, + y expr=\thisrow{ux}+4*\thisrow{y}*(\thisrow{y}-1) +] {\refinedCubicIpol}; + +\addplot[ + only marks, + mark=+, + color=red!70!black +] table [ + x=y, + y expr=\thisrow{ux}+4*\thisrow{y}*(\thisrow{y}-1) +] {\refinedLinearIpol}; + +\addplot[ + only marks, + mark=asterisk, + color=blue!50!white +] table[ + x=y, + y expr=\thisrow{ux}+4*\thisrow{y}*(\thisrow{y}-1) +] {\unrefined}; + +\addplot[ + only marks, + mark=star, + color=gray +] table[ + x=y, + y expr=\thisrow{ux}+4*\thisrow{y}*(\thisrow{y}-1) +] {\coarse}; + +\addplot [domain=0:1, samples=100]{0}; +\end{axis} +\end{tikzpicture} @@ -42,7 +42,10 @@ \usetikzlibrary{external} \usepackage{pgfplots} +\usepackage{pgfplotstable} \usepgfplotslibrary{external} +\pgfplotsset{compat=1.16} +\usepgfplotslibrary{colorbrewer} \tikzexternalize[prefix=tikzcache/] |