Commit b431d7aa authored by niklas.baumgarten's avatar niklas.baumgarten
Browse files

updated notebook

parent bb034a68
Pipeline #147235 passed with stages
in 58 minutes and 41 seconds
%% Cell type:code id: tags:
``` python
import sys
sys.path.append('..')
import mpp.python.mppy as mppy
import mpp.python.mppy.utilities as utils
from python.mlmc_mppy import *
import pandas as pd
mpp = mppy.Mpp(project_name='MLMC',
executable='MLMC-M++',
kernels=4,
mute=False)
mpp.build()
```
%%%% Output: stream
================ running cmake ================
-- Project directory= /home/niklas/CLionProjects/mlmc
-- Mpp directory= /home/niklas/CLionProjects/mlmc/mpp
-- Setting prepare commit message hook to mpp
file: /home/niklas/CLionProjects/mlmc/mpp/doc/../../.git/modules/mpp/hooks/prepare-commit-msg
-- Failed to find LLVM FileCheck
-- git Version: v1.5.2-bf585a27
-- Version: 1.5.2
-- Performing Test HAVE_STD_REGEX -- success
-- Performing Test HAVE_GNU_POSIX_REGEX -- failed to compile
-- Performing Test HAVE_POSIX_REGEX -- success
-- Performing Test HAVE_STEADY_CLOCK -- success
-- A library with LAPACK API found.
-- C Compiler optimization= -O3
-- C++ version= 17
-- Compiler version= c++
-- Compiler optimization= -O0
-- Suppress deprecated warnings= OFF
-- Building space time library= OFF
-- Time dimension= 0
-- Using fftw library= ON
-- Space dimension= 2
-- Affine linear transformations= ON
-- Geometric tolerance= 1e-10
-- Near zero= 1e-15
-- Very large= 1e30
-- Infinity= 1e100
-- Building mpp unit tests= OFF
-- Building mpp interval arithmetic unit tests= OFF
-- Configuring done
-- Generating done
-- Build files have been written to: /home/niklas/CLionProjects/mlmc/build
================ running make ================
[ 1%] Built target gtest
[ 6%] Built target benchmark
[ 10%] Built target LIB_BASIC
[ 57%] Built target superlu
[ 57%] Built target benchmark_main
[ 57%] Built target gtest_main
[ 58%] Built target gmock
[ 58%] Built target gtest_main
[ 59%] Built target gmock_main
[ 58%] Built target benchmark_main
[ 62%] Built target LIB_MATH
[ 62%] Built target gmock_main
[ 63%] Built target LIB_TEST
[ 68%] Built target LIB_MESH
[ 71%] Built target LIB_DISC
[ 75%] Built target LIB_VECTOR
[ 80%] Built target LIB_ELEM
[ 84%] Built target LIB_SOLVERS
[ 84%] Built target MPP_LIBRARIES
[ 84%] Built target BASICS
[ 85%] Built target TestPlotting
Scanning dependencies of target PDESOLVER
[ 86%] Building CXX object mlmc/src/pdesolver/CMakeFiles/PDESOLVER.dir/PDESolverCreator.cpp.o
[ 86%] Building CXX object mlmc/src/pdesolver/CMakeFiles/PDESOLVER.dir/assembling/MixedEllipticAssemble.cpp.o
[ 86%] Building CXX object mlmc/src/pdesolver/CMakeFiles/PDESOLVER.dir/PDESolver.cpp.o
[ 86%] Building CXX object mlmc/src/pdesolver/CMakeFiles/PDESOLVER.dir/assembling/LagrangeEllipticAssemble.cpp.o
[ 86%] Building CXX object mlmc/src/pdesolver/CMakeFiles/PDESOLVER.dir/assembling/HybridEllipticAssemble.cpp.o
[ 87%] Building CXX object mlmc/src/pdesolver/CMakeFiles/PDESOLVER.dir/assembling/DGEllipticAssemble.cpp.o
[ 87%] Building CXX object mlmc/src/pdesolver/CMakeFiles/PDESOLVER.dir/assembling/PGReactionAssemble.cpp.o
[ 87%] Building CXX object mlmc/src/pdesolver/CMakeFiles/PDESOLVER.dir/assembling/DGReactionAssemble.cpp.o
[ 88%] Linking CXX static library libPDESOLVER.a
[ 88%] Built target PDESOLVER
Scanning dependencies of target PROBLEMS
[ 88%] Building CXX object mlmc/src/problems/CMakeFiles/PROBLEMS.dir/StochasticEllipticProblem.cpp.o
[ 89%] Linking CXX static library libPROBLEMS.a
[ 89%] Built target PROBLEMS
Scanning dependencies of target GENERATORS
[ 89%] Building CXX object mlmc/src/generators/CMakeFiles/GENERATORS.dir/algorithms/HybridFluxGenerator.cpp.o
[ 89%] Linking CXX static library libGENERATORS.a
[ 91%] Built target GENERATORS
[ 91%] Linking CXX executable TestNormalDistribution
[ 91%] Linking CXX executable TestUniformDistribution
[ 91%] Linking CXX executable TestCirculantEmbedding
Scanning dependencies of target MONTECARLO
[ 91%] Building CXX object mlmc/src/montecarlo/CMakeFiles/MONTECARLO.dir/MonteCarlo.cpp.o
[ 91%] Built target TestUniformDistribution
[ 91%] Linking CXX executable TestSymmetricCovariance
[ 91%] Built target TestNormalDistribution
Scanning dependencies of target TestPDESolverMPI
[ 91%] Building CXX object mlmc/tests/CMakeFiles/TestPDESolverMPI.dir/pdesolver/TestPDESolver.cpp.o
[ 91%] Built target TestCirculantEmbedding
[ 91%] Building CXX object mlmc/src/montecarlo/CMakeFiles/MONTECARLO.dir/MultilevelMonteCarlo.cpp.o
[ 92%] Built target TestSymmetricCovariance
Scanning dependencies of target TestPDESolver
[ 93%] Building CXX object mlmc/tests/CMakeFiles/TestPDESolver.dir/pdesolver/TestPDESolver.cpp.o
[ 94%] Building CXX object mlmc/src/montecarlo/CMakeFiles/MONTECARLO.dir/datastructure/Errors.cpp.o
[ 94%] Building CXX object mlmc/src/montecarlo/CMakeFiles/MONTECARLO.dir/datastructure/Exponents.cpp.o
[ 94%] Linking CXX executable TestPDESolverMPI
[ 94%] Building CXX object mlmc/src/montecarlo/CMakeFiles/MONTECARLO.dir/datastructure/EmpiricMeasureLevelMaps.cpp.o
[ 94%] Linking CXX executable TestPDESolver
[ 91%] Built target TestUniformDistribution
[ 93%] Built target MONTECARLO
[ 94%] Built target TestSymmetricCovariance
[ 94%] Built target TestPDESolverMPI
[ 94%] Built target TestPDESolver
[ 95%] Linking CXX static library libMONTECARLO.a
[ 95%] Built target MONTECARLO
[ 95%] Linking CXX executable TestWelfordAggregateMPI
Scanning dependencies of target MLMC-M++
[ 96%] Building CXX object CMakeFiles/MLMC-M++.dir/mlmc/src/Main.cpp.o
Scanning dependencies of target TestMonteCarloMPI
Scanning dependencies of target TestMainMPI
[ 96%] Building CXX object mlmc/tests/CMakeFiles/TestMainMPI.dir/TestMain.cpp.o
[ 97%] Building CXX object mlmc/tests/CMakeFiles/TestMonteCarloMPI.dir/montecarlo/TestMonteCarlo.cpp.o
[ 95%] Built target TestPDESolver
[ 96%] Built target MLMC-M++
[ 97%] Built target TestMonteCarloMPI
[ 98%] Built target TestWelfordAggregateMPI
Scanning dependencies of target TestEmpiricMeasureLevelMaps
[ 99%] Building CXX object mlmc/tests/CMakeFiles/TestEmpiricMeasureLevelMaps.dir/montecarlo/datastructure/TestEmpiricMeasureLevelMaps.cpp.o
[ 99%] Linking CXX executable MLMC-M++
[ 99%] Linking CXX executable TestMonteCarloMPI
[ 99%] Linking CXX executable TestMainMPI
[ 99%] Linking CXX executable TestEmpiricMeasureLevelMaps
[ 99%] Built target MLMC-M++
Scanning dependencies of target TestExponents
[100%] Building CXX object mlmc/tests/CMakeFiles/TestExponents.dir/montecarlo/datastructure/TestExponents.cpp.o
[100%] Built target TestMonteCarloMPI
Scanning dependencies of target TestErrors
[100%] Building CXX object mlmc/tests/CMakeFiles/TestErrors.dir/montecarlo/datastructure/TestErrors.cpp.o
[100%] Built target TestMainMPI
[100%] Linking CXX executable TestSPRNG5MPI
[100%] Built target TestEmpiricMeasureLevelMaps
[100%] Built target TestSPRNG5MPI
[100%] Linking CXX executable TestExponents
[100%] Linking CXX executable TestErrors
[ 98%] Built target TestMainMPI
[ 99%] Built target TestEmpiricMeasureLevelMaps
[ 99%] Built target TestErrors
[100%] Built target TestExponents
[100%] Built target TestErrors
[100%] Built target TestSPRNG5MPI
%%%% Output: execute_result
0
%% Cell type:code id: tags:
``` python
mpp.reset_data()
mpp.clean_data()
kwargs={"GeneratorPlotting": 1,
"PDESolverPlotting": 1,
"initLevels": [4, 5, 6],
"Problem": "StochasticLaplace2DTest"}
mpp.run(4, config="mlmc_elliptic", kwargs=kwargs)
```
%%%% Output: stream
================ running mpp ================
start program on 4 procs at Tue Apr 27 13:38:15 2021
start program on 4 procs at Tue Apr 27 13:43:38 2021
Running on: niklas-ThinkPad-T470p
Config Info:
GeneratorVerbose: ......... 0
NewtonVerbose: ............ 0
PDESolverVerbose: ......... 0
LinearVerbose: ............ 0
MeshVerbose: .............. 1
MainVerbose: .............. 1
MCVerbose: ................ 1
MLMCVerbose: .............. 1
PDESolverPlotting: ........ 1
GeneratorPlotting: ........ 1
lambda: ................... [0.15, 0.15]
Model: .................... LagrangeElliptic
AssembleVerbose: .......... 0
degree: ................... 1
MCParallel: ............... false
maxLevel: ................. 7
Problem: .................. StochasticLaplace2DTest
StochasticField: .......... LogNormal
epsilon: .................. 0.01
ConfigVerbose: ............ 1
onlyFine: ................. false
Mean: ..................... 0.0
initLevels: ............... [4, 5, 6]
smoothing: ................ 1.0
Quantity: ................. L2
initSampleAmount: ......... [12, 6, 3]
sigma: .................... 1.0
MLMC Experiment: Run
MLMC Method: eps=0.010000
MonteCarlo l=4: Start with: M=0 dM=12 Mcomm=0 dMcomm=12
MonteCarlo l=4: MeanQ=0 MeanY=0 SVarQ=0 SVarY=0
MonteCarlo l=4: End with: M=12 dM=12 Mcomm=0 dMcomm=0
MonteCarlo l=4: MeanQ=0.57815467 MeanY=0.57815467 SVarQ=1.6015669e-05 SVarY=1.6015669e-05
MonteCarlo l=4: Took 0.27 seconds
MonteCarlo l=4: Took 0.28 seconds
MonteCarlo l=5: Start with: M=0 dM=6 Mcomm=0 dMcomm=6
MonteCarlo l=5: MeanQ=0 MeanY=0 SVarQ=0 SVarY=0
MonteCarlo l=5: End with: M=6 dM=6 Mcomm=0 dMcomm=0
MonteCarlo l=5: MeanQ=0.57956002 MeanY=0.0027737227 SVarQ=1.3311143e-05 SVarY=4.9078869e-05
MonteCarlo l=5: Took 0.75 seconds
MonteCarlo l=5: Took 0.64 seconds
MonteCarlo l=6: Start with: M=0 dM=3 Mcomm=0 dMcomm=3
MonteCarlo l=6: MeanQ=0 MeanY=0 SVarQ=0 SVarY=0
MonteCarlo l=6: End with: M=3 dM=3 Mcomm=0 dMcomm=0
MonteCarlo l=6: MeanQ=0.58015262 MeanY=0.0026051525 SVarQ=1.1962813e-05 SVarY=6.3081821e-05
MonteCarlo l=6: Took 1.41 seconds
MonteCarlo l=6: Took 1.22 seconds
MLMC Method: alpha=0.090455732 beta=-0.36212231 gamma=1.9138626
MLMC Method: dM=[-8, -2, 0]
MLMC Method: numErr=0.040261089
MonteCarlo l=5: Start with: M=6 dM=3 Mcomm=0 dMcomm=3
MonteCarlo l=5: MeanQ=0.57956002 MeanY=0.0027737227 SVarQ=1.3311143e-05 SVarY=4.9078869e-05
MonteCarlo l=5: End with: M=9 dM=3 Mcomm=0 dMcomm=0
MonteCarlo l=5: MeanQ=0.58005915 MeanY=0.0012960378 SVarQ=1.1520124e-05 SVarY=4.865392e-05
MonteCarlo l=5: Took 0.36 seconds
MonteCarlo l=5: Took 0.30 seconds
MonteCarlo l=6: Start with: M=3 dM=2 Mcomm=0 dMcomm=2
MonteCarlo l=6: MeanQ=0.58015262 MeanY=0.0026051525 SVarQ=1.1962813e-05 SVarY=6.3081821e-05
MonteCarlo l=6: End with: M=5 dM=2 Mcomm=0 dMcomm=0
MonteCarlo l=6: MeanQ=0.57881206 MeanY=0.0016184985 SVarQ=1.2600565e-05 SVarY=5.2065491e-05
MonteCarlo l=6: Took 0.95 seconds
MonteCarlo l=6: Took 0.78 seconds
MonteCarlo l=7: Start with: M=0 dM=3 Mcomm=0 dMcomm=3
MonteCarlo l=7: MeanQ=0 MeanY=0 SVarQ=0 SVarY=0
MonteCarlo l=7: End with: M=3 dM=3 Mcomm=0 dMcomm=0
MonteCarlo l=7: MeanQ=0.58015614 MeanY=0.0025882243 SVarQ=1.1985695e-05 SVarY=6.3513427e-05
MonteCarlo l=7: Took 5.91 seconds
MonteCarlo l=7: Took 4.90 seconds
MLMC Method: alpha=-0.49892745 beta=-0.19225278 gamma=1.934905
MLMC Method: dM=[-3, -1, -1, 0]
MLMC Method: numErr=0
MLMC Method: statErr=0.0061907084
MLMC Method: 9.81 seconds
MLMC Experiment: 9.81 seconds
MLMC Method: 8.28 seconds
MLMC Experiment: 8.28 seconds
MC Results Info:
E(Qf-Qc): ................. [0.578155, 0.00129604, 0.0016185, 0.00258822]
E(Qf): .................... [0.578155, 0.580059, 0.578812, 0.580156]
V(Qf-Qc): ................. [1.60157e-05, 4.86539e-05, 5.20655e-05, 6.35134e-05]
V(Qf): .................... [1.60157e-05, 1.15201e-05, 1.26006e-05, 1.19857e-05]
kurtosis: ................. [1.742, 1.39489, 1.53131, 1.5]
E(cost): .................. [81, 289, 1089, 4225]
Used Levels: .............. [4, 5, 6, 7]
Used Samples: ............. [12, 9, 5, 3]
Exponents Info:
Final alpha: .............. -0.49892745
Final beta: ............... -0.19225278
Final gamma: .............. 1.934905
MLMC Results Info:
Value: .................... 1.7508484
Cost: ..................... 12827
Epsilon: .................. 0.01
Total Error: .............. 0.0061907084
Statistical Error: ........ 0.0061907084
Numerical Error: .......... 0
end program after 9.91 seconds on 4 procs at Tue Apr 27 13:38:25 2021
end program after 8.40 seconds on 4 procs at Tue Apr 27 13:43:47 2021
%%%% Output: execute_result
0
%% Cell type:code id: tags:
``` python
from mpp.python.mppy.utilities import VtkPlot
from ipywidgets import interact, interactive, fixed, interact_manual
import ipywidgets as widgets
@interact(n=widgets.IntSlider(min=0, max=5, step=1, value=0))
def plot_nth_frame(n):
p = VtkPlot(figsize=(16, 12))
plt.axis('off')
gs = gridspec.GridSpec(2, 2)
p.ax1 = p.fig.add_subplot(gs[0])
#p.add_vtu("Kappa.5.0.{}.vtu".format(n), ax=p.ax1)
p.add_quivers("Flux.5.0.{}.vtu".format(n), ax=p.ax1)
p.ax2 = p.fig.add_subplot(gs[1])
#p.add_vtu("Kappa.5.1.{}.vtu".format(n), ax=p.ax2)
p.add_quivers("Flux.5.1.{}.vtu".format(n), ax=p.ax2)
p.ax3 = p.fig.add_subplot(gs[2])
p.add_vtu("Pressure.5.0.{}.vtu".format(n), ax=p.ax3)
p.ax4 = p.fig.add_subplot(gs[3])
p.add_vtu("Pressure.5.1.{}.vtu".format(n), ax=p.ax4)
```
%%%% Output: display_data
%% Cell type:code id: tags:
``` python
from mpp.python.mppy.utilities import VtkPlot
from ipywidgets import interact, interactive, fixed, interact_manual
import ipywidgets as widgets
@interact(n=widgets.IntSlider(min=0, max=2, step=1, value=0))
def plot_nth_frame(n):
p = VtkPlot(figsize=(16, 12))
plt.axis('off')
gs = gridspec.GridSpec(2, 2)
p.ax1 = p.fig.add_subplot(gs[0])
#p.add_vtu("Kappa.6.0.{}.vtu".format(n), ax=p.ax1)
p.add_quivers("Flux.6.0.{}.vtu".format(n), ax=p.ax1)
p.ax2 = p.fig.add_subplot(gs[1])
#p.add_vtu("Kappa.6.1.{}.vtu".format(n), ax=p.ax2)
p.add_quivers("Flux.6.1.{}.vtu".format(n), ax=p.ax2)
p.ax3 = p.fig.add_subplot(gs[2])
p.add_vtu("Pressure.6.0.{}.vtu".format(n), ax=p.ax3)
p.ax4 = p.fig.add_subplot(gs[3])
p.add_vtu("Pressure.6.1.{}.vtu".format(n), ax=p.ax4)
```
%%%% Output: display_data
%%%% Output: display_data
![](data:image/png;base64,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w76iej7JTbuOb8wbb2X71pqZuTbbt7td7Lau42aTPczMfCTJzya5e631zSOa7Uqx3x6+K8n7k/zZzPxtkg8kOeMNlf6FTX+W/3Ct9U9rrb9J8ly2w5Vtm+zhfUkeS5K11l8l+Y4k1x/JdFePjf6dCQB0O+xQfSrJyZm5dWauy/abg5zZs+ZMkh/befzRJH+61vK33/9s3z3cuW31N7IdqX4v8I0uuodrrVfXWtevtW5Za92S7d/zvXutdfbyjFtpk5/lP0jyw0kyM9dn+1bg5490ym6b7OHXknw4SWbm+7Mdqi8f6ZRXvjNJfnTn3X8/kOTVtdbfXe6hAIC35lBv/V1rvT4zDyR5Isk1ST671npmZh5KcnatdSbJb2b79rZz2b6Ses9hznSl2XAPfznJdyb5/Z33ofraWuvuyzZ0mQ33kIvYcA+fSPIfZ+bZJP8nyU+vtb5++abusuEefjLJf5uZ/5Lt21U/7i/u/qWZ+Xy2by+/fud3eX8+ybclyVrr17P9u713JTmX5BtJfvzyTAoAXIrx/0AAAAA0OexbfwEAAOAtEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABU+X+247JvZNgdhQAAAABJRU5ErkJggg==)
%%%% Output: display_data
![](data:image/png;base64,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w76iej7JTbuOb8wbb2X71pqZuTbbt7td7Lau42aTPczMfCTJzya5e631zSOa7Uqx3x6+K8n7k/zZzPxtkg8kOeMNlf6FTX+W/3Ct9U9rrb9J8ly2w5Vtm+zhfUkeS5K11l8l+Y4k1x/JdFePjf6dCQB0O+xQfSrJyZm5dWauy/abg5zZs+ZMkh/befzRJH+61vK33/9s3z3cuW31N7IdqX4v8I0uuodrrVfXWtevtW5Za92S7d/zvXutdfbyjFtpk5/lP0jyw0kyM9dn+1bg5490ym6b7OHXknw4SWbm+7Mdqi8f6ZRXvjNJfnTn3X8/kOTVtdbfXe6hAIC35lBv/V1rvT4zDyR5Isk1ST671npmZh5KcnatdSbJb2b79rZz2b6Ses9hznSl2XAPfznJdyb5/Z33ofraWuvuyzZ0mQ33kIvYcA+fSPIfZ+bZJP8nyU+vtb5++abusuEefjLJf5uZ/5Lt21U/7i/u/qWZ+Xy2by+/fud3eX8+ybclyVrr17P9u713JTmX5BtJfvzyTAoAXIrx/0AAAAA0OexbfwEAAOAtEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABUEaoAAABU+X+247JvZNgdhQAAAABJRU5ErkJggg==)
%% Cell type:markdown id: tags:
## Convergence tests
%% Cell type:code id: tags:
``` python
test_case = True
if test_case:
mpp.kernels = 4
mpp.mute = False
kwargs = {"epsilon": 0.0,
"initLevels": [3, 4, 5, 6, 7],
"initSampleAmount": [100, 100, 100, 100, 100],
"Problem": "StochasticLaplace2DTest"}
epsilons = [0.1, 0.03, 0.01, 0.003]
else:
mpp.kernels = 32
mpp.mute = True
kwargs = {"epsilon": 0.0,
"initLevels": [3, 4, 5, 6, 7, 8, 9],
"initSampleAmount": [500, 500, 500, 500, 500, 500, 500],
"Problem": "StochasticLaplace2DTest"}
epsilons = [0.1, 0.03, 0.01, 0.003, 0.001, 0.0003]
```
%% Cell type:code id: tags:
``` python
mpp.clean_data()
mpp.reset_data()
mpp.run(config="mlmc_elliptic", kwargs=kwargs)
mpp.parse_log()
convergence_plot(mpp)
```
%%%% Output: stream
================ running mpp ================
start program on 4 procs at Tue Apr 27 13:43:49 2021
Running on: niklas-ThinkPad-T470p
Config Info:
GeneratorVerbose: ......... 0
NewtonVerbose: ............ 0
PDESolverVerbose: ......... 0
LinearVerbose: ............ 0
MeshVerbose: .............. 1
MainVerbose: .............. 1
MCVerbose: ................ 1
MLMCVerbose: .............. 1
PDESolverPlotting: ........ 0
GeneratorPlotting: ........ 0
lambda: ................... [0.15, 0.15]
Model: .................... LagrangeElliptic
AssembleVerbose: .......... 0
degree: ................... 1
MCParallel: ............... false
maxLevel: ................. 7
Problem: .................. StochasticLaplace2DTest
StochasticField: .......... LogNormal
epsilon: .................. 0.0
ConfigVerbose: ............ 1
onlyFine: ................. false
Mean: ..................... 0.0
initLevels: ............... [3, 4, 5, 6, 7]
smoothing: ................ 1.0
Quantity: ................. L2
initSampleAmount: ......... [100, 100, 100, 100, 100]
sigma: .................... 1.0
MLMC Experiment: Run
MLMC Method: Non adaptive method
MonteCarlo l=3: Start with: M=0 dM=100 Mcomm=0 dMcomm=100
MonteCarlo l=3: MeanQ=0 MeanY=0 SVarQ=0 SVarY=0
MonteCarlo l=3: End with: M=100 dM=100 Mcomm=0 dMcomm=0
MonteCarlo l=3: MeanQ=0.5794102 MeanY=0.5794102 SVarQ=2.6376973e-05 SVarY=2.6376973e-05
MonteCarlo l=3: Took 0.27 seconds
MonteCarlo l=4: Start with: M=0 dM=100 Mcomm=0 dMcomm=100
MonteCarlo l=4: MeanQ=0 MeanY=0 SVarQ=0 SVarY=0
MonteCarlo l=4: End with: M=100 dM=100 Mcomm=0 dMcomm=0
MonteCarlo l=4: MeanQ=0.57909028 MeanY=8.614826e-05 SVarQ=2.6883462e-05 SVarY=5.8872626e-05
MonteCarlo l=4: Took 1.17 seconds
MonteCarlo l=5: Start with: M=0 dM=100 Mcomm=0 dMcomm=100
MonteCarlo l=5: MeanQ=0 MeanY=0 SVarQ=0 SVarY=0
MonteCarlo l=5: End with: M=100 dM=100 Mcomm=0 dMcomm=0
MonteCarlo l=5: MeanQ=0.57912721 MeanY=0.00017231798 SVarQ=2.7234844e-05 SVarY=6.0645897e-05
MonteCarlo l=5: Took 4.48 seconds
MonteCarlo l=6: Start with: M=0 dM=100 Mcomm=0 dMcomm=100
MonteCarlo l=6: MeanQ=0 MeanY=0 SVarQ=0 SVarY=0
MonteCarlo l=6: End with: M=100 dM=100 Mcomm=0 dMcomm=0
MonteCarlo l=6: MeanQ=0.57913962 MeanY=0.00020161889 SVarQ=2.7356867e-05 SVarY=6.1265371e-05
MonteCarlo l=6: Took18.86 seconds
MonteCarlo l=7: Start with: M=0 dM=100 Mcomm=0 dMcomm=100
MonteCarlo l=7: MeanQ=0 MeanY=0 SVarQ=0 SVarY=0
MonteCarlo l=7: End with: M=100 dM=100 Mcomm=0 dMcomm=0
MonteCarlo l=7: MeanQ=0.57914376 MeanY=0.00021162461 SVarQ=2.7399074e-05 SVarY=6.1481917e-05
MonteCarlo l=7: Took1:43.50 minutes
MLMC Method: 2:08.26 minutes
MLMC Experiment: 2:08.26 minutes
MC Results Info:
E(Qf-Qc): ................. [0.57941, 8.61483e-05, 0.000172318, 0.000201619, 0.000211625]
E(Qf): .................... [0.57941, 0.57909, 0.579127, 0.57914, 0.579144]
V(Qf-Qc): ................. [2.6377e-05, 5.88726e-05, 6.06459e-05, 6.12654e-05, 6.14819e-05]
V(Qf): .................... [2.6377e-05, 2.68835e-05, 2.72348e-05, 2.73569e-05, 2.73991e-05]
kurtosis: ................. [3.30748, 2.45236, 2.51031, 2.53306, 2.54141]
E(cost): .................. [25, 81, 289, 1089, 4225]
Used Levels: .............. [3, 4, 5, 6, 7]
Used Samples: ............. [100, 100, 100, 100, 100]
Exponents Info:
Final alpha: .............. -0.4116399
Final beta: ............... -0.020235734
Final gamma: .............. 1.9028519
MLMC Results Info:
Value: .................... 0.58008191
Cost: ..................... 5709
Epsilon: .................. 0
Total Error: .............. 0
Statistical Error: ........ 0
Numerical Error: .......... 0
end program after 2:08.54 minutes on 4 procs at Tue Apr 27 13:45:58 2021
%%%% Output: display_data
![](data:image/png;base64,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9k/T+URERJJE3g3PAvDhHdNCx2Y9tJIX12+jR3Z6o2t7Lhjdn0/3lHPyz16kd9dOrPjR2S2+ZllZGaNGBdb5nH766cyaNQuAe++9l4ULFwKwefNm3n33XXJzc0lNTeXiiy8GoFu3bmRmZnLFFVcwbdo0pk8PPIv4hRde4O23D+33sWfPHkpLS1m2bBkLFgR2g582bRo9evQIlXnuufjMntSDYkWkNZREiYiItAO79lc0eLyxNT8tFb4mqkZRUREvvPACy5cvJzs7m4kTJ1JeXg5AZmZmaB1UWloaK1as4MUXX2T+/Pncd999LF26lOrqapYvX05WVv2pdInYbEEPihWRSGk6n4iISJL48I5ptUahAH73tTF8eMc0+nbr1OA5NWt7+nTL5MM7pkU0CtWYkpISevToQXZ2NuvXr+eVV15psNzevXspKSlh6tSp3H333aFkbNKkSdx3332hcjXHJ0yYwMMPPwzA4sWL2bVrV9SxiojEQ7tPosxshpnNKykpSXQoIiIicTPnc3mHbW3PlClTqKysZOTIkdx4442ccsopDZYrLS1l+vTpjBw5kjPOOIO77roLCEwFfO211xg5ciTDhw9n7ty5ANx8880sW7aME088keeff55BgwaF6mpsTdTChQsZMGAAy5cvZ9q0aUyePDnm31dEpK52P53P3RcBiwoLC69MdCwiIiLxMq2gD5mZWdy5ZANbd5fRL0Zre/bu3VvvWKdOnVi8eHGz5fv27cuKFSvqlenVqxePPfZYveO5ubk8//zzofc1SRc0vibqwgsv5MILL2z8C4iIxEG7T6JEREQ6ipq1PSIiEl/tfjqfiIiIiIhILCmJEhERERERiYCSKBERkTbM3RMdQtJTG4pIrCmJEhERaaMyMzPZsWOHkoAouDs7duwgMzMz0aGISDuijSVERETaqAEDBlBcXMz27dubLVteXq5EoRGZmZkMGDAg0WGISDuiJEpERKSNSk9PZ/DgwS0qW1RUxOjRo+MckYiIgKbziYiIiIiIRERJlIiIiIiISATafRJlZjPMbF5JSUmiQxERERERkXag3SdR7r7I3Wfn5OQkOhQREREREWkH2n0SJSIiIiIiEktKokRERERERCKgJEpERERERCQCSqJEREREREQioCRKREREREQkAkqiREREREREIqAkSkREREREJAJKokRERERERCKgJEpERERERCQCSqJEREREREQioCRKREREREQkAkqiREREREREIqAkSkREREREJAJKokRERERERCKQlEmUmR1tZr8zs78mOhYREREREelYDnsSZWYPmtk2M3uzzvEpZrbBzDaa2Q1N1eHu77v7rPhGKiIiIiIiUl9aAq75EHAf8MeaA2aWCvwGOAcoBlaa2dNAKnB7nfO/7u7bDk+oIiIiIiIitR32JMrdl5lZXp3DY4GN7v4+gJnNB85399uB6Yc3QhERERERkcY1mUSZWc8W1FHt7rujjKM/sDnsfTFwchNx5QI/BUab2Q+DyVZD5WYDswH69OlDUVFRqwPcu3dvVOeL2jAW1IbRUftFT20oIiLS/EjU1uDLmiiTCgyKMo6G6vfGCrv7DuDq5ip193nAPIDCwkKfOHFia+OjqKiIaM4XtWEsqA2jo/aLntpQRESk+SRqnbuPbqqAma2OQRzFwMCw9wMIJG8iItKOHcYZDyIiIjHTXBJ1agvqaEmZ5qwEhpjZYGALcCnwxRjUi5nNAGbk5+fHojoREYmtwzXjQUREJGaa3OLc3cubq8Ddy81sUksvaGaPAsuBoWZWbGaz3L0S+DawBFgH/MXd32ppnc3Et8jdZ+fk5MSiOhERia117n60uw9u7AXsSHSQIiIi4Vq9O18wGVpN4O7heOD5lpzn7jMbOf4c8Fxr4xERkaR0uGY8iIiIxEw0W5z/j7u/BGBmi2MUT8xpOp+ISNsVyYwHd2/RzToREZF4a3I6X1NqEqjgz2tjE07saTqfiEhyMrNHzez7ZvYD4JpExyMiIlIj6oftmtml7j4/FsGIiIiESYoZDyIi0vG0eiQqTIs3lRAREWmpZJnxICIiHU8skqimtqVNODObYWbzSkpKEh2KiIi0gpldmugYREREwsUiiXoyBnXEjdZEiYgkvXY940E3+0REkk/USZS7PxWLQERERBrRpmc8REs3+0REkk+rkygzO83MusYyGBERkQa06RkPIiLS8USzO185cJGZdQfc3e+NUUwxpedEiYgkN814EBGRtibiJMrMFgB7gWpgm7t/P+ZRxZC7LwIWFRYWXpnoWEREpOXM7DTgDXcvTXQsIiIi4VozEvWWu98IYGa5MY5HRESkRlLMeBARkY4noiTKzO4H8s3semARsCEuUYmISIeVbDMeRESk44koiXL3K80sCzgR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dOblG85UAiUiIh1aux+JiqWa0YCtu8voF6M7sVlZWaxZswaAyy67jLlz53Lddde16NyqqipSU+N7Z7ugoIAFCxZw1VVXxfU6Ul9FVTUvvbudm556s96angOVgTU9lwY3DVj5wU5uWfQ2l508iHH5vQBwh6Xrt9G7zqhNZnoq6anG/oOH6jy2T1fOPK43/XscGj3Jy+3MzTOG1xtReepb48jKSKV71qF1OT+aNpwfTasdf0H/HAr659Q6lpJiTBzau953bSj5iRWNooiIiEisKYlqoWff/JRbntsY1+eknH766axdG9w17IIL2Lx5M+Xl5cyZM4fZs2cD0KVLF6677jqWLFnCL3/5S5555hmefvpp0tLSmDRpEr/4xS/Yvn07V199NZs2BUYq7r77bsaNG8eOHTuYOXMm27dvZ+zYsbh7o7HUGDZsWEy+mzRvW2k5H+8u54SB3YFAEvTNh1+nvKK6wfI79h0M/Ty8Xze+eupRjBl8aCSnZ+cMHvhKYWiNUI0F3zyt1pocgM+fNCC021uNI7p24vJx9TcLyQtO90smF4zuzwWj+1NUVMTEiRMTHY6IiIgkOSVRQXk3PBvxOWUVVXz3sTV897E1jZb58I5pjX4WrrKyksWLFzNlyhQAHnzwQXr27ElZWRljxozh4osvJjc3l3379lFQUMCtt97Kzp07mTVrFuvXr8fM2L17NwBz5szh2muvZfz48WzatInJkyezbt06brnlFsaPH89NN93Es88+y7x580LXnzr1/7d379FRl3cex9/fmVwmkwSCARGIiLeiFtMIqHisEWkFSlAP1bZSunuquHJa19XTLcoeL+ju1svxnHpZ7FIXa7XrFopCt1YQChhp3dhIF7wBinWtEFCQkvt1Ms/+MZdMbiRhJplM8nkdc375Pb/n95vvPMF58s3ze57fPFatWsX48eO7jE8SyzlHY0uQrIzQSOL7n9Yw57HtnHpSFr+/YxYAGWkeFl40kbU7DrS7dS4idoRo2mknMe209vNyMtI8fPW8zvN6OiZQIiIiItI3SqKSrKGhgaKiIiA0ErV48WIAnnjiCdavXw/A/v372bdvH/n5+Xi9Xq699loARowYgc/n46abbqKkpIT58+cDsGXLFnbv3h19jerqampqati+fTvr1q0DoKSkhFGjRkXrbNiwof/frADw+oef88O1bzHttFGs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)
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment