From 8936e7967eeab4c95250f818965044056de30854 Mon Sep 17 00:00:00 2001 From: Prabhu Ramachandran Date: Sun, 26 Oct 2025 17:50:32 +0530 Subject: [PATCH] Update tutorial and fix some broken links. --- docs/tutorial/1_getting_started.ipynb | 229 ++++++++++++------- docs/tutorial/2_solving_a_problem.ipynb | 77 ++----- docs/tutorial/3_simple_post_processing.ipynb | 68 +++--- docs/tutorial/4_without_schemes.ipynb | 55 ++--- docs/tutorial/solutions/plot_pa.py | 4 +- 5 files changed, 216 insertions(+), 217 deletions(-) diff --git a/docs/tutorial/1_getting_started.ipynb b/docs/tutorial/1_getting_started.ipynb index 153d56763..8f145e418 100644 --- a/docs/tutorial/1_getting_started.ipynb +++ b/docs/tutorial/1_getting_started.ipynb @@ -71,9 +71,7 @@ " $ pysph run --cat elliptical_drop > ed.py # This puts the source into ed.py in the current dir.\n", " \n", " $ python ed.py\n", - " \n", - "**NOTE: ** there is also a `/old_examples` directory which you should not use.\n", - " \n", + " \n", "You can also import the examples from Python and thus could just as well have run this example as:\n", "\n", " $ python -m pysph.examples.elliptical_drop\n", @@ -122,20 +120,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "from __future__ import print_function" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true - }, + "metadata": {}, "outputs": [], "source": [ "from pysph.base.particle_array import ParticleArray" @@ -170,29 +155,11 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true - }, + "metadata": {}, "outputs": [], - "source": [] + "source": [ + "import numpy as np" + ] }, { "cell_type": "markdown", @@ -299,9 +266,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": true - }, + "metadata": {}, "outputs": [], "source": [ "from pysph.base.particle_array import get_local_tag, get_ghost_tag, get_remote_tag" @@ -332,9 +297,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": true - }, + "metadata": {}, "outputs": [], "source": [ "from cyarray.carray import DoubleArray" @@ -370,6 +333,25 @@ "a.length" ] }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "a.set(1, 1)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "x = a.get_npy_array()\n", + "x" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -383,9 +365,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": true - }, + "metadata": {}, "outputs": [], "source": [ "empty = ParticleArray(name='dummy')" @@ -403,11 +383,11 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": true - }, + "metadata": {}, "outputs": [], - "source": [] + "source": [ + "empty.pid" + ] }, { "cell_type": "markdown", @@ -450,9 +430,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": true - }, + "metadata": {}, "outputs": [], "source": [ "import numpy as np" @@ -461,9 +439,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": true - }, + "metadata": {}, "outputs": [], "source": [ "pa = ParticleArray(name='f', x=[0.0, 1.0], \n", @@ -522,6 +498,100 @@ "- Explore all of the above methods.\n" ] }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "x, pid = pa.get('x', 'pid', only_real_particles=False)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "type(x)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "x, pid" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "pa.tag" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "type(pa.x)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "pa.get_carray('tag').set(1, 0)\n", + "#pa.tag[1] = 1\n", + "pa.align_particles()\n", + "pa.get_number_of_particles(real=True)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "pa.add_property('junk', default=0.0, data=0.0, stride=2)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "pa.x, pa.junk" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "pa.extend(3)\n", + "pa.align_particles()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "pa.x, pa.junk" + ] + }, { "cell_type": "code", "execution_count": null, @@ -537,8 +607,8 @@ "metadata": {}, "outputs": [], "source": [ - "pa.add_property('x')\n", - "pa.x = np.arange(10)" + "pa.add_property('y')\n", + "pa.y = np.arange(5)" ] }, { @@ -592,7 +662,10 @@ { "cell_type": "markdown", "metadata": { - "collapsed": true + "collapsed": true, + "jupyter": { + "outputs_hidden": true + } }, "source": [ "- `pa.get_carray(prop)`: will get you the c array.\n", @@ -620,9 +693,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": true - }, + "metadata": {}, "outputs": [], "source": [ "from pysph.base.utils import get_particle_array" @@ -631,9 +702,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": true - }, + "metadata": {}, "outputs": [], "source": [ "from pysph.base.utils import get_particle_array_wcsph, get_particle_array_tvf_fluid, get_particle_array_gasd" @@ -652,11 +721,11 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": true - }, + "metadata": {}, "outputs": [], - "source": [] + "source": [ + "pa.output_property_arrays" + ] }, { "cell_type": "markdown", @@ -672,9 +741,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": true - }, + "metadata": {}, "outputs": [], "source": [ "%matplotlib inline\n", @@ -684,9 +751,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": true - }, + "metadata": {}, "outputs": [], "source": [] }, @@ -709,16 +774,14 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": true - }, + "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, @@ -732,9 +795,9 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.0" + "version": "3.11.11" } }, "nbformat": 4, - "nbformat_minor": 2 + "nbformat_minor": 4 } diff --git a/docs/tutorial/2_solving_a_problem.ipynb b/docs/tutorial/2_solving_a_problem.ipynb index 49ed27c6f..7bd107070 100644 --- a/docs/tutorial/2_solving_a_problem.ipynb +++ b/docs/tutorial/2_solving_a_problem.ipynb @@ -63,7 +63,6 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": true, "deletable": true, "editable": true }, @@ -85,17 +84,6 @@ " app.run()" ] }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true, - "deletable": true, - "editable": true - }, - "outputs": [], - "source": [] - }, { "cell_type": "markdown", "metadata": {}, @@ -110,9 +98,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": true - }, + "metadata": {}, "outputs": [], "source": [ "%load solutions/ed0.py" @@ -134,9 +120,9 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": true, "deletable": true, - "editable": true + "editable": true, + "scrolled": true }, "outputs": [], "source": [ @@ -144,7 +130,7 @@ "\n", "from pysph.solver.application import Application\n", "from pysph.base.utils import get_particle_array\n", - "from pysph.sph.scheme import WCSPHScheme # <--- ADDED\n", + "from pysph.sph.scheme import WCSPHScheme # <--- ADDED\n", "\n", "class EllipticalDrop(Application):\n", " def create_particles(self):\n", @@ -188,9 +174,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": true - }, + "metadata": {}, "outputs": [], "source": [] }, @@ -206,9 +190,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": true - }, + "metadata": {}, "outputs": [], "source": [ "%load solutions/ed.py" @@ -268,15 +250,6 @@ "Note the addition of `fname='ed'`. The filename and output directory to pick is determined by the filename and on IPython this is not meaningful, so if you want the output generated in the right directory, you must explicitly pass fname. When run externally from Python, this is automatically determined for you." ] }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [] - }, { "cell_type": "markdown", "metadata": { @@ -294,7 +267,6 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": true, "deletable": true, "editable": true }, @@ -304,28 +276,6 @@ "WCSPHScheme.configure_solver" ] }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true, - "deletable": true, - "editable": true - }, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true, - "deletable": true, - "editable": true - }, - "outputs": [], - "source": [] - }, { "cell_type": "markdown", "metadata": { @@ -335,7 +285,7 @@ "source": [ "### Homework1\n", "\n", - "- Go over this tutorial: http://pysph.readthedocs.io/en/latest/tutorial/circular_patch_simple.html\n", + "- Go over this tutorial: https://pysph.readthedocs.io/en/main/tutorial/circular_patch.html\n", "- Familiarize yourself with it" ] }, @@ -378,7 +328,6 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": true, "deletable": true, "editable": true }, @@ -388,23 +337,23 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 2", + "display_name": "Python 3 (ipykernel)", "language": "python", - "name": "python2" + "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", - "version": 2 + "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", - "pygments_lexer": "ipython2", - "version": "2.7.11" + "pygments_lexer": "ipython3", + "version": "3.11.11" } }, "nbformat": 4, - "nbformat_minor": 2 + "nbformat_minor": 4 } diff --git a/docs/tutorial/3_simple_post_processing.ipynb b/docs/tutorial/3_simple_post_processing.ipynb index 4da757dad..9571ed2da 100644 --- a/docs/tutorial/3_simple_post_processing.ipynb +++ b/docs/tutorial/3_simple_post_processing.ipynb @@ -39,13 +39,11 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": true, "deletable": true, "editable": true }, "outputs": [], "source": [ - "from __future__ import print_function\n", "from pysph.solver.utils import load" ] }, @@ -55,11 +53,14 @@ "metadata": { "collapsed": false, "deletable": true, - "editable": true + "editable": true, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [], "source": [ - "data = load('ed_output/ed_1000.hdf5')\n", + "data = load('ed_output/ed_01000.hdf5')\n", "print(list(data.keys()))" ] }, @@ -69,7 +70,10 @@ "metadata": { "collapsed": false, "deletable": true, - "editable": true + "editable": true, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [], "source": [ @@ -82,7 +86,10 @@ "metadata": { "collapsed": false, "deletable": true, - "editable": true + "editable": true, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [], "source": [ @@ -95,7 +102,10 @@ "metadata": { "collapsed": false, "deletable": true, - "editable": true + "editable": true, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [], "source": [ @@ -119,13 +129,12 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": true, "deletable": true, "editable": true }, "outputs": [], "source": [ - "%matplotlib notebook\n", + "%matplotlib\n", "from matplotlib import pyplot as plt" ] }, @@ -133,18 +142,6 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": true, - "deletable": true, - "editable": true - }, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true, "deletable": true, "editable": true }, @@ -169,7 +166,10 @@ "metadata": { "collapsed": false, "deletable": true, - "editable": true + "editable": true, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [], "source": [ @@ -180,7 +180,6 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": true, "deletable": true, "editable": true }, @@ -206,13 +205,12 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": true, "deletable": true, "editable": true }, "outputs": [], "source": [ - "%matplotlib notebook\n", + "%matplotlib ipympl\n", "from pysph.tools.ipy_viewer import Viewer2D\n", "viewer = Viewer2D('ed_output')" ] @@ -223,11 +221,14 @@ "metadata": { "collapsed": false, "deletable": true, - "editable": true + "editable": true, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [], "source": [ - "viewer.interactive_plot()" + "viewer.interactive_plot();" ] }, { @@ -247,7 +248,6 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": true, "deletable": true, "editable": true }, @@ -257,23 +257,23 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 2", + "display_name": "Python 3 (ipykernel)", "language": "python", - "name": "python2" + "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", - "version": 2 + "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", - "pygments_lexer": "ipython2", - "version": "2.7.11" + "pygments_lexer": "ipython3", + "version": "3.11.11" } }, "nbformat": 4, - "nbformat_minor": 2 + "nbformat_minor": 4 } diff --git a/docs/tutorial/4_without_schemes.ipynb b/docs/tutorial/4_without_schemes.ipynb index 28bfc31f8..382d2bd48 100644 --- a/docs/tutorial/4_without_schemes.ipynb +++ b/docs/tutorial/4_without_schemes.ipynb @@ -44,7 +44,10 @@ "metadata": { "collapsed": false, "deletable": true, - "editable": true + "editable": true, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [], "source": [ @@ -75,7 +78,10 @@ "metadata": { "collapsed": true, "deletable": true, - "editable": true + "editable": true, + "jupyter": { + "outputs_hidden": true + } }, "source": [ "### Exercise\n", @@ -92,7 +98,10 @@ "metadata": { "collapsed": false, "deletable": true, - "editable": true + "editable": true, + "jupyter": { + "outputs_hidden": false + } }, "outputs": [], "source": [ @@ -145,7 +154,6 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": true, "deletable": true, "editable": true }, @@ -156,7 +164,6 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": true, "deletable": true, "editable": true }, @@ -199,7 +206,6 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": true, "deletable": true, "editable": true }, @@ -212,7 +218,6 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": true, "deletable": true, "editable": true }, @@ -236,9 +241,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": true - }, + "metadata": {}, "outputs": [], "source": [] }, @@ -255,7 +258,6 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": true, "deletable": true, "editable": true }, @@ -268,7 +270,6 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": true, "deletable": true, "editable": true }, @@ -307,7 +308,6 @@ "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": true, "deletable": true, "editable": true }, @@ -339,25 +339,13 @@ " - n_damp: int\n", " - output_at_times: list\n", "\n", - "- API docs: http://pysph.readthedocs.io/en/latest/reference/" + "- API docs: http://pysph.readthedocs.io/en/main/reference/" ] }, { "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": true, - "deletable": true, - "editable": true - }, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true, "deletable": true, "editable": true }, @@ -382,14 +370,13 @@ "\n", "See here:\n", "\n", - "http://pysph.readthedocs.io/en/latest/reference/application.html#pysph.solver.application.Application\n" + "http://pysph.readthedocs.io/en/main/reference/application.html#pysph.solver.application.Application\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { - "collapsed": true, "deletable": true, "editable": true }, @@ -399,23 +386,23 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 2", + "display_name": "Python 3 (ipykernel)", "language": "python", - "name": "python2" + "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", - "version": 2 + "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", - "pygments_lexer": "ipython2", - "version": "2.7.11" + "pygments_lexer": "ipython3", + "version": "3.11.11" } }, "nbformat": 4, - "nbformat_minor": 2 + "nbformat_minor": 4 } diff --git a/docs/tutorial/solutions/plot_pa.py b/docs/tutorial/solutions/plot_pa.py index 7cdaba4e9..3e08d6178 100644 --- a/docs/tutorial/solutions/plot_pa.py +++ b/docs/tutorial/solutions/plot_pa.py @@ -1,5 +1,5 @@ from pysph.solver.utils import load -data = load('ed_output/ed_1000.hdf5') +data = load('ed_output/ed_01000.hdf5') f = data['arrays']['fluid'] plt.axis('equal') -plt.scatter(f.x, f.y, c=f.p, marker='.') \ No newline at end of file +plt.scatter(f.x, f.y, c=f.p, marker='.')