Commit 6c439858 authored by Davide Torlo's avatar Davide Torlo
Browse files

set the reproducibility report with all the notebooks. The supplementary...

set the reproducibility report with all the notebooks. The supplementary material file must be updated
parent ccccd891
MIT License
Copyright (c) 2021 Davide Torlo, Philipp Öffner and Hendrik Ranocha
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
# Stability of Positivity Preserving Patankar-Type Schemes # Stability of Positivity Preserving Patankar-Type Schemes
This repository contains the code for the reproducibility of "A new Stability Approach for Positivity-Preserving Patankar-type Schemes" by D. Torlo, P. Öffner and H. Ranocha. [![License: MIT](https://img.shields.io/badge/License-MIT-success.svg)](https://opensource.org/licenses/MIT)
\ No newline at end of file
This repository contains the code for the reproducibility of "A new Stability Approach for Positivity-Preserving Patankar-type Schemes" by D. Torlo, P. Öffner and H. Ranocha [arXiv preprint](https://arxiv.org).
We provide some *Julia* codes and Jupyter notebooks to reproduce the simulations of the paper, some *Mathematica* notebook to reproduce the symbolic computations and the results of the paper, and the supplementary material file with all the results that could not fit in the article.
### Julia codes
In folder [simulations](simulations/) there are:
* the implementations of all the Patankar and modified Patankar schemes ([Patankar Runge--Kutta](simulations/mPRK.jl) and [modified Patankar Deferred Correction](simulations/mPDeC.jl)) and some auxiliary functions ([Lagrange polynomials file](simulations/Lagrange_polynomials.jl))
* the study of the general **linear $2\times 2$ system** searching for the maximum $\Delta t$ bound for which we do not observe oscillations for all the schemes is in the [CFL notebook](simulations/SearchingCFLconditions.ipynb)
* the study of the spurious steady state for all the methods is in the [Inconsistency notebook](simulations/Inconsistency.ipynb)
* the test of the stability bound previously found on **scalar nonlinear problem** is in [Nonlinear Problem notebook](simulations/Nonlinear_Problems.ipynb)
* the test of the inconsistency on **Robertson problem** is in [Robertson notebook](simulations/Robertson_Problem.ipynb)
* the test of the inconsistency on **HIRES problem** is in [HIRES notebook](simulations/Problem_HIRES.ipynb)
### Mathematica notebooks
In folder [symbolic_computations](simbolic_computations/) contains:
* the computations of the $\Delta t$ bound on the general **linear $2\times 2$ system** for the **MPRK(2,2,1)** scheme is in the [MPRK(2,2,1) notebook](simbolic_computations/MPRK_2_2_1_generalSystem.nb)
* the computations of the $\Delta t$ bound and the Taylor expansion to understand which scheme has inconsistency on the **symmetric linear $2\times 2$ system** for some of the **MPRK(2,2,$\alpha$)** schemes is in the [MPRK(2,2,$\alpha$) notebook](simbolic_computations/MPRK_2_2_alpha.nb)
* the Taylor expansion to understand if **MPRK(3,2)** has inconsistency on the **symmetric linear $2\times 2$ system** is in the [MPRK(3,2) notebook](simbolic_computations/MPRK_3_2.nb)
* the Taylor expansion to understand if **mPDeC2** and **mPDeC3** have inconsistencies on the **symmetric linear $2\times 2$ system** is in the [MPDeC notebook](simbolic_computations/MPDeC.nb)
### Supplementary material
In folder [supplementary_material](supplementary_material/) there is the [file](supplementary_material/supplementary_material.pdf) with the supplementary results which are only described in the report
## Disclaimer
Everything is provided as-is and without warranty. Use at your own risk!
This source diff could not be displayed because it is too large. You can view the blob instead.
%% Cell type:code id: tags:
``` julia
ENV["PYCALL_JL_RUNTIME_PYTHON"]="/compute/dtorlo/julia/JuliaVEnv/bin/python3"
```
%%%% Output: execute_result
"/compute/dtorlo/julia/JuliaVEnv/bin/python3"
%% Cell type:code id: tags:
``` julia
using PyPlot; plt=PyPlot
using PyCall
using FastGaussQuadrature, Compat
using LinearAlgebra
# line cyclers adapted to colourblind people
cycler = pyimport("cycler").cycler
line_cycler = (cycler(color=["#E69F00", "#56B4E9", "#009E73", "#0072B2", "#D55E00", "#CC79A7", "#F0E442","#E69F00", "#56B4E9", "#009E73", "#0072B2", "#D55E00", "#CC79A7", "#F0E442"]) +
cycler(linestyle=["-", "--", "-.", ":", "-", "--", "-.", ":","-", "--", "-.", ":", "-", "--"]))
marker_cycler = (cycler(color=["#E69F00", "#56B4E9", "#009E73", "#0072B2", "#D55E00", "#CC79A7", "#F0E442"]) +
cycler(linestyle=["none", "none", "none", "none", "none", "none", "none"]) +
cycler(marker=["4", "2", "3", "1", "+", "x", "."]))
# matplotlib's standard cycler
standard_cycler = cycler("color", ["#1f77b4", "#ff7f0e", "#2ca02c", "#d62728", "#9467bd", "#8c564b", "#e377c2", "#7f7f7f", "#bcbd22", "#17becf"])
plt.rc("axes", prop_cycle=line_cycler)
include("mPDeC.jl")
include("mPRK.jl")
function overshootMeasure(u1)
if u1>0.9
return 1.
else
return 0.
end
end
```
%%%% Output: execute_result
overshootMeasure (generic function with 1 method)
%% Cell type:markdown id: tags:
## Fix a 2x2 linear system
$$
\begin{cases}
u_1'= -\theta u_1 + (1-\theta) u_2\\
u_1'= +\theta u_1 - (1-\theta) u_2
\end{cases}
$$
with $\theta = 0.9$.
A general initial condition is
$$
\begin{pmatrix}
u_1^0\\u_2^0
\end{pmatrix}
=\begin{pmatrix}
1-\varepsilon\\\varepsilon
\end{pmatrix}
$$
with $\varepsilon = 10^{-300}$.
Fix the timestep to $\Delta t =1$.
The method is inconsistent if $u^1_2 \approx \varepsilon$ instead of the exact solution $u_2(\Delta t) \approx 0.43$
%% Cell type:code id: tags:
``` julia
θ=0.9
param_a,param_b= (1-θ),θ #10^2, 10^2 # 1, 1 #
function prod_dest(c)
d= length(c)
p=zeros(d,d)
d=zeros(d,d)
p[1,2]=param_a*c[2]
d[2,1]=param_a*c[2]
p[2,1]=param_b*c[1]
d[1,2]=param_b*c[1]
return p, d
end
uInf=[param_a param_b]
function exact_solution(c0,time)
c_exact=zeros(size(c0)[1],size(time)[1])
a=param_a
b=param_b
A= [ -b a; b -a]
for it=1:length(time)
t=time[it]
c_exact[:,it] = c0+(1- exp(-(a+b)*t))/(a+b).*(A*c0)
end
return c_exact
end
function rhs_function(u)
return zeros(length(u))
end
function SIf(c)
#Production terms
d=length(c)
f=zeros(d)
f[1]=param_a*c[2]
f[2]=param_b*c[1]
return f
end
function SIg(c)
#Destruction terms divided by c
d=length(c)
g=zeros(d)
g[1]=param_b
g[2]=param_a
return -g
end
ep=1e-300
u0=[1-ep; ep]
dt=2
tt=0:dt:dt
a=param_a
b=param_b
A= [ -b a; b -a]
u_exact = u0+(1- exp(-(a+b)*dt))/(a+b).*(A*u0)
u_exact
```
%%%% Output: execute_result
2-element Array{Float64,1}:
0.2218017549129514
0.7781982450870486
%% Cell type:markdown id: tags:
#### MPRK22($\alpha$) method for this system
%% Cell type:code id: tags:
``` julia
problem="system2"
folder="Simulations/searchingCFL/Inconsistency"
order=2
mkpath(folder)
folder = string(folder,"system2/")
mkpath(folder)
αs = range(0.5,stop=4,length=36)
l1=length(αs)
AA=zeros(l1)
QQ=zeros(l1)
Threads.@threads for i1=1:l1
α=αs[i1]
print(i1)
AA[i1]=α
try
tout,uu=mPRK22(prod_dest, rhs_function, tt,u0, α)
QQ[i1]= overshootMeasure(uu[1,2])
if isnan(tmp)
QQ[i1]=1.0
end
catch e
QQ[i1]=1.0
end
end
```
%%%% Output: stream
291633212511612223032331244325262728171218192013141534735368910
%% Cell type:code id: tags:
``` julia
plt.plot(αs[QQ.>0.5],QQ[QQ.>0.5],"rx")
plt.plot(αs[QQ.<0.5],QQ[QQ.<0.5],"go")
plt.xlabel(L"\alpha")
plt.ylabel(L"Inconsistent")
plt.savefig(string(folder,"RK2Inconsistency.pdf"))
```
%%%% Output: display_data
![](data:image/png;base64,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rU6dOik5OVmJiYlKTEz0dF8AAABe5dblsEceeUT79u1rMn748GE5nc4v3RQAAIC3uRWCysrKdPfddzcZ3759ux588MEv3RQAAIC3uRWCIiIi9OmnnzYZT09PV1FR0ZduCgAAwNvcCkH33Xefli5d2nRjHTro4sWLX7opAAAAb3MrBC1cuFC7du3SqFGjdODAAUnShQsX9Mwzz6h///4ebRAAAMAb3Pp2WLdu3VRYWKipU6dqwIABCgsL0+XLlxUZGak//OEPnu4RAADA49z+naC4uDht3bpVVVVVKikpUUhIiAYPHqwuXbp4sj8AAACvcOty2N69ezVy5Ej1799fM2bMUGlpqS5duqS6ujpP9wcAAOAVboWgSZMmKSgoSNnZ2erdu7cKCgr0wx/+UHFxcerataunewQAAPA4ty6HVVVVacuWLYqPj280XlFRodLSUk/0BQAA4FVuhaC0tDQdP368SQiKi4tTXFycRxoDAADwJrcuh82ePVvz589v9gcTAQAA2gO3zgSNGzdODodDCQkJyszMVFpamlJSUpScnKywsDBP9wgAAOBxboWgI0eOaP/+/a7HokWLVFFRoeDgYCUlJbl+QBEAAMBfuRWC4uPjFR8fr4kTJ7rGampqVFpaSgACAADtgsMYY1o6+Uc/+pFSU1M1cOBAJScnKzw83Ju9+VRNTY0iIyPldDoVERHh63YAAEALtObzu1Vngg4fPqzf//73qq2tdV36GjhwoAYOHKjU1FQNGDBAX/3qV79U8wAAAG2hVSFo586dkq7eE7Rv3z6999572rdvn958802dPXtWHTp00Ne//nUdPHjQK80CAAB4ilv3BCUkJCghIUEPPPCAa6y8vFzFxcUqKSnxWHMAAADe0qp7gmzCPUEAALQ/rfn8duvHEgEAANo7QhAAALASIQgAAFiJEAQAAKxECAIAAFYiBAEAACsRggAAgJUIQQAAwEqEIAAAYCVCEAAAsBIhCAAAWIkQBAAArEQIAgAAViIEAQAAKxGCAACAlQhBAADASoQgAABgJUIQAACwkl+EoFWrVqlXr14KDw9Xamqqdu3adcP5K1euVN++fdWxY0clJibqpZdeajLnl7/8pRITE9WxY0fFxMRo1qxZunDhgreWAAAA2plgXzfw6quvaubMmVq1apWGDRumX/3qVxozZowOHjyo2NjYJvNXr16t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t2jChAkqKyv7wrpAOQbcWX+gHQOrV69W//79XT+Cl5aWprfffvuGNYGy/6XWrz/Q9v/fy83NlcPh0MyZM284zxfHACHIC1599VXNnDlTP/3pT1VSUqL09HSNGTNGlZWVN6wrKyvTqVOnXI+EhIQ26tiz6urqlJycrBUrVrRofnl5ucaOHav09HSVlJRo7ty5mj59ujZu3OjlTr2jteu/JlD2f0FBgaZNm6a//OUvys/P1+XLl5WRkaG6urrr1gTSMeDO+q8JlGOgR48eWrRokYqLi1VcXKxvfetbGj9+vD788MNm5wfS/pdav/5rAmX//629e/dq7dq16t+//w3n+ewYMPC4O++802RnZzcaS0pKMnPmzGl2/vbt240k89lnn7VBd21Lktm8efMN5zz++OMmKSmp0diPf/xjM2TIEC921jZasv5A3v/GGHP69GkjyRQUFFx3TiAfAy1Zf6AfA8YY07lzZ/PCCy80+1og7/9rbrT+QN3/tbW1JiEhweTn55u7777bzJgx47pzfXUMcCbIwy5evKh9+/YpIyOj0XhGRob27Nlzw9qUlBR1795dI0eO1Pbt273Zpl8pLCxs8n6NHj1axcXFunTpko+6anuBuv+dTqckqUuXLtedE8jHQEvWf00gHgMNDQ3asGGD6urqlJaW1uycQN7/LVn/NYG2/6dNm6Z7771Xo0aN+sK5vjoG+AOqHnbmzBk1NDQoKiqq0XhUVJSqq6ubrenevbvWrl2r1NRU1dfX67e//a1GjhypHTt26K677mqLtn2qurq62ffr8uXLOnPmjLp37+6jztpGIO9/Y4xmz56t4cOHq1+/ftedF6jHQEvXH4jHwPvvv6+0tDRduHBBN910kzZv3qzbb7+92bmBuP9bs/5A3P8bNmzQe++9p71797Zovq+OAUKQlzgcjkbPjTFNxq5JTExUYmKi63laWpqqqqq0dOnSdvsfQGs19341Nx6IAnn/P/zwwzpw4IB27979hXMD8Rho6foD8RhITExUaWmpzp49q40bNyorK0sFBQXXDQKBtv9bs/5A2/9VVVWaMWOGtm3bpvDw8BbX+eIY4HKYh3Xr1k1BQUFNzvqcPn26Scq9kSFDhujIkSOebs8v3Xrrrc2+X8HBweratauPuvKtQNj/jzzyiN58801t375dPXr0uOHcQDwGWrP+5rT3YyA0NFR9+vTRoEGDlJubq+TkZC1fvrzZuYG4/1uz/ua05/2/b98+nT59WqmpqQoODlZwcLAKCgr0/PPPKzg4WA0NDU1qfHUMEII8LDQ0VKmpqcrPz280np+fr6FDh7Z4OyUlJe3yFLA70tLSmrxf27Zt06BBgxQSEuKjrnyrPe9/Y4wefvhhbdq0SX/+85/Vq1evL6wJpGPAnfU3pz0fA80xxqi+vr7Z1wJp/1/PjdbfnPa8/0eOHKn3339fpaWlrsegQYP0/e9/X6WlpQoKCmpS47NjwKu3XVtqw4YNJiQkxKxfv94cPHjQzJw503z1q181x44dM8YYM2fOHDNp0iTX/Oeee85s3rzZHD582HzwwQdmzpw5RpLZuHGjr5bwpdTW1pqSkhJTUlJiJJlly5aZkpISU1FRYYxpuv6PP/7YfOUrXzGzZs0yBw8eNOvXrzchISHm9ddf99USvpTWrj/Q9v/UqVNNZGSk2bFjhzl16pTrcf78edecQD4G3Fl/oB0DOTk5ZufOnaa8vNwcOHDAzJ0713To0MFs27bNGBPY+9+Y1q8/0PZ/c/7+22H+cgwQgrxk5cqVJi4uzoSGhpqBAwc2+npsVlaWufvuu13Pn3nmGRMfH2/Cw8NN586dzfDhw82WLVt80LVnXPu6598/srKyjDFN12+MMTt27DApKSkmNDTU9OzZ06xevbrtG/eQ1q4/0PZ/c2uXZH7961+75gTyMeDO+gPtGPjnf/5n1///3XzzzWbkyJGuAGBMYO9/Y1q//kDb/835+xDkL8eAw5j/f+cRAACARbgnCAAAWIkQBAAArEQIAgAAViIEAQAAKxGCAACAlQhBAADASoQgAABgJUIQAACwEiEIAABYiRAEAACsRAgCAABWIgQBsEpRUZG++c1vqmPHjkpKStLevXu1du1a3Xfffb5uDUAb4w+oArDGX/7yF40YMUJPP/20vvOd7+iJJ55QfX29Dh8+rNdee00pKSm+bhFAGyIEAbDG0KFD1bt3b/3ud7+TJL322mt68MEHNX78eG3atMnH3QFoa1wOA2CF48ePq7CwUFOnTnWNhYaGyhijX/ziFz7sDICvEIIAWOHQoUOSpEGDBrnGysrKdOedd+ob3/iGr9oC4EOEIABWcDqdCgoKcj3/9NNPtXjxYoWFhfmwKwC+RAgCYIUBAwaooaFBixcv1kcffaQHH3xQcXFxOnTokCoqKnzdHgAfIAQBsEKfPn00b948LV++XCkpKerevbu2bdummJgYjRo1ytftAfABvh0GAACsxJkgAABgJUIQAACwEiEIAABYiRAEAACsRAgCAABWIgQBAAArEYIAAICVCEEAAMBKhCAAAGAlQhAAALASIQgAAFjp/wH5SYl+HJQdbgAAAABJRU5ErkJggg==)
%% Cell type:markdown id: tags:
#### DeC equispaced all orders
%% Cell type:code id: tags:
``` julia
tout,uu=dec_correction(prod_dest, rhs_function, tt,u0, 11,12,"equispaced")
```
%%%% Output: execute_result
(0:2:2, [1.0 1.0000000000000009; 1.0e-300 5.170604644494139e-293])
%% Cell type:code id: tags:
``` julia
distributions=["equispaced","gaussLobatto"]
distrShort=["eq","glb"]
for (idist, dist) in enumerate(distributions)
incons=zeros(30)
print(dist)
open(string(folder,"InconsistencyDeC$(distrShort[idist])AllSystems.tex"), "w") do io
write(io,"Order & Inconsistency \\\\ \\hline \n")
for order=1:30
print("Order $(order) ")
try
tout,uu=dec_correction(prod_dest, rhs_function, tt,u0, max(order-1,1),order,dist)
incons[order]= overshootMeasure(uu[1,2])
if isnan(incons[order])
incons[order]=1.0
end
catch e
incons[order]=1.0
end
println("Order $(order) Inconsistency $(incons[order])")
write(io, " $(order) & $(incons[order]) \\\\ \n")
end
end
end
```
%%%% Output: stream
equispacedOrder 1 Order 1 Inconsistency 0.0
Order 2 Order 2 Inconsistency 0.0
Order 3 Order 3 Inconsistency 0.0
Order 4 Order 4 Inconsistency 0.0
Order 5 Order 5 Inconsistency 0.0
Order 6 Order 6 Inconsistency 0.0
Order 7 Order 7 Inconsistency 0.0
Order 8 Order 8 Inconsistency 0.0
Order 9 Order 9 Inconsistency 1.0
Order 10 Order 10 Inconsistency 0.0
Order 11 Order 11 Inconsistency 1.0
Order 12 Order 12 Inconsistency 1.0
Order 13 Order 13 Inconsistency 1.0
Order 14 Order 14 Inconsistency 1.0
Order 15 Order 15 Inconsistency 1.0
Order 16 Order 16 Inconsistency 1.0
Order 17 Order 17 Inconsistency 1.0
Order 18 Order 18 Inconsistency 1.0
Order 19 Order 19 Inconsistency 1.0
Order 20 Order 20 Inconsistency 1.0
Order 21 Order 21 Inconsistency 1.0
Order 22 Order 22 Inconsistency 1.0
Order 23 Order 23 Inconsistency 1.0
Order 24 Order 24 Inconsistency 1.0
Order 25 Order 25 Inconsistency 1.0
Order 26 Order 26 Inconsistency 1.0
Order 27 Order 27 Inconsistency 1.0
Order 28 Order 28 Inconsistency 1.0
Order 29 Order 29 Inconsistency 1.0
Order 30 Order 30 Inconsistency 1.0
gaussLobattoOrder 1 Order 1 Inconsistency 0.0
Order 2 Order 2 Inconsistency 0.0
Order 3 Order 3 Inconsistency 0.0
Order 4 Order 4 Inconsistency 0.0
Order 5 Order 5 Inconsistency 0.0
Order 6 Order 6 Inconsistency 0.0
Order 7 Order 7 Inconsistency 0.0
Order 8 Order 8 Inconsistency 0.0
Order 9 Order 9 Inconsistency 0.0
Order 10 Order 10 Inconsistency 0.0
Order 11 Order 11 Inconsistency 0.0
Order 12 Order 12 Inconsistency 0.0
Order 13 Order 13 Inconsistency 0.0
Order 14 Order 14 Inconsistency 0.0
Order 15 Order 15 Inconsistency 0.0
Order 16 Order 16 Inconsistency 0.0
Order 17 Order 17 Inconsistency 0.0
Order 18 Order 18 Inconsistency 0.0
Order 19 Order 19 Inconsistency 0.0
Order 20 Order 20 Inconsistency 0.0
Order 21 Order 21 Inconsistency 0.0
Order 22 Order 22 Inconsistency 0.0
Order 23 Order 23 Inconsistency 0.0
Order 24 Order 24 Inconsistency 0.0
Order 25 Order 25 Inconsistency 0.0
Order 26 Order 26 Inconsistency 0.0
Order 27 Order 27 Inconsistency 0.0
Order 28 Order 28 Inconsistency 0.0
Order 29 Order 29 Inconsistency 0.0
Order 30 Order 30 Inconsistency 0.0
%% Cell type:markdown id: tags:
### MPRKSO(4,3)
%% Cell type:code id: tags:
``` julia
tout,uu=mPRKSO3(prod_dest, rhs_function, tt,u0)
tmp= overshootMeasure(uu[1,2])
print(tmp)
```
%%%% Output: stream
0.0
%% Cell type:markdown id: tags:
## MPRK(3,2) inspired from a SSPRK(3,3)
%% Cell type:code id: tags:
``` julia
tout,uu=mPRK32(prod_dest, rhs_function, tt,u0)
tmp= overshootMeasure(uu[1,2])
println(tmp)
```
%%%% Output: stream
0.0
%% Cell type:markdown id: tags:
### MPRKSO22($\alpha$,$\beta$)
%% Cell type:code id: tags:
``` julia
l1=201
l2=201
as=range(0.,stop=0.5,length=l1)
bs=range(0.,stop=10,length=l2)
AA=zeros(l1,l2)
BB=zeros(l1,l2)
QQ=zeros(l1,l2)
Threads.@threads for k=1:l1
print(k)
for j= 1:l2
AA[k,j]=as[k]
BB[k,j]=bs[j]
try
tout,uu=mPRKSO2(prod_dest,rhs_function, tt,u0, as[k],bs[j])
QQ[k,j]= overshootMeasure(uu[1,2])
if isnan(QQ[k,j])
QQ[k,j]=1.0
end
catch e
QQ[k,j]=1.0
end
end
end
```
%%%% Output: stream
117727127102771525223456787879910801112138114151617188219178202122238324252617984128851801031298618110487130282930153313210533182881313453353637154543810689391325540183414256431559010744571334518446589147156108594892134496018510950157936151135186110629415863136111187649515911213765961881606611397138671891616898114139691901629911514070116163191100711411171647210119214273118165143193741191667514412019476167145121195146168122196169123147170197124148125171198149126172199150173151200174201175176
%% Cell type:code id: tags:
``` julia
nLevels=4
colls=zeros(nLevels,3)
colls[:,1]=[x for x in range(0,stop=1,length=nLevels)]
colls[:,2]=[1-sqrt.(2*x*(1-x)) for x in range(0,stop=1,length=nLevels)]
colls[:,3]=[1-x for x in range(0,stop=1,length=nLevels)]
levels=[0
0.2
0.5
1.1]
#levels=[0
# 0.0005
# 0.001
# range(6,stop=11,length=13)
# 16]
PyPlot.contourf(AA,BB,QQ,levels, colors=colls)
#PyPlot.colorbar()
PyPlot.xlabel(L"\alpha")
PyPlot.ylabel(L"$\beta$")
#PyPlot.title("log10 Variation Lyapunov mPRK3")
PyPlot.savefig(string(folder,"InconsistencyRKSO2.pdf"))
PyPlot.show()
```
%%%% Output: display_data
![](data:image/png;base64,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LFu2LD796U/Hzp074/d///fjD/7gD+KZZ55Je2gAQM7kLoTWrVsXH//4x+Pyyy+Pk046KdavXx+TJ0+Om2++Oe2hAQA5MyLtAVTjtddei4cffjiWL1/e6/iCBQtix44dfX6mq6srurq6er7u7OyMiIhfv/56/QYKANRU95/bSZLU9PvmKoSef/75OHDgQEyYMKHX8QkTJsTevXv7/MyaNWti9erVhx3/xD331GWMAED9/PKXv4xx48bV7PvlKoS6tbS09Po6SZLDjnVbsWJFXH311T1fv/jiizF16tR45plnavovkurt27cvJk+eHHv27Im2tra0h1NozkW2OB/Z4VxkR2dnZ0yZMiWOOeaYmn7fXIXQ29/+9hg+fPhhsz/PPffcYbNE3VpbW6O1tfWw4+PGjfMfdUa0tbU5FxnhXGSL85EdzkV2DBtW2+XNuVosPWrUqJg1a1Zs2bKl1/EtW7bE3LlzUxoVAJBXuZoRioi4+uqr42Mf+1jMnj075syZExs2bIhnnnkmFi9enPbQAICcyV0IffSjH41f/vKXcd1118Wzzz4bp5xySnz729+OqVOnDujzra2tsXLlyj4vl9FYzkV2OBfZ4nxkh3ORHfU6Fy1JrfehAQDkRK7WCAEA1JIQAgAKSwgBAIUlhACAwmrKELrpppti+vTpMXr06Jg1a1Zs27btiO+/7777YtasWTF69Og44YQT4qtf/WqDRtr8qjkXzz77bFx88cUxY8aMGDZsWCxbtqxxAy2Aas7FnXfeGR/84Afjd37nd6KtrS3mzJkT3/3udxs42uZWzbnYvn17zJs3L8aPHx9jxoyJmTNnxpe+9KUGjrb5VftnRrd///d/jxEjRsTpp59e3wEWSDXnYuvWrdHS0nLY64knnqjuhyZN5pvf/GYycuTIZOPGjcljjz2WLF26NDnqqKOSp59+us/3/+xnP0vGjh2bLF26NHnssceSjRs3JiNHjkz++Z//ucEjbz7Vnounnnoq+eQnP5nceuutyemnn54sXbq0sQNuYtWei6VLlyZr165NfvCDHyS7d+9OVqxYkYwcOTJ55JFHGjzy5lPtuXjkkUeSTZs2JT/+8Y+Tp556KvnGN76RjB07NvmHf/iHBo+8OVV7Prq9+OKLyQknnJAsWLAgefe7392YwTa5as/F9773vSQikieffDJ59tlne1779++v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)
%% Cell type:markdown id: tags:
### MPRK43($\alpha,\beta$)
%% Cell type:code id: tags:
``` julia
l1=201
l2=201
as=range(1/3,stop=3,length=l1)
bs=range(0.28,stop=0.75,length=l2)
AA=zeros(l1,l2)
BB=zeros(l1,l2)
QQ=zeros(l1,l2)
Threads.@threads for k=1:l1
print(k)
for j= 1:l2
AA[k,j]=as[k]
BB[k,j]=bs[j]
try
tout,uu=mPRK3(prod_dest,rhs_function, tt,u0, as[k],bs[j])
QQ[k,j]= overshootMeasure(uu[1,2])
if isnan(QQ[k,j])
QQ[k,j]=1.0
end
catch e
QQ[k,j]=1.0
end
end
end
```
%%%% Output: stream
521522717717710212723281531031781285378541291041547917929554105801555613018010681156305713151811075813282157108182596833113315860109841341831593261110785184135160621113386136185631611128876413718634113162886591381871148916366351156790188139101643691681161401651896992111173716619014170118931671219138711421199416872391921314395120731694019396144121417417014429719414512275431714498195157612314645172461249919614747161734810012519714849174101126175019814951175181501991761512001920120212223242526
%% Cell type:code id: tags:
``` julia
problem="system2"
folder="Simulations/searchingCFL/Inconsistency"
order=2
mkpath(folder)
folder = string(folder,"system2/")
mkpath(folder)
nLevels=4
colls=zeros(nLevels,3)
colls[:,1]=[x for x in range(0,stop=1,length=nLevels)]
colls[:,2]=[1-sqrt.(2*x*(1-x)) for x in range(0,stop=1,length=nLevels)]
colls[:,3]=[1-x for x in range(0,stop=1,length=nLevels)]
levels=[0
0.2
0.7
1.1]
#levels=[0
# 0.0005
# 0.001
# range(6,stop=11,length=13)
# 16]
PyPlot.contourf(AA,BB,QQ,levels, colors=colls)
#PyPlot.colorbar()
PyPlot.xlabel(L"\alpha")
PyPlot.ylabel(L"$\beta$")
#PyPlot.title("log10 Variation Lyapunov mPRK3")
PyPlot.savefig(string(folder,"InconsistencyRK43.pdf"))
PyPlot.show()
println(maximum(QQ))
```
%%%% Output: display_data
![](data:image/png;base64,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SIQRAEAijAAAEmEEAJAIIwCARBgBACTCCAAgEUYAAIkwAgBIhBEAQCKMeF++FgSA4WJUoQdAcctFiqL6iIYtucIOBgD6WdHNGK1bty4mT54c5eXlUV1dHbt27Trr9u3t7bFy5cqYOHFilJWVxTXXXBOPP/74AI12+PCFsgAMB0U1Y7R58+ZYtmxZrFu3LubMmRPf+c53Yv78+XHgwIG46qqret2nvr4+3nzzzdi4cWNce+21cfTo0Xj33XcHeOQAwFBQVGG0Zs2auPvuu2Px4sUREbF27dr4p3/6p1i/fn2sXr26x/b/+I//GDt27IhXX301LrvssoiImDRp0kAOGQAYQormrbQTJ07Evn37oq6urtv6urq62LNnT6/7/PCHP4yampp45JFH4sMf/nB85CMfifvvvz9+85vfnPF12tvbo62trdsCABBRRDNGx44di46OjqisrOy2vrKyMo4cOdLrPq+++mrs3r07ysvL4+mnn45jx47F0qVL45e//OUZrzNavXp1PPTQQ3kfPwAw+BXNjFGnkpKSbo+zLOuxrtOpU6eipKQknnzyybjhhhvi1ltvjTVr1sSmTZvOOGu0YsWKaG1t7VoOHTqU998BABicimbGaNy4cTFy5Mges0NHjx7tMYvUafz48fHhD384KioqutZNmzYtsiyL119/Pa677roe+5SVlUVZWVl+Bw8ADAlFM2NUWloa1dXV0djY2G19Y2NjzJ49u9d95syZE2+88Ub8+te/7lr38ssvx4gRI2LChAn9Ol4AYOgpmjCKiFi+fHl897vfjccffzxefPHF+OpXvxrNzc2xZMmSiDj9NtjnP//5ru3vvPPOuPzyy+PP/uzP4sCBA7Fz5874i7/4i/jiF78YF110UaF+DQBgkCqat9IiIhYuXBjHjx+PVatWRUtLS8yYMSO2b98eEydOjIiIlpaWaG5u7tr+kksuicbGxrjvvvuipqYmLr/88qivr4+HH364UL8CADCIFVUYRUQsXbo0li5d2uvPNm3a1GPd1KlTe7z9BgBwPorqrTQAgEISRgAAiTACAEiK7hojilcuGiLqT/+7YUuusIMBgH5gxohzkouGQg8BAPqNMAIASIQRAEAijAAAEmEEAJAIIwCARBgBACTCCAAgEUYAAIkwAgBIhBEAQCKMAAASYQQAkAgjzlkuGiJX78tkARh6hBHn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)
%%%% Output: stream
1.0
%% Cell type:markdown id: tags:
#### MPRK(4,3,$\alpha,\beta$) on the purple line of the original paper
%% Cell type:code id: tags:
``` julia
problem="system2"
folder="Simulations/searchingCFL/Inconsistency"
order=3
mkpath(folder)
folder = string(folder,"system2/")
mkpath(folder)
αs = range(0.89255,stop=10,length=100)
βs= max.(3*αs.*(1 .-αs),(3*αs.-2.)./(6*αs.-3.))
l1=length(αs)
AA=zeros(l1)
QQ=zeros(l1)
Threads.@threads for i1=1:l1
α=αs[i1]
print(i1)
AA[i1]=α
try
tout,uu=mPRK3(prod_dest, rhs_function, tt,u0, α,β)
QQ[i1]= overshootMeasure(uu[1,2])
if isnan(tmp)
QQ[i1]=1.0
end
catch e
QQ[i1]=1.0
end
end
```
%%%% Output: stream
146577895327140151666545556786790919257689379808158697017822719459288384603957229304118858661311996427332208797984628874432133575224499663457610034467642347835249364825371026493811503912511352
%% Cell type:code id: tags:
``` julia