From 63f3386c4f3adf35230f77109a6a03a7630ac08b Mon Sep 17 00:00:00 2001 From: johzip Date: Wed, 13 Nov 2024 16:38:38 +0100 Subject: [PATCH 1/3] Step1 and 2 --- __init__.py | 0 diffusion2d.py | 139 ++++++++++++++++++++++++------------------------- output.py | 17 ++++++ 3 files changed, 84 insertions(+), 72 deletions(-) create mode 100644 __init__.py create mode 100644 output.py diff --git a/__init__.py b/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/diffusion2d.py b/diffusion2d.py index c0c6083a..b6650473 100644 --- a/diffusion2d.py +++ b/diffusion2d.py @@ -6,76 +6,71 @@ import numpy as np import matplotlib.pyplot as plt +from output import create_plot, output_plots -# plate size, mm -w = h = 10. -# intervals in x-, y- directions, mm -dx = dy = 0.1 -# Thermal diffusivity of steel, mm^2/s -D = 4. - -# Initial cold temperature of square domain -T_cold = 300 - -# Initial hot temperature of circular disc at the center -T_hot = 700 - -# Number of discrete mesh points in X and Y directions -nx, ny = int(w / dx), int(h / dy) - -# Computing a stable time step -dx2, dy2 = dx * dx, dy * dy -dt = dx2 * dy2 / (2 * D * (dx2 + dy2)) - -print("dt = {}".format(dt)) - -u0 = T_cold * np.ones((nx, ny)) -u = u0.copy() - -# Initial conditions - circle of radius r centred at (cx,cy) (mm) -r = min(h, w) / 4.0 -cx = w / 2.0 -cy = h / 2.0 -r2 = r ** 2 -for i in range(nx): - for j in range(ny): - p2 = (i * dx - cx) ** 2 + (j * dy - cy) ** 2 - if p2 < r2: - u0[i, j] = T_hot - - -def do_timestep(u_nm1, u, D, dt, dx2, dy2): - # Propagate with forward-difference in time, central-difference in space - u[1:-1, 1:-1] = u_nm1[1:-1, 1:-1] + D * dt * ( - (u_nm1[2:, 1:-1] - 2 * u_nm1[1:-1, 1:-1] + u_nm1[:-2, 1:-1]) / dx2 - + (u_nm1[1:-1, 2:] - 2 * u_nm1[1:-1, 1:-1] + u_nm1[1:-1, :-2]) / dy2) - - u_nm1 = u.copy() - return u_nm1, u - - -# Number of timesteps -nsteps = 101 -# Output 4 figures at these timesteps -n_output = [0, 10, 50, 100] -fig_counter = 0 -fig = plt.figure() - -# Time loop -for n in range(nsteps): - u0, u = do_timestep(u0, u, D, dt, dx2, dy2) - - # Create figure - if n in n_output: - fig_counter += 1 - ax = fig.add_subplot(220 + fig_counter) - im = ax.imshow(u.copy(), cmap=plt.get_cmap('hot'), vmin=T_cold, vmax=T_hot) # image for color bar axes - ax.set_axis_off() - ax.set_title('{:.1f} ms'.format(n * dt * 1000)) - -# Plot output figures -fig.subplots_adjust(right=0.85) -cbar_ax = fig.add_axes([0.9, 0.15, 0.03, 0.7]) -cbar_ax.set_xlabel('$T$ / K', labelpad=20) -fig.colorbar(im, cax=cbar_ax) -plt.show() +def solve( + # intervals in x-, y- directions, mm + dx = 0.1, dy = 0.1 , + # Thermal diffusivity of steel, mm^2/s + D = 4. ): + + # plate size, mm + w = h = 10. + + # Initial cold temperature of square domain + T_cold = 300 + + # Initial hot temperature of circular disc at the center + T_hot = 700 + + # Number of discrete mesh points in X and Y directions + nx, ny = int(w / dx), int(h / dy) + + # Computing a stable time step + dx2, dy2 = dx * dx, dy * dy + dt = dx2 * dy2 / (2 * D * (dx2 + dy2)) + + print("dt = {}".format(dt)) + + u0 = T_cold * np.ones((nx, ny)) + u = u0.copy() + + # Initial conditions - circle of radius r centred at (cx,cy) (mm) + r = min(h, w) / 4.0 + cx = w / 2.0 + cy = h / 2.0 + r2 = r ** 2 + for i in range(nx): + for j in range(ny): + p2 = (i * dx - cx) ** 2 + (j * dy - cy) ** 2 + if p2 < r2: + u0[i, j] = T_hot + + + def do_timestep(u_nm1, u, D, dt, dx2, dy2): + # Propagate with forward-difference in time, central-difference in space + u[1:-1, 1:-1] = u_nm1[1:-1, 1:-1] + D * dt * ( + (u_nm1[2:, 1:-1] - 2 * u_nm1[1:-1, 1:-1] + u_nm1[:-2, 1:-1]) / dx2 + + (u_nm1[1:-1, 2:] - 2 * u_nm1[1:-1, 1:-1] + u_nm1[1:-1, :-2]) / dy2) + + u_nm1 = u.copy() + return u_nm1, u + + + # Number of timesteps + nsteps = 101 + # Output 4 figures at these timesteps + n_output = [0, 10, 50, 100] + fig_counter = 0 + fig = plt.figure() + + + for n in range(nsteps): + u0, u = do_timestep(u0, u, D, dt, dx2, dy2) + + # Create figure + if n in n_output: + im, fig_counter = create_plot(T_cold, T_hot, dt, u, fig_counter, fig, n) + + # Plot output figures + output_plots(fig, im) diff --git a/output.py b/output.py new file mode 100644 index 00000000..3a5bc15f --- /dev/null +++ b/output.py @@ -0,0 +1,17 @@ + +import matplotlib.pyplot as plt + +def create_plot(T_cold, T_hot, dt, u, fig_counter, fig, n): + fig_counter += 1 + ax = fig.add_subplot(220 + fig_counter) + im = ax.imshow(u.copy(), cmap=plt.get_cmap('hot'), vmin=T_cold, vmax=T_hot) # image for color bar axes + ax.set_axis_off() + ax.set_title('{:.1f} ms'.format(n * dt * 1000)) + return im, fig_counter + +def output_plots(fig, im): + fig.subplots_adjust(right=0.85) + cbar_ax = fig.add_axes([0.9, 0.15, 0.03, 0.7]) + cbar_ax.set_xlabel('$T$ / K', labelpad=20) + fig.colorbar(im, cax=cbar_ax) + plt.show() \ No newline at end of file From 794714b61e3602ace4e1df836f36fe25fe2fd745 Mon Sep 17 00:00:00 2001 From: johzip Date: Wed, 13 Nov 2024 18:29:39 +0100 Subject: [PATCH 2/3] Step 3 and 4 --- README.md | 15 ++++++++++++++- ...ipfeljs_diffusion2d-0.0.1-py3-none-any.whl | Bin 0 -> 8229 bytes dist/zipfeljs_diffusion2d-0.0.1.tar.gz | Bin 0 -> 8264 bytes pyproject.toml | 18 ++++++++++++++++++ setup.py | 9 +++++++++ .../diffusion2d.py | 0 output.py => zipfeljs_diffusion2d/output.py | 0 7 files changed, 41 insertions(+), 1 deletion(-) create mode 100644 dist/zipfeljs_diffusion2d-0.0.1-py3-none-any.whl create mode 100644 dist/zipfeljs_diffusion2d-0.0.1.tar.gz create mode 100644 pyproject.toml create mode 100644 setup.py rename diffusion2d.py => zipfeljs_diffusion2d/diffusion2d.py (100%) rename output.py => zipfeljs_diffusion2d/output.py (100%) diff --git a/README.md b/README.md index fe548354..b703a528 100644 --- a/README.md +++ b/README.md @@ -7,13 +7,26 @@ Please follow the instructions in [pypi_exercise.md](https://github.com/Simulati The code used in this exercise is based on [Chapter 7 of the book "Learning Scientific Programming with Python"](https://scipython.com/book/chapter-7-matplotlib/examples/the-two-dimensional-diffusion-equation/). ## Project description +Diffusion2D solves the diffusion equation in 2D over a square domain which is at a certain temperature and a circular disc at the center which is at a higher temperature. This code solves the diffusion equation using the Finite Difference Method. The thermal diffusivity and initial conditions of the system can be changed by the user. The code produces four plots at various timepoints of the simulation. The diffusion process can be clearly observed in these plots. +If you are interested in the theoretical background of the code, please have a look in [Chapter 7 of the book "Learning Scientific Programming with Python"](https://scipython.com/book/chapter-7-matplotlib/examples/the-two-dimensional-diffusion-equation/). ## Installing the package +Check if your system has Python version >= 3.6 and update it if it is older than 3.6. + +``` +python --version +``` +also install pip, matplotlib and numpy ### Using pip3 to install from PyPI ### Required dependencies ## Running this package - +Run the code using python and running the solve function in diffusion2d.py +it has three parameters with there standard values: +``` +dx = dy = 0.1 +D = 4. +``` ## Citing diff --git a/dist/zipfeljs_diffusion2d-0.0.1-py3-none-any.whl b/dist/zipfeljs_diffusion2d-0.0.1-py3-none-any.whl new file mode 100644 index 0000000000000000000000000000000000000000..352424a13ef82cedd7a0127ae38f5a0f932958f9 GIT binary patch literal 8229 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 literal 0 HcmV?d00001 diff --git a/dist/zipfeljs_diffusion2d-0.0.1.tar.gz b/dist/zipfeljs_diffusion2d-0.0.1.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..a9fec484bae58bae63cd69f53cb4f80793c17cfc GIT binary patch literal 8264 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 Date: Fri, 15 Nov 2024 12:04:56 +0100 Subject: [PATCH 3/3] step 7 8 --- README.md | 15 +++++++++------ dist/zipfeljs_diffusion2d-0.0.1.tar.gz | Bin 8264 -> 0 bytes ...pfeljs_diffusion2d-0.0.2-py3-none-any.whl} | Bin 8229 -> 8228 bytes dist/zipfeljs_diffusion2d-0.0.2.tar.gz | Bin 0 -> 8165 bytes pyproject.toml | 6 ++---- 5 files changed, 11 insertions(+), 10 deletions(-) delete mode 100644 dist/zipfeljs_diffusion2d-0.0.1.tar.gz rename dist/{zipfeljs_diffusion2d-0.0.1-py3-none-any.whl => zipfeljs_diffusion2d-0.0.2-py3-none-any.whl} (72%) create mode 100644 dist/zipfeljs_diffusion2d-0.0.2.tar.gz diff --git a/README.md b/README.md index b703a528..5de9612b 100644 --- a/README.md +++ b/README.md @@ -11,20 +11,23 @@ Diffusion2D solves the diffusion equation in 2D over a square domain which is at If you are interested in the theoretical background of the code, please have a look in [Chapter 7 of the book "Learning Scientific Programming with Python"](https://scipython.com/book/chapter-7-matplotlib/examples/the-two-dimensional-diffusion-equation/). ## Installing the package + + +### Using pip3 to install from PyPI +``` +pip install -i https://test.pypi.org/simple/ zipfeljs-diffusion2d==0.0.1 +``` +### Required dependencies Check if your system has Python version >= 3.6 and update it if it is older than 3.6. ``` python --version ``` -also install pip, matplotlib and numpy - -### Using pip3 to install from PyPI - -### Required dependencies +install pip, matplotlib and numpy ## Running this package Run the code using python and running the solve function in diffusion2d.py -it has three parameters with there standard values: +it has three parameters with these standard values: ``` dx = dy = 0.1 D = 4. diff --git a/dist/zipfeljs_diffusion2d-0.0.1.tar.gz b/dist/zipfeljs_diffusion2d-0.0.1.tar.gz deleted file mode 100644 index a9fec484bae58bae63cd69f53cb4f80793c17cfc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8264 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 N8bV9j1-?EKz~A)X@B9D& delta 1588 zcmZ9NdpOez9L6^!!zj5Vml;M(ZpURhjU^IVZsoR-Yq{i>ODL8QQlXzoMJQ`7xrB`n zQsz2lj&dvJ=)y)W)tWetdd_p6bNciBzR&ai@qVA@^Oj;r7^uB1zknnN1QG%bTnWj6 zYJ&Bipn_ze+rn*T!bMA200hzpYGjnadH_R4lHfcYHfgjgQKoo{mEC#{PWUq& zll&S@5~PQB$f}BJC|y)~3@8dwsdqjHt`jTyvUX^?!u~?n;|AO^u#uo#l4Tq&+Rlvf0_=`=;)&bg>Z+B z7Xne7uTK_nl)Nk^v9I5a;IzpbC5+AO4>p>=d)U=q&|@vwt!}bT4s1ze*d32be4>4j zgiNVoeTYW(+4=ORnYQ!TvbQgFzo!yQ2alMArtkZDzjJIMbw)vVEy5u)uVn@?j?fCQ-EPgf-I((`|N_b%J);vGX}Lc>Iz{nJa5*hXS{!4Zy2l>0EP&_)JE{!$z+L9sgScA8)3nGdBn&u{(NOc}HcX z{0j1z)=oCfIbKb(_**J?mCw08WOEpM?#S}4YJK9q>j(STX-5yFmhh$e3Wu;#9%S8H z&Xkkr-lqqusLq|*Lnu^{)-j)ikk6$}z}(<+yJa2WIc8ItkIpx%<7Q}Y z{2U>XG@KH5^lJR%Ze(dbzTq$U^{vOiVd7=iVp-~73ce?QIO&pO6i8Y}Hu*{MZY1vm|P{PnW&O{5t~e7IAnr8xW$HG+CLr_se} z3^jmkh(baiX@BFYtaA(X_@g8*cHA6I9`Jp5eMcm8Df|paZzAeZLG#wykY23UEAvIw zdJziZK$S zLVg=809rnVe;X_S^`~OVBOpI8(>{zt2>{{>ssuf4zre_-1A(Du!gL%hkJvd{+@PDp zT)}`qjJNfoDOiZ5a5flkAM^aGdVi0Qcf?rdywmua&a%wZgVy*Q)C(b~fU)6i2T?jh ztI(V2)O3{onpc}9Bg5x-sA+LYz4E-N_B%~B?V)l*v$Q02MSqdC)F>jHFWb3bju2rb z5IStGD~0A6WHco}ep5-m)kmKe7an?s%NQ~ChZ>5(x<0Q{6zD1b0;(|{4C4^|J73S? z%_)MiNgx!RaDPulRF6ZAIy5gqL(EqFV*8R4LSl!eV;xt60deJ_!U@qQK}K8lwqQO< z(7%)hToh5;ZDuPf{(|WiMeXhTf+Fl^%c3xp(tjIuIc8~j{MRTy*pDcd{9dVFoPXZZ S2h-p7H(_u=YsKxA0R0VGKkEtr diff --git a/dist/zipfeljs_diffusion2d-0.0.2.tar.gz b/dist/zipfeljs_diffusion2d-0.0.2.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..9c05f72e7c9c6019bc928c80896e7f3abd99d2a8 GIT binary patch literal 8165 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 HVPO6TFJJdZ literal 0 HcmV?d00001 diff --git a/pyproject.toml b/pyproject.toml index 9f6b75db..1a3fc34b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -2,15 +2,13 @@ requires = ["setuptools", "wheel"] [project] -version = "0.0.1" +version = "0.0.2" name = "zipfeljs_diffusion2d" description = "Diffusion2D solves the diffusion equation in 2D over a square domain which is at a certain temperature and a circular disc at the center which is at a higher temperature" readme = "README.md" keywords = ["SimulationSoftwareEngenieering", "UniStuttgart","MasterStudent"] classifiers=[ - "Programming Language :: Python :: 3", - "License :: OSI Approved :: CC License", - "Operating System :: Windows", + "Programming Language :: Python :: 3" ] dependencies = [ "requests",