{ "info": { "author": "Thanasis Mattas", "author_email": "atmattas@physics.auth.gr", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: GNU Lesser General Public License v3 or later (LGPLv3+)", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "# MattFlow\n\nA CFD python package for the shallow water equations.\n\nMattFlow simulates the surface of the water after any initial conditions, such as drops or stones falling on.\n\n \n\n___\n\n| requirements | os |\n| ---------------- | --------- |\n| python 3 | GNU/Linux |\n| numpy 1.16.4 | Windows |\n| matplotlib 3.1.1 | |\n| ffmpeg (optional) | |\n\n## How to install & run MattFlow\n\n1. anaconda environment (recommended)\n\n```bash\n$ conda create --name mattflow python=3 matplotlib\n$ conda activate mattflow\n$ pip install mattflow\n$ mattflow\n```\n\n2. venv (python>=3.3) \n\n```bash\n$ python3 -m venv mattflow_env\n$ source mattflow_env/bin/activate\n$ pip install mattflow\n$ mattflow\n```\n\n3. pip\n\n```bash\n$ pip install --user mattflow\n$ mattflow\n```\n\n## Swallow Water Equations\n\nSWE is a simpified CFD problem which models the surface of the water, with the assumption \nthat the horizontal length scale is much greater than the vertical length scale. \n\nSWE is a coupled system of 3 hyperbolic partial deferential equations, that derive from \nconservation of mass and conservation of linear momentum (Navier-Stokes) equations, in \ncase of a horizontal stream bed, with no Coriolis, frictional or viscours forces ([wiki]).\n\n\"{\\displaystyle\n\nwhere: \n_\u03b7_ : height \n_u_ : velocity along the x axis \n_\u03c5_ : velocity along the y axis \n_\u03c1_ : density \n_g_ : gravity acceleration\n\n## MattFlow structure\n\n**More details at this [jupyter notebook]**\n\n0. configuration of the simulation via a config file\n1. pre-process \nstructured/cartesian mesh\n2. solution \n supported solvers: \n - [Lax-Friedrichs] Reiman\n    | O(\u0394t, \u0394x2, \u0394y2) \n - 2-stage [Rugne-Kutta]\n       | O(\u0394t2, \u0394x2, \u0394y2)\n  | default \n - [MacCormack]\n         | O(\u0394t2, \u0394x2, \u0394y2)\n  | experimental\n3. post-processing \n matplotlib animation\n\n## Additional configurations\n\n- mesh sizing\n- domain sizing\n- initial conditions (single drop, multiple drops, rain)\n- boundary conditions (currently: reflective)\n- solver\n- plotting style\n- animation options\n\nCurrently, you can configure the simulation at the _config_ module \n\n## TODO\n\n1. exceptions\n2. pytest\n3. linting\n4. Simple API to configure the simulation\n5. Implementation of higher order schemes\n6. Addition of source terms\n7. Addition of viscous models\n8. Moving core to C++, Cython or Numba\n9. Support moving objects inside the domain\n10. Unstructured mesh\n11. Extent to 3D CFD\n\n***Start the flow!***\n\n>(C) 2019, Thanasis Mattas \n>atmattas@physics.auth.gr\n\n\n[//]: # \"links\"\n\n[wiki]: \n[Lax-Friedrichs]: \n[Rugne-Kutta]: \n[Lax-Wendroff]: \n[MacCormack]: \n[jupyter notebook]: \n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/ThanasisMattas/mattflow.git", "keywords": "", "license": "GNU GPL3", "maintainer": "", "maintainer_email": "", "name": "mattflow", "package_url": "https://pypi.org/project/mattflow/", "platform": "", "project_url": "https://pypi.org/project/mattflow/", "project_urls": { "Homepage": "https://github.com/ThanasisMattas/mattflow.git" }, "release_url": "https://pypi.org/project/mattflow/1.0.6/", "requires_dist": [ "numpy (>=1.16.4)", "matplotlib (>=3.1.1)", "ffmpeg ; extra == 'write_video'" ], "requires_python": "", "summary": "A CFD python package for the shallow water equations", "version": "1.0.6" }, "last_serial": 5671394, "releases": { "1.0.3": [ { "comment_text": "", "digests": { "md5": "3628656db5db8372c2688c3399943258", "sha256": "9d82d87ec86e8ad46fc812493e72b62315fa2507c13e39b66ebb3597dc717ec9" }, "downloads": -1, "filename": "mattflow-1.0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "3628656db5db8372c2688c3399943258", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 33277, "upload_time": "2019-08-08T19:55:31", "url": "https://files.pythonhosted.org/packages/d5/2d/d5c717b2f4b844d41fb2a6f8cedeeda1131a006619ea89cec5fd6db6ad50/mattflow-1.0.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "178b182cda56a40616311f822f8c7db8", "sha256": "5cd91cd628acdeebaf09e011deeb072ea476e4fa088d3197c276863d827d3930" }, "downloads": -1, "filename": "mattflow-1.0.3.tar.gz", "has_sig": false, "md5_digest": "178b182cda56a40616311f822f8c7db8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16039, "upload_time": "2019-08-08T19:55:34", "url": "https://files.pythonhosted.org/packages/22/82/12708887f1bdf17f290364406e0ca980c6174e0317666b3871da51637e34/mattflow-1.0.3.tar.gz" } ], "1.0.4": [ { "comment_text": "", "digests": { "md5": "68dd9df1dd64d529b227e635a2403968", "sha256": "398d0b4ed112f012901166ae9f84efcafb25cfa2c67a287f0a75e3c00ee6281b" }, "downloads": -1, "filename": "mattflow-1.0.4-py3-none-any.whl", "has_sig": false, "md5_digest": "68dd9df1dd64d529b227e635a2403968", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 33665, "upload_time": "2019-08-11T13:16:23", "url": "https://files.pythonhosted.org/packages/10/50/a54fe4c3fc427e5d037c60f6538d2e19deb0b7808b4d102b17cd2e61ccd3/mattflow-1.0.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8f51a337c403b2e40403284e2560ebc2", "sha256": "6df312da6f1071c1dea96336d2a44bab6cf1f92a69ed3fed21d57bd927c4987c" }, "downloads": -1, "filename": "mattflow-1.0.4.tar.gz", "has_sig": false, "md5_digest": "8f51a337c403b2e40403284e2560ebc2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16536, "upload_time": "2019-08-11T13:16:25", "url": "https://files.pythonhosted.org/packages/61/5c/961f714dbb458d2e0d7eb19d7ed911795a1843c1d612b8655d437385993e/mattflow-1.0.4.tar.gz" } ], "1.0.5": [ { "comment_text": "", "digests": { "md5": "6070a31ea02d173792c085b3436700f3", "sha256": "b2d1179830265821279a92a6031dbaeb0dd72ead98cc90073f9ac3cd8f576a70" }, "downloads": -1, "filename": "mattflow-1.0.5-py3-none-any.whl", "has_sig": false, "md5_digest": "6070a31ea02d173792c085b3436700f3", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 33727, "upload_time": "2019-08-11T20:01:49", "url": "https://files.pythonhosted.org/packages/ad/b3/98dd116906956c6192cc9c9b38a92559f9463d9863a1a4509c6c5b260423/mattflow-1.0.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2edd8f51fd763973438c16052aa6f5c9", "sha256": "8b55dd4da2f267f5502e951bab9495c2a118ec395a8eb6e57db3e83dc5b1ad53" }, "downloads": -1, "filename": "mattflow-1.0.5.tar.gz", "has_sig": false, "md5_digest": "2edd8f51fd763973438c16052aa6f5c9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16707, "upload_time": "2019-08-11T20:01:51", "url": "https://files.pythonhosted.org/packages/19/41/e3c2fb0b0b11a19df6628674bed7a5d2f32dd557e304d6b4c572df530b0f/mattflow-1.0.5.tar.gz" } ], "1.0.6": [ { "comment_text": "", "digests": { "md5": "9e26dbfe740e201953d7558eb0a0ce54", "sha256": "0f93ca247607d746a9d5661af351281ce1fd55d1ec54556a0d5deff5399383fd" }, "downloads": -1, "filename": "mattflow-1.0.6-py3-none-any.whl", "has_sig": false, "md5_digest": "9e26dbfe740e201953d7558eb0a0ce54", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 34545, "upload_time": "2019-08-13T11:29:30", "url": "https://files.pythonhosted.org/packages/79/9f/4f63b257f792ebb9363fcb749414a4ebcc8bf0867f647c0e4f4e3778323c/mattflow-1.0.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "bb0e1cf0f92642c8da2f7e1ff3764f83", "sha256": "7c8eef3536ea07694817c4696895689aeaf3626e219534c0e55038e4b69546aa" }, "downloads": -1, "filename": "mattflow-1.0.6.tar.gz", "has_sig": false, "md5_digest": "bb0e1cf0f92642c8da2f7e1ff3764f83", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17445, "upload_time": "2019-08-13T11:29:32", "url": "https://files.pythonhosted.org/packages/58/bf/3cb18feaec3784df2ba4d23fd88f2fc05ebd99d51ffd26fee9de1ad01803/mattflow-1.0.6.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "9e26dbfe740e201953d7558eb0a0ce54", "sha256": "0f93ca247607d746a9d5661af351281ce1fd55d1ec54556a0d5deff5399383fd" }, "downloads": -1, "filename": "mattflow-1.0.6-py3-none-any.whl", "has_sig": false, "md5_digest": "9e26dbfe740e201953d7558eb0a0ce54", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 34545, "upload_time": "2019-08-13T11:29:30", "url": "https://files.pythonhosted.org/packages/79/9f/4f63b257f792ebb9363fcb749414a4ebcc8bf0867f647c0e4f4e3778323c/mattflow-1.0.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "bb0e1cf0f92642c8da2f7e1ff3764f83", "sha256": "7c8eef3536ea07694817c4696895689aeaf3626e219534c0e55038e4b69546aa" }, "downloads": -1, "filename": "mattflow-1.0.6.tar.gz", "has_sig": false, "md5_digest": "bb0e1cf0f92642c8da2f7e1ff3764f83", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17445, "upload_time": "2019-08-13T11:29:32", "url": "https://files.pythonhosted.org/packages/58/bf/3cb18feaec3784df2ba4d23fd88f2fc05ebd99d51ffd26fee9de1ad01803/mattflow-1.0.6.tar.gz" } ] }