From c13752c003b3720c5ad53bacb149cfd4c7e3b540 Mon Sep 17 00:00:00 2001 From: Moonwalker777 <73292958+Moonwalker777@users.noreply.github.com> Date: Tue, 17 May 2022 22:22:07 +0200 Subject: [PATCH] Abgabe --- Exercise_03/abgabe/plots/task01_1_00023.png | 3 + Exercise_03/abgabe/plots/task01_1_00199.png | 3 + Exercise_03/abgabe/plots/task01_1_Cinf.png | 3 + Exercise_03/abgabe/plots/task01_2_00023.png | 3 + Exercise_03/abgabe/plots/task01_2_00199.png | 3 + Exercise_03/abgabe/plots/task01_2_Cinf.png | 3 + Exercise_03/abgabe/plots/task01_3_00023.png | 3 + Exercise_03/abgabe/plots/task01_3_00199.png | 3 + Exercise_03/abgabe/plots/task01_4_00023.png | 3 + Exercise_03/abgabe/plots/task01_4_00199.png | 3 + Exercise_03/abgabe/plots/task01_all.png | 3 + Exercise_03/abgabe/plots/task01_x_00023.png | 3 + Exercise_03/abgabe/plots/task01_x_00199.png | 3 + .../plots/task02_gauss_C0_0-7_00150.png | 3 + .../plots/task02_gauss_C0_1-1_00150.png | 3 + .../abgabe/plots/task02_gauss_C0_1_00150.png | 3 + .../plots/task02_square_C0_0-7_00150.png | 3 + .../plots/task02_square_C0_1-1_00150.png | 3 + .../abgabe/plots/task02_square_C0_1_00150.png | 3 + Exercise_03/abgabe/report.pdf | 3 + Exercise_03/abgabe/task01.py | 154 ++++++++++++++++++ Exercise_03/abgabe/task02.py | 68 ++++++++ Exercise_03/abgabe/task02_gauss_C0_0.7.mp4 | 3 + Exercise_03/abgabe/task02_gauss_C0_1.1.mp4 | 3 + Exercise_03/abgabe/task02_gauss_C0_1.mp4 | 3 + Exercise_03/abgabe/task02_square_C0_0.7.mp4 | 3 + Exercise_03/abgabe/task02_square_C0_1.1.mp4 | 3 + Exercise_03/abgabe/task02_square_C0_1.mp4 | 3 + Exercise_03/abgabe/video_1_1.mp4 | 3 + Exercise_03/abgabe/video_1_2.mp4 | 3 + Exercise_03/abgabe/video_1_3.mp4 | 3 + Exercise_03/abgabe/video_1_4.mp4 | 3 + Exercise_03/abgabe/video_1_x.mp4 | 3 + Exercise_03/abgabe/video_2_gauss_C0_1.mp4 | 3 + 34 files changed, 318 insertions(+) create mode 100644 Exercise_03/abgabe/plots/task01_1_00023.png create mode 100644 Exercise_03/abgabe/plots/task01_1_00199.png create mode 100644 Exercise_03/abgabe/plots/task01_1_Cinf.png create mode 100644 Exercise_03/abgabe/plots/task01_2_00023.png create mode 100644 Exercise_03/abgabe/plots/task01_2_00199.png create mode 100644 Exercise_03/abgabe/plots/task01_2_Cinf.png create mode 100644 Exercise_03/abgabe/plots/task01_3_00023.png create mode 100644 Exercise_03/abgabe/plots/task01_3_00199.png create mode 100644 Exercise_03/abgabe/plots/task01_4_00023.png create mode 100644 Exercise_03/abgabe/plots/task01_4_00199.png create mode 100644 Exercise_03/abgabe/plots/task01_all.png create mode 100644 Exercise_03/abgabe/plots/task01_x_00023.png create mode 100644 Exercise_03/abgabe/plots/task01_x_00199.png create mode 100644 Exercise_03/abgabe/plots/task02_gauss_C0_0-7_00150.png create mode 100644 Exercise_03/abgabe/plots/task02_gauss_C0_1-1_00150.png create mode 100644 Exercise_03/abgabe/plots/task02_gauss_C0_1_00150.png create mode 100644 Exercise_03/abgabe/plots/task02_square_C0_0-7_00150.png create mode 100644 Exercise_03/abgabe/plots/task02_square_C0_1-1_00150.png create mode 100644 Exercise_03/abgabe/plots/task02_square_C0_1_00150.png create mode 100644 Exercise_03/abgabe/report.pdf create mode 100644 Exercise_03/abgabe/task01.py create mode 100644 Exercise_03/abgabe/task02.py create mode 100644 Exercise_03/abgabe/task02_gauss_C0_0.7.mp4 create mode 100644 Exercise_03/abgabe/task02_gauss_C0_1.1.mp4 create mode 100644 Exercise_03/abgabe/task02_gauss_C0_1.mp4 create mode 100644 Exercise_03/abgabe/task02_square_C0_0.7.mp4 create mode 100644 Exercise_03/abgabe/task02_square_C0_1.1.mp4 create mode 100644 Exercise_03/abgabe/task02_square_C0_1.mp4 create mode 100644 Exercise_03/abgabe/video_1_1.mp4 create mode 100644 Exercise_03/abgabe/video_1_2.mp4 create mode 100644 Exercise_03/abgabe/video_1_3.mp4 create mode 100644 Exercise_03/abgabe/video_1_4.mp4 create mode 100644 Exercise_03/abgabe/video_1_x.mp4 create mode 100644 Exercise_03/abgabe/video_2_gauss_C0_1.mp4 diff --git a/Exercise_03/abgabe/plots/task01_1_00023.png b/Exercise_03/abgabe/plots/task01_1_00023.png new file mode 100644 index 0000000..4afbbf3 --- /dev/null +++ b/Exercise_03/abgabe/plots/task01_1_00023.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2f3a387e39af2aeb46d9cf79f5bfbcfb127b4881d2f2a100ec4ba8fa65fdbe41 +size 26525 diff --git a/Exercise_03/abgabe/plots/task01_1_00199.png b/Exercise_03/abgabe/plots/task01_1_00199.png new file mode 100644 index 0000000..24d543d --- /dev/null +++ b/Exercise_03/abgabe/plots/task01_1_00199.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:95552139098616710bcd8538058cd1b8b150593179a3712e703cb755193f0ef0 +size 27939 diff --git a/Exercise_03/abgabe/plots/task01_1_Cinf.png b/Exercise_03/abgabe/plots/task01_1_Cinf.png new file mode 100644 index 0000000..e06d74c --- /dev/null +++ b/Exercise_03/abgabe/plots/task01_1_Cinf.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2fc4f7ced16f9882cd9fdc60cba4edc61d664a20701f8f09e8fc2f2ff13f047f +size 16938 diff --git a/Exercise_03/abgabe/plots/task01_2_00023.png b/Exercise_03/abgabe/plots/task01_2_00023.png new file mode 100644 index 0000000..99ef5e4 --- /dev/null +++ b/Exercise_03/abgabe/plots/task01_2_00023.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9e444987276bbdb52474d861a4e99dba7b8eeb44858169287aac3d5b2214f6a4 +size 26762 diff --git a/Exercise_03/abgabe/plots/task01_2_00199.png b/Exercise_03/abgabe/plots/task01_2_00199.png new file mode 100644 index 0000000..dd0c744 --- /dev/null +++ b/Exercise_03/abgabe/plots/task01_2_00199.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:04c6e7b76df32edcece0e78b82223a4435b1b59bb606d67438d41e823da04625 +size 29894 diff --git a/Exercise_03/abgabe/plots/task01_2_Cinf.png b/Exercise_03/abgabe/plots/task01_2_Cinf.png new file mode 100644 index 0000000..3a83102 --- /dev/null +++ b/Exercise_03/abgabe/plots/task01_2_Cinf.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7c1d7d93d1fab88ffcc5f0de0d7ef5bb04d7aa847f56c7a01c4aac8c50ec0ba1 +size 29518 diff --git a/Exercise_03/abgabe/plots/task01_3_00023.png b/Exercise_03/abgabe/plots/task01_3_00023.png new file mode 100644 index 0000000..149390e --- /dev/null +++ b/Exercise_03/abgabe/plots/task01_3_00023.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5fe9ec2fd444347e9b1b043ab04160a4343729c08d88e9d54ae0bd4fda69b8c0 +size 26892 diff --git a/Exercise_03/abgabe/plots/task01_3_00199.png b/Exercise_03/abgabe/plots/task01_3_00199.png new file mode 100644 index 0000000..5198eb7 --- /dev/null +++ b/Exercise_03/abgabe/plots/task01_3_00199.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:43bcdc98149a02afb8eb73c07cf8e262de67358b120f38c1b6aceab0a2fcfcb1 +size 28203 diff --git a/Exercise_03/abgabe/plots/task01_4_00023.png b/Exercise_03/abgabe/plots/task01_4_00023.png new file mode 100644 index 0000000..6adcf38 --- /dev/null +++ b/Exercise_03/abgabe/plots/task01_4_00023.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:90edbaf68969c5f5b3aaf61fc8c6bb8be0023092739c3da46a8fd4304ef891f7 +size 26769 diff --git a/Exercise_03/abgabe/plots/task01_4_00199.png b/Exercise_03/abgabe/plots/task01_4_00199.png new file mode 100644 index 0000000..50e7993 --- /dev/null +++ b/Exercise_03/abgabe/plots/task01_4_00199.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:18f7cddbe8f62a575090da662af1a90d1e9792899fcd7ae2b0e7d28e26390b3d +size 28147 diff --git a/Exercise_03/abgabe/plots/task01_all.png b/Exercise_03/abgabe/plots/task01_all.png new file mode 100644 index 0000000..53189cb --- /dev/null +++ b/Exercise_03/abgabe/plots/task01_all.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:160da35a25762545c991ec9f8bbf5e7710b6904a846d83256207faeffba400a0 +size 36056 diff --git a/Exercise_03/abgabe/plots/task01_x_00023.png b/Exercise_03/abgabe/plots/task01_x_00023.png new file mode 100644 index 0000000..11fae4a --- /dev/null +++ b/Exercise_03/abgabe/plots/task01_x_00023.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fb71088e226e27b278dc3df2bb757990f5d75e41cb6f2f3bfd59ab1751a01610 +size 30363 diff --git a/Exercise_03/abgabe/plots/task01_x_00199.png b/Exercise_03/abgabe/plots/task01_x_00199.png new file mode 100644 index 0000000..05c6fab --- /dev/null +++ b/Exercise_03/abgabe/plots/task01_x_00199.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cab0214ac3feaaf46f03e930f1b16a91f25ad4b3c2ce9e400cf61c94c89baabf +size 17909 diff --git a/Exercise_03/abgabe/plots/task02_gauss_C0_0-7_00150.png b/Exercise_03/abgabe/plots/task02_gauss_C0_0-7_00150.png new file mode 100644 index 0000000..73ede51 --- /dev/null +++ b/Exercise_03/abgabe/plots/task02_gauss_C0_0-7_00150.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:615cfa95a32749e03816c512d31414364a357dbaa2ba7cedb21794598c1419f7 +size 31158 diff --git a/Exercise_03/abgabe/plots/task02_gauss_C0_1-1_00150.png b/Exercise_03/abgabe/plots/task02_gauss_C0_1-1_00150.png new file mode 100644 index 0000000..dbf51be --- /dev/null +++ b/Exercise_03/abgabe/plots/task02_gauss_C0_1-1_00150.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1103b34c8bfbecd65aef5c8734863ccfd2ea9137e94bea8e054e2ebccd11020f +size 23542 diff --git a/Exercise_03/abgabe/plots/task02_gauss_C0_1_00150.png b/Exercise_03/abgabe/plots/task02_gauss_C0_1_00150.png new file mode 100644 index 0000000..01fcc92 --- /dev/null +++ b/Exercise_03/abgabe/plots/task02_gauss_C0_1_00150.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:171b8ca2eea16fd27d29c900435ee2aa263a64c6693bbb156f58d479de20db1b +size 31883 diff --git a/Exercise_03/abgabe/plots/task02_square_C0_0-7_00150.png b/Exercise_03/abgabe/plots/task02_square_C0_0-7_00150.png new file mode 100644 index 0000000..724d7e5 --- /dev/null +++ b/Exercise_03/abgabe/plots/task02_square_C0_0-7_00150.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8081b4f8783e620fd49a32be3699d6d4bec4f4e1a261fafc1def35c352688d41 +size 28835 diff --git a/Exercise_03/abgabe/plots/task02_square_C0_1-1_00150.png b/Exercise_03/abgabe/plots/task02_square_C0_1-1_00150.png new file mode 100644 index 0000000..0f2fe98 --- /dev/null +++ b/Exercise_03/abgabe/plots/task02_square_C0_1-1_00150.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aac17de0c8cc3a27b7c2c119ab1e0d46c64da23c21b9b63e9466f3099bea488c +size 23647 diff --git a/Exercise_03/abgabe/plots/task02_square_C0_1_00150.png b/Exercise_03/abgabe/plots/task02_square_C0_1_00150.png new file mode 100644 index 0000000..73bc6d7 --- /dev/null +++ b/Exercise_03/abgabe/plots/task02_square_C0_1_00150.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:62c2f1bca9416740991af98b0988965a33cd8e15b525f5473f7eae0eff2dc780 +size 23572 diff --git a/Exercise_03/abgabe/report.pdf b/Exercise_03/abgabe/report.pdf new file mode 100644 index 0000000..3389609 --- /dev/null +++ b/Exercise_03/abgabe/report.pdf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1fb3676794fe6362c562ee70a1c2905e4f7d90a31a6b7551a7a9df5ba0b8680e +size 487112 diff --git a/Exercise_03/abgabe/task01.py b/Exercise_03/abgabe/task01.py new file mode 100644 index 0000000..ca59fff --- /dev/null +++ b/Exercise_03/abgabe/task01.py @@ -0,0 +1,154 @@ +import numpy as np +from scipy.sparse import spdiags +from scipy.linalg import solve_banded +from matplotlib import pyplot as plt + +# Config +D = 1e-6 # diffusion coefficient +h = 1 # space domain (max x size) +T = 2e5 # solution end time +nx = 50 # nr of space discretization points +nt = 1000 # nr of time discretization points + +# derived constants +dx = h / (nx - 1) # space step size +dt = T / nt # time step size +d = dt * D / dx**2 # stability/stepsize coefficient + +# Task 1.1 equation system matrix `C^n+1 = A1 C^n` +def A1(d): + a1 = np.zeros([3, nx]) + # superdiagonal (above the main diagonal) + a1[0, 1] = 0 + a1[0, 2:] = d + # main diagonal + a1[1, 0] = 1 + a1[1, 1:] = 1 - 2 * d + # subdiagonal (below the main diagonal) + a1[2, :-2] = d + a1[2, -2] = 2 * d + # convert to sparse tridiagonal matrix + return spdiags(a1, [1, 0, -1], nx, nx) + +# Task 1.2 equation system matrix `C^n+1 = A2 C^n` +def A2(d): + a2 = A1(d).data + # addapt boundary condition coefficients, the rest is identical + a2[0, -1] = a2[1, -1] = a2[2, -2] = 0 + # convert to sparse tridiag + return spdiags(a2, [1, 0, -1], nx, nx) + +# Task 1.3 equation system matrix for update rule `A3 C^n+1 = C^n` +def A3(d): + a3 = np.zeros([3, nx]) + # superdiagonal + a3[0, 1] = 0 + a3[0, 2:] = -d + # main diagonal + a3[1, 0] = 1 + a3[1, 1:] = 1 + 2 * d + # supdiagonal + a3[2, :-2] = -d + a3[2, -2] = -2 * d + # as tridiag + return spdiags(a3, [1, 0, -1], nx, nx) + +# Task 1.4 equation system matrix `A4`` in `(I + A4) C^n+1 = (I - A4) C^n` +def A4(d): + a4 = np.zeros([3, nx]) + # superdiagonal + a4[0, 2:] = -d / 2 + # main diagonal + a4[1, 1:] = d + # supdiagonal + a4[2, :-2] = -d / 2 + a4[2, -2] = -d + return spdiags(a4, [1, 0, -1], nx, nx) +# setup `I + A4` and `I - A4` +def IpA4(d): + ipA4 = A4(d).data + ipA4[1, ] += 1 + return spdiags(ipA4, [1, 0, -1], nx, nx) +def ImA4(d): + imA4 = -A4(d).data + imA4[1, ] += 1 + return spdiags(imA4, [1, 0, -1], nx, nx) + +# plots a solution to file, simply for code size reduction in `solve` +def plot(x, C, name): + plt.clf() + plt.plot(x, C) + plt.xlim([0, h]) + plt.ylim([0, 1.2]) + plt.title(name) + plt.xlabel("Distance from Source: x") + plt.ylabel("Concentration: C(x, t)") + plt.savefig(f"plots/{name}_{plot.i:0>5}.png") + plot.i += 1 +plot.i = 0 + +# solver for `C_t - D C_xx = 0` given discretized equation system matrices for +# a time update rule `L C^n+1 = R C^n` starting from an initial solution `C`. +# The update is iterated for `nt` time steps corresponding to a solution at +# time `T = dt nt` +def solve(C, L, R, nt, plotname = None, plotskip = 5): + if plotname is not None: + plot.i = 0 # (re)set plot counter + x = np.linspace(0, h, nx) # space grid points + fig = plt.figure(figsize = (8, 6), dpi = 100) # setup plot figure size + plot(x, C, plotname) # plot initial solution + for t in range(nt): + rhs = C if R is None else R @ C + C = rhs if L is None else solve_banded((1, 1), L.data, rhs) + if plotname is not None and ((t + 1) % plotskip == 0): + plot(x, C, plotname) # plot current solution + return C + +# setup initial solution +C0 = np.zeros(nx) +C0[0] = 1 + +# run simulation and generate plots for each subtask +C1 = solve(C0, None, A1(d), nt, "task01_1") +Cx = solve(C0, None, A1(0.55), 200, "task01_x", 1) # run with unstable `d > 0.5` +C2 = solve(C0, None, A2(d), nt, "task01_2") +C3 = solve(C0, A3(d), None, nt, "task01_3") +C4 = solve(C0, IpA4(d), ImA4(d), nt, "task01_4") + +# to convert generated image sequence to video use: +# $> ffmpeg -y -r 60 -i plots/task01_1_%05d.png -pix_fmt yuv420p video_1_1.mp4 +# $> ffmpeg -y -r 60 -i plots/task01_x_%05d.png -pix_fmt yuv420p video_1_x.mp4 +# $> ffmpeg -y -r 60 -i plots/task01_2_%05d.png -pix_fmt yuv420p video_1_2.mp4 +# $> ffmpeg -y -r 60 -i plots/task01_3_%05d.png -pix_fmt yuv420p video_1_3.mp4 +# $> ffmpeg -y -r 60 -i plots/task01_4_%05d.png -pix_fmt yuv420p video_1_4.mp4 + +# compute till no time change, e.g. `t -> inf` +C1inf = solve(C0, None, A1(d), 20000) +C2inf = solve(C0, None, A2(d), 20000) + +x = np.linspace(0, h, nx) # space grid points +fig = plt.figure(figsize = (8, 6), dpi = 100) # setup plot figure size +plot.i = 0 # reset plot counter +plot(x, C1inf, "Cinf") +plot(x, C2inf, "Cinf") + + +# # All plots in one +C1 = solve(C0, None, A1(d), nt) +C2 = solve(C0, None, A2(d), nt) +C3 = solve(C0, A3(d), None, nt) +C4 = solve(C0, IpA4(d), ImA4(d), nt) + +x = np.linspace(0, h, nx) # space grid points +plt.figure(figsize = (8, 6), dpi = 100) # setup plot figure size +plt.plot(x, C1, label = "1.1") +plt.plot(x, C2, label = "1.2") +plt.plot(x, C3, label = "1.3") +plt.plot(x, C4, label = "1.4") +plt.xlim([0, h]) +plt.ylim([0, 1.2]) +plt.title("All") +plt.legend() +plt.xlabel("Distance from Source: x") +plt.ylabel("Concentration: C(x, t)") +plt.savefig(f"plots/task01_all.png") diff --git a/Exercise_03/abgabe/task02.py b/Exercise_03/abgabe/task02.py new file mode 100644 index 0000000..aa7cf94 --- /dev/null +++ b/Exercise_03/abgabe/task02.py @@ -0,0 +1,68 @@ +import numpy as np +from scipy.sparse import spdiags +from scipy.linalg import solve_banded +from matplotlib import pyplot as plt + +# Config +dx = 0.01 # space step size +h = 1.5 # space domain (max x size) + +# plots a solution to file, simply for code size reduction in `solve` +def plot(x, t, C, C0, analytic, plotname): + plt.clf() + plt.plot(x, C, "o") + plt.xlim([0, h]) + plt.title(plotname) + plt.xlabel("Periodic Space: x") + plt.ylabel("Wave Form: C(x, t)") + if analytic is not None: + plt.plot(x, analytic(x, t, C0)) + plt.savefig(f"plots/{plotname}_{plot.i:0>5}.png") + plot.i += 1 +plot.i = 0 + +# solver for `C_t + U C_x = 0` given initial state `C`, the current `C0` which +# incorporates `U` as well as the space and time discretization and the number +# of time steps `nt`. +def solve(C, C0, nt, plotname = None, plotskip = 1, analytic = None): + nx = C.shape[0] + if plotname is not None: + plot.i = 0 # (re)set plot counter + x = np.linspace(0, h, nx) # space grid points + fig = plt.figure(figsize = (8, 6), dpi = 100) # setup plot figure size + plot(x, 0, C, C0, analytic, plotname) # plot initial solution + # space grid point `Indices Minus 1` + im1 = np.array([nx - 1] + list(range(nx - 1))) + for t in range(nt): + # upwind update scheme + C = (1 - C0) * C + C0 * C[im1] + if plotname is not None and ((t + 1) % plotskip == 0): + plot(x, t + 1, C, C0, analytic, plotname) # plot current solution + return C + +# setup initial conditions +x = np.linspace(0, h, int(h / dx)) +gauss = np.exp(-10 * (4 * x - 1)**2) +square = np.array((0.1 < x) * (x < 0.3), dtype = "float") + +def gauss_analytic(x, t, C0): + return np.exp(-10 * (4 * (np.mod(x - t * dx / C0, h + 1e-9)) - 1)**2) +def square_analytic(x, t, C0): + x = x - t * dx / C0 + x = np.mod(x, h + 1e-9) # hack to avoid shift in the plot + return np.array((0.1 < x) * (x < 0.3), dtype = "float") + +solve(gauss, 1, 200, "task02_gauss_C0_1", analytic = gauss_analytic) +solve(square, 1, 200, "task02_square_C0_1", analytic = square_analytic) +solve(gauss, 0.7, 200, "task02_gauss_C0_0.7", analytic = gauss_analytic) +solve(square, 0.7, 200, "task02_square_C0_0.7", analytic = square_analytic) +solve(gauss, 1.1, 200, "task02_gauss_C0_1.1", analytic = gauss_analytic) +solve(square, 1.1, 200, "task02_square_C0_1.1", analytic = square_analytic) + +# To generate videos out of the generated plots +# $> ffmpeg -y -r 60 -i plots/task02_gauss_C0_1_%05d.png -pix_fmt yuv420p task02_gauss_C0_1.mp4 +# $> ffmpeg -y -r 60 -i plots/task02_square_C0_1_%05d.png -pix_fmt yuv420p task02_square_C0_1.mp4 +# $> ffmpeg -y -r 60 -i plots/task02_gauss_C0_0.7_%05d.png -pix_fmt yuv420p task02_gauss_C0_0.7.mp4 +# $> ffmpeg -y -r 60 -i plots/task02_square_C0_0.7_%05d.png -pix_fmt yuv420p task02_square_C0_0.7.mp4 +# $> ffmpeg -y -r 60 -i plots/task02_gauss_C0_1.1_%05d.png -pix_fmt yuv420p task02_gauss_C0_1.1.mp4 +# $> ffmpeg -y -r 60 -i plots/task02_square_C0_1.1_%05d.png -pix_fmt yuv420p task02_square_C0_1.1.mp4 diff --git a/Exercise_03/abgabe/task02_gauss_C0_0.7.mp4 b/Exercise_03/abgabe/task02_gauss_C0_0.7.mp4 new file mode 100644 index 0000000..275281b --- /dev/null +++ b/Exercise_03/abgabe/task02_gauss_C0_0.7.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d89c9fde27a566b7eb7e2e2afba730859ef53861f4a0a96f0dc0fe65f4bed2b1 +size 133197 diff --git a/Exercise_03/abgabe/task02_gauss_C0_1.1.mp4 b/Exercise_03/abgabe/task02_gauss_C0_1.1.mp4 new file mode 100644 index 0000000..9213781 --- /dev/null +++ b/Exercise_03/abgabe/task02_gauss_C0_1.1.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f87227669fae814395143f29f752147d81f061b71e1e7c55cd32201500aefcfa +size 205193 diff --git a/Exercise_03/abgabe/task02_gauss_C0_1.mp4 b/Exercise_03/abgabe/task02_gauss_C0_1.mp4 new file mode 100644 index 0000000..54ee85c --- /dev/null +++ b/Exercise_03/abgabe/task02_gauss_C0_1.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9c6d31db4c9d079ddade02ff81d4f43453c38c58cde159db128f81c4dc052a04 +size 110100 diff --git a/Exercise_03/abgabe/task02_square_C0_0.7.mp4 b/Exercise_03/abgabe/task02_square_C0_0.7.mp4 new file mode 100644 index 0000000..b8b300b --- /dev/null +++ b/Exercise_03/abgabe/task02_square_C0_0.7.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b57cd2c81fc5a504c37723006a53fec92771208774feb60036e0e1b8e6b5cfe6 +size 139026 diff --git a/Exercise_03/abgabe/task02_square_C0_1.1.mp4 b/Exercise_03/abgabe/task02_square_C0_1.1.mp4 new file mode 100644 index 0000000..93d5758 --- /dev/null +++ b/Exercise_03/abgabe/task02_square_C0_1.1.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7280682f2baca6f8060842414cb21b7a14d954570213a603376d77a4ba4f5b79 +size 203627 diff --git a/Exercise_03/abgabe/task02_square_C0_1.mp4 b/Exercise_03/abgabe/task02_square_C0_1.mp4 new file mode 100644 index 0000000..5be2df3 --- /dev/null +++ b/Exercise_03/abgabe/task02_square_C0_1.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d76345c0bc2b3bb4a8681a01e897d4a3c7cd07910e59955639a6132e964dbdab +size 63942 diff --git a/Exercise_03/abgabe/video_1_1.mp4 b/Exercise_03/abgabe/video_1_1.mp4 new file mode 100644 index 0000000..367f92e --- /dev/null +++ b/Exercise_03/abgabe/video_1_1.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4a4cb97980df40f3b974293f8df9aaa9957c2a00904ff41ae8ebba4cafae05ac +size 55727 diff --git a/Exercise_03/abgabe/video_1_2.mp4 b/Exercise_03/abgabe/video_1_2.mp4 new file mode 100644 index 0000000..0ff5f8f --- /dev/null +++ b/Exercise_03/abgabe/video_1_2.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e8c78843e824c429f1fda7e719b170df07f090177249e02d779c6b1fb5c5dd92 +size 52307 diff --git a/Exercise_03/abgabe/video_1_3.mp4 b/Exercise_03/abgabe/video_1_3.mp4 new file mode 100644 index 0000000..51dc003 --- /dev/null +++ b/Exercise_03/abgabe/video_1_3.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cc654c8b8ebcc49756d61b442a38d49fbba8c60a4072384114c6523315d4aef2 +size 54732 diff --git a/Exercise_03/abgabe/video_1_4.mp4 b/Exercise_03/abgabe/video_1_4.mp4 new file mode 100644 index 0000000..5fcb585 --- /dev/null +++ b/Exercise_03/abgabe/video_1_4.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1d141868869243e85e057a38dce2dd749987c115059c56325e1a9d202d26b0f0 +size 55802 diff --git a/Exercise_03/abgabe/video_1_x.mp4 b/Exercise_03/abgabe/video_1_x.mp4 new file mode 100644 index 0000000..df52be2 --- /dev/null +++ b/Exercise_03/abgabe/video_1_x.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2f37b8b3f4773af979376d5c4083c5fdc8276c280d592a6f1410a35ad620e05a +size 127767 diff --git a/Exercise_03/abgabe/video_2_gauss_C0_1.mp4 b/Exercise_03/abgabe/video_2_gauss_C0_1.mp4 new file mode 100644 index 0000000..cdd88f0 --- /dev/null +++ b/Exercise_03/abgabe/video_2_gauss_C0_1.mp4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3ea7f54b6147da2edafeb0e805bdc6a568a18d477bedb20f5515ede38fba0a68 +size 59759