From 99ea03a5425185e25f3d3fc3617cfe5e07cbb12e Mon Sep 17 00:00:00 2001 From: niyati-n Date: Tue, 19 Nov 2024 20:03:22 +0100 Subject: [PATCH 1/2] diffusion 2d packaging --- .gitignore | 4 + __init__.py | 0 __pycache__/diffusion2d.cpython-312.pyc | Bin 0 -> 2671 bytes __pycache__/output.cpython-312.pyc | Bin 0 -> 1381 bytes diffusion2d.py | 81 ----------------- dist/niyati_diffusion2d-0.1-py3-none-any.whl | Bin 0 -> 9072 bytes dist/niyati_diffusion2d-0.1.tar.gz | Bin 0 -> 8713 bytes niyati_diffusion2d.egg-info/PKG-INFO | 34 +++++++ niyati_diffusion2d.egg-info/SOURCES.txt | 9 ++ .../dependency_links.txt | 1 + niyati_diffusion2d.egg-info/requires.txt | 5 + niyati_diffusion2d.egg-info/top_level.txt | 1 + .../__pycache__/diffusion2d.cpython-312.pyc | Bin 0 -> 2690 bytes niyati_diffusion2d/diffusion2d.py | 86 ++++++++++++++++++ output.py | 17 ++++ pyproject.toml | 24 +++++ test-script.py | 4 + 17 files changed, 185 insertions(+), 81 deletions(-) create mode 100644 .gitignore create mode 100644 __init__.py create mode 100644 __pycache__/diffusion2d.cpython-312.pyc create mode 100644 __pycache__/output.cpython-312.pyc delete mode 100644 diffusion2d.py create mode 100644 dist/niyati_diffusion2d-0.1-py3-none-any.whl create mode 100644 dist/niyati_diffusion2d-0.1.tar.gz create mode 100644 niyati_diffusion2d.egg-info/PKG-INFO create mode 100644 niyati_diffusion2d.egg-info/SOURCES.txt create mode 100644 niyati_diffusion2d.egg-info/dependency_links.txt create mode 100644 niyati_diffusion2d.egg-info/requires.txt create mode 100644 niyati_diffusion2d.egg-info/top_level.txt create mode 100644 niyati_diffusion2d/__pycache__/diffusion2d.cpython-312.pyc create mode 100644 niyati_diffusion2d/diffusion2d.py create mode 100644 output.py create mode 100644 pyproject.toml create mode 100644 test-script.py diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..692350ec --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +venv +__pycache__/ +dist/ +*.egg-info/ \ No newline at end of file diff --git a/__init__.py b/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/__pycache__/diffusion2d.cpython-312.pyc b/__pycache__/diffusion2d.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..3eee3a5951ee4f8d2de363a06494a2e083d9eecc GIT binary patch literal 2671 zcmai0O>7&-6`t82{!h5Y?oaXBil@KO1JFvjHyd{N2?#dJQ(<+9l_ zp`-j-IV}U>@!VWb7fN|Pn$E11b0W`0v!YOluE=spnu^DzOs-UsSA^ntMkvIW1mRvh zvyv{!yg2slu|ird$r`3_Q{XE6{9R~MnpCXnl zpHP-dW!c_H8M>VivXHcq{ZSp#1j)hcSfy2lqg0loRfmj;5E%-spbalVkJ~4wIE;c% zb5xh=R1iqBpoM`4tLjnRid*pznqw5o=8-*ECN$Akz4CEn9J>mquMWlA@!nZ6Qdrs9 zky~|jsFPK3Dy}Tmk+);{4jXX;T4(X;a-w z7sqUXcQq&nj&+?KuQTX_w}BTr#dDqFjRG&MgxVPkY(Py~)|7B7drJ4o8OfO1qx2}j zdk~j|A4V02;sfn)mbwbOhp#i};bjJKu8)w~%emFQWyE=YiPe72t48EtC%V;8hdNo0 zGca%}(!NuXz6rhuDWvp*N54WTUQ*M?j+TWVK|HEY^(%u)|9ui!M2T>|4ag<m*%vX4;(#r(IHTfEn<=Pm&dbH4$f`=mY_ zPEL+qi+-qn)e`8w-j+nyGwt|nh8yNEd`AvYe*`EcE#PCj5qwN#sR3ZY@1kvdB97+J z%RCNl!GCMm2!^Tw4=VSv2C0|A5WE~~+E!b>{;$1Obhg!&hHZ}}_Kxok@qk~BiXcJ3 ztH-w&w(W6TV~9t=S!y1|*jxKVaR1*hM3Suie*qQ47LyT5m6*d~%c){v!op<>&sY>E zTQs+xfT@y@hrTF~(&A6PF?!6U1Zdi$#Q#3bT zs#so5NXgJrC7Ca63`)>!`SGiHA(PHa?~I?~O@Ke?pD0N4v+Ziyg%$mX3UCHd8+Y3jGpph_ojJ0jih-|%Ezuo9p8nM-5$0zGqz;i+sL84d@Niz{i9}&BWELDC} z?6Q?ai^_mVreaZI!ooQVuUb?oA@&fiqezM@S*~KL^(pwmLw|CmK`pDotLj5q}}+zllC3Lp&_@dc{0)oBeMbfKliN7Qe&hcJ?Va{#%h!{4QccFb=Oa>J@fS&6Q=L1Hv7VZdZTr3W4<}m zybJeZdS~fL&-ZFKwPZ~^=qKi0j3PFuhxNHXG7*uy5Hb3zpKX)z>vzQ~uoubm5c62h zREiTasg%VQ%Y{-!B$%**C;yY6gV_Ib9IaIxB78>+T_@PK!SMyMJ=vi7+I6)caOFJz nj+g`u(gdY5Fdfhs<3ozU%#jb_@L$mRzoJVom|2VmY~}v|qYbV( literal 0 HcmV?d00001 diff --git a/__pycache__/output.cpython-312.pyc b/__pycache__/output.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c959cc9026c0a4598b5318a31d80c8f5effe3ce8 GIT binary patch literal 1381 zcmZvcO=ufO6o6-TN2|3ZMRAC2()7n|L(_$#B~F{tAF5JP8d_s0at=-p%UZL$US*|K z_s5moH8{{v>tvN4;!|l$p*Hp*mqL!Ay_EhyTnQ|O6bgkBlN>^P%c*ZxS_f=D*m?8b zy!Ynq&NuseE;o!oe){cI>sh++p-@f86hDtv*ih*X4;G_gW< zdEj(89mn?v36u!W-Z19b5w3tfC=^F%5uBTYwWV~FuJEh_5($;m0T-B?16Q!WZ$&;F zMTMk#Bt~RQ+$8;&B^mb09F9+_Vg&2C!|Rk(@`t@qDv}nVN1EbevSXrotw=V75>lk; z-Mf&^#CbPRL`KS0z0Sx&)vobTZ!8Xd{$}BvxinGr?R)Sk6q#joN;N;6t2=JMB)jU* zyPrX#TW>P4?gUJ>j6jR)WPOP8!DSjhJQ71>uRa= zz8dKM)$=N~O*8auw>EiEb;F<@1_fv}Q}zr!Ff{%a-f1Yw&)IiiSVsTkj<0GhZLRd} zTieeRIyrSk=;iXOv#r_or#BY9TKKy0L-|MNJLl$WotNIYE&Y0VWww(mL6AJWns4R1 z@+m&cwzBO{c1F)`kDgt}>+fwyH&1TlI-?i5^6S0)Nc)AAa3#A3`=N4zHa9p9F{nSo z1VBYcgSxek5gaBu3Q`ME@q3&c`I2xnw3N`)mb5wOAg;BKFK?$W5srkd^pmK7pFu2@ z_`)VuUq3;%3A{{O=VQ5FR4_|#b1int!J;_|M=E7Mazukzv5#0 z%*>eyb>gGllTa6uWk;VgoVre7E|&F%BC-5{LtoQrCG-J44yWEQd^XH+Ys4u`2Ao`P zPWQYllwyP`T`!UH{PI|1>4VM&MF#ART)S80}xMzK$D@IgR_+Kygak=41Kos!K!1c*lDM d%J6@e&)@8!h%x>fJ@<%6cy#Z03g_dT{{c?BKA8Xj literal 0 HcmV?d00001 diff --git a/diffusion2d.py b/diffusion2d.py deleted file mode 100644 index c0c6083a..00000000 --- a/diffusion2d.py +++ /dev/null @@ -1,81 +0,0 @@ -""" -Solving the two-dimensional diffusion equation - -Example acquired from https://scipython.com/book/chapter-7-matplotlib/examples/the-two-dimensional-diffusion-equation/ -""" - -import numpy as np -import matplotlib.pyplot as plt - -# 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() diff --git a/dist/niyati_diffusion2d-0.1-py3-none-any.whl b/dist/niyati_diffusion2d-0.1-py3-none-any.whl new file mode 100644 index 0000000000000000000000000000000000000000..33fe9ab35ccae1027c49c43e7c801414df99f478 GIT binary patch literal 9072 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 literal 0 HcmV?d00001 diff --git a/dist/niyati_diffusion2d-0.1.tar.gz b/dist/niyati_diffusion2d-0.1.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..f88ec056a1d506cdc22376ba6a1e11f8b75abe5f GIT binary patch literal 8713 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 literal 0 HcmV?d00001 diff --git a/niyati_diffusion2d.egg-info/PKG-INFO b/niyati_diffusion2d.egg-info/PKG-INFO new file mode 100644 index 00000000..175f9183 --- /dev/null +++ b/niyati_diffusion2d.egg-info/PKG-INFO @@ -0,0 +1,34 @@ +Metadata-Version: 2.1 +Name: niyati_diffusion2d +Version: 0.1 +Summary: diffusion2D +Author-email: Niyati +License: BSD-3-Clause +Keywords: one,two +Classifier: Programming Language :: Python :: 3 +Requires-Python: >=3.6 +Description-Content-Type: text/markdown +License-File: LICENSE +Requires-Dist: importlib-metadata; python_version < "3.4" +Requires-Dist: numpy +Requires-Dist: matplotlib + +# diffusion2D + +## Instructions for students + +Please follow the instructions in [pypi_exercise.md](https://github.com/Simulation-Software-Engineering/Lecture-Material/blob/main/03_building_and_packaging/pypi_exercise.md). + +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 + +## Installing the package + +### Using pip3 to install from PyPI + +### Required dependencies + +## Running this package + +## Citing diff --git a/niyati_diffusion2d.egg-info/SOURCES.txt b/niyati_diffusion2d.egg-info/SOURCES.txt new file mode 100644 index 00000000..c4660550 --- /dev/null +++ b/niyati_diffusion2d.egg-info/SOURCES.txt @@ -0,0 +1,9 @@ +LICENSE +README.md +pyproject.toml +niyati_diffusion2d/diffusion2d.py +niyati_diffusion2d.egg-info/PKG-INFO +niyati_diffusion2d.egg-info/SOURCES.txt +niyati_diffusion2d.egg-info/dependency_links.txt +niyati_diffusion2d.egg-info/requires.txt +niyati_diffusion2d.egg-info/top_level.txt \ No newline at end of file diff --git a/niyati_diffusion2d.egg-info/dependency_links.txt b/niyati_diffusion2d.egg-info/dependency_links.txt new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/niyati_diffusion2d.egg-info/dependency_links.txt @@ -0,0 +1 @@ + diff --git a/niyati_diffusion2d.egg-info/requires.txt b/niyati_diffusion2d.egg-info/requires.txt new file mode 100644 index 00000000..28375154 --- /dev/null +++ b/niyati_diffusion2d.egg-info/requires.txt @@ -0,0 +1,5 @@ +numpy +matplotlib + +[:python_version < "3.4"] +importlib-metadata diff --git a/niyati_diffusion2d.egg-info/top_level.txt b/niyati_diffusion2d.egg-info/top_level.txt new file mode 100644 index 00000000..2cb9d9ce --- /dev/null +++ b/niyati_diffusion2d.egg-info/top_level.txt @@ -0,0 +1 @@ +niyati_diffusion2d diff --git a/niyati_diffusion2d/__pycache__/diffusion2d.cpython-312.pyc b/niyati_diffusion2d/__pycache__/diffusion2d.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c002a0e15046bcad15b642362dc7e403c99aba1e GIT binary patch literal 2690 zcmai0O>7&-6`t82{!3mekEiacT z9nG$n(=req&y9_Ap_I=?)0y>hj%0=CG7$^WRaq`cQ}MWz$(1Vds#qM$h=ur)DBg`{ zR?{UpOGdvvT1d;KyeQ{$OYv;WiWCR8qp!Gy5ZZ1>J8t8i1Nvic#u&?+A=$K?O;Jmh zPb|x&vTSdp4BJi!U1-|q{-_RVg5=;0tg{3|4X;T4(Yg64y zm%wd;cQq&nj&+?KuQTYww}BTr#dDqFT>xHK3AHm8*o2z2tSRAE_LT0EGnz5AN9j?5 zcOfnbKZq(0#RuBqW#$U-9=y(>2a_BUTpuH~S8%I+D@gGC3akBsSB=QQPIPOb4t25~ zXJFt|qQ@Gp{(CgCh!PQen~+QJ+uQM? zM3e#0LT){t!?~TfirFBlv__W(I%-zl*i;i3C z`ci$ySTiHB#&nbU;{E+#pT53LjB#Vmn9w)2&)3K6<;JZBX)H9yn{&;H#-e#~(j1vI zgOgu=Yd5?*3}1SW*%fvN%y(wZ;Ow4ccF*mHBSz3j7(K@N4lyFz@6~TLdK>G_P(yCs zYLezcW7CXHncti;!&6`0-W}ha+nv}8?+x#TcfVs^{lE-=@cUZ}W@zCVi-WiEGnN^> zgP$R0;11TXHl!uB*L188>zsC}=09|yVCbP^+wqx8TNNYF`u$vz_#<}she=8Ce#mk3=P%OZi7#bSyjixZ1kiTFUsVhg#V#glY#C2O&z zJeA9>lu4G*UQ9S@=N#001HKBOz0Jb+Exc+u7E&28FIfCSY874>rU(+n3Zeal(AGk_ zsVq}|lXTfi#9}falBrk>Nmw{%;WdjXB}fnDI*PQ&lI1F09#lptI zMT<#;gNX2=xKa9xn}Yd|?*#22W}R;M+5*oC@+)%On_$lqPP z@xlQ+J*dxZ_ig>~mm>h9;hp7QyrD7GBuI3J^knV6!5DKpPAy!$zVG&FQf)v_8$;V! zL#og3RLs7Z>AqA={)2OCu|IhRP0yf_ca01p+|_CD4i=}i^)0u4y%wlW@4G$Pe61gZP7~=`Up4u}AJP+BKX{Hfen`Vl z0NCWSf#-;I4{6i;p|HNReZfduG)Br>S2BEk6eV%M Date: Tue, 19 Nov 2024 20:13:35 +0100 Subject: [PATCH 2/2] added read me --- README.md | 44 +++++++++++++++++++++++++++++++++++++------- 1 file changed, 37 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index fe548354..41526a03 100644 --- a/README.md +++ b/README.md @@ -1,19 +1,49 @@ # diffusion2D -## Instructions for students - -Please follow the instructions in [pypi_exercise.md](https://github.com/Simulation-Software-Engineering/Lecture-Material/blob/main/03_building_and_packaging/pypi_exercise.md). - -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 +## Project Description +This code 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. ## Installing the package +To install the `diffusion2D` package from TestPyPI and PyPI, you can use the following `pip` commands: +### Using pip3 to install from TestPyPI +```bash +pip3 install --index-url https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple _diffusion2d +``` ### Using pip3 to install from PyPI +```bash +pip3 install _diffusion2d +``` ### Required dependencies +The following dependencies are required to run the code: +- Python version >= 3.6 and update it if it is older than 3.6. +- Install pip, build, and Twine. +- Install NumPy and Matplotlib with pip.. + +You can install them using: +```bash +pip install numpy matplotlib twine +``` +Alternatively, if you are installing the package directly, the dependencies will be installed automatically. ## Running this package +Once the package is installed, you can use the solve() function to simulate the 2D diffusion process. We can run the code either interactively in a Python shell or in a Python script. +If you choose Python Shell and run the following command. +```python +>>> from niyati_diffusion2d import diffusion2d +>>> diffusion2d.solve() +``` + +you can also build using the following command: + +You can install them using: +```python +>>> python3 -m build +``` + ## Citing +Please follow the instructions in [pypi_exercise.md](https://github.com/Simulation-Software-Engineering/Lecture-Material/blob/main/03_building_and_packaging/pypi_exercise.md). + +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/) \ No newline at end of file