{ "info": { "author": "Louis Moresi", "author_email": "louis.moresi@unimelb.edu.au", "bugtrack_url": null, "classifiers": [ "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6" ], "description": "# Quagmire\n\nQuagmire is a Python surface process framework for building erosion and deposition models on highly parallel, decomposed structured and unstructured meshes.\n\nQuagmire is structured into three major classes that inherit methods and attributes from lower tiers.\n\n![Quagmire hierarchy](https://github.com/University-of-Melbourne-Geodynamics/quagmire/blob/master/Notebooks/Images/hierarchy_chart.png)\n\nThe Surface Processes class inherits from the Topography class, which in turn inherits from TriMesh or PixMesh depending on the type of mesh.\n\n## Installation\n\nNumpy and a fortran compiler, preferably [gfortran](https://gcc.gnu.org/wiki/GFortran), are required to install Quagmire.\n\n- ``python setup.py build``\n - If you change the fortran compiler, you may have to add the \nflags `config_fc --fcompiler=` when setup.py is run\n(see docs for [numpy.distutils](http://docs.scipy.org/doc/numpy-dev/f2py/distutils.html)).\n- ``python setup.py install``\n\n\n\n## Dependencies\n\nRunning this code requires the following packages to be installed:\n\n- Python 3.7.x and above\n- Numpy 1.9 and above\n- Scipy 0.15 and above\n- [mpi4py](http://pythonhosted.org/mpi4py/usrman/index.html)\n- [petsc4py](https://pythonhosted.org/petsc4py/usrman/install.html)\n- [stripy](https://github.com/University-of-Melbourne-Geodynamics/stripy)\n- [h5py](http://docs.h5py.org/en/latest/mpi.html#building-against-parallel-hdf5) (optional - for saving parallel data)\n- Matplotlib (optional - for visualisation)\n\n### PETSc installation\n\nPETSc is used extensively via the Python frontend, petsc4py. It is required that PETSc be configured and installed on your local machine prior to using Quagmire. You can use pip to install petsc4py and its dependencies.\n\n```\n[sudo] pip install numpy mpi4py\n[sudo] pip install petsc petsc4py\n```\n\nIf that fails you must compile these manually.\n\n### HDF5 installation\n\nThis is an optional installation, but it is very useful for saving data that is distributed across multiple processes. If you are compiling HDF5 from [source](https://support.hdfgroup.org/downloads/index.html) it should be configured with the `--enable-parallel` flag:\n\n```\nCC=/usr/local/mpi/bin/mpicc ./configure --enable-parallel --enable-shared --prefix=\nmake\t# build the library\nmake check\t# verify the correctness\nmake install\n```\n\nYou can then point to this install directory when you install [h5py](http://docs.h5py.org/en/latest/mpi.html#building-against-parallel-hdf5).\n\n## Usage\n\nQuagmire is highly scalable. All of the python scripts in the *tests* subdirectory can be run in parallel, e.g.\n\n```\nmpirun -np 4 python stream_power.py\n```\n\nwhere the number after the `-np` flag specifies the number of processors.\n\n## Tutorials\n\nTutorials with worked examples can be found in the *Notebooks* subdirectory. These are Jupyter Notebooks that can be run locally. We recommend installing [FFmpeg](https://ffmpeg.org/) to create videos in some of the notebooks.\n\nThe topics covered in the Notebooks include:\n\n**Meshing**\n\n- Square mesh\n- Elliptical mesh\n- Mesh refinement (e.g. Lloyd's mesh improvement)\n- Poisson disc sampling\n- Mesh Variables\n- quagmire function interface (requires a base mesh)\n\n**Flow algorithms**\n\n- Single and multiple downhill pathways\n- Accumulating flow\n\n**Erosion and deposition**\n\n- Long-range stream flow models\n- Short-range diffusive evolution\n\n**Landscape evolution**\n\n- Explicit timestepping and numerical stability\n- Landscape equilibrium metrics\n- Basement uplift\n\n\n## Release Notes v0.5.0b\n\nThis is the first formal 'release' of the code which \n\nSummary of changes\n\n - Introducing quagmire.function which is a collection of lazy-evaluation objects similar to underworld functions\n - Introducing MeshVariables which wrap PETSc data vectors and provide interoperability with quagmire functions\n - Providing context manager support for changes to topography that automatically update matrices appropriately\n - Making all mesh variable data arrays view only except for assignment from a suitably sized numpy array (this is to ensure correct synchronisation of information in parallel).\n - various @property definitions to handle cases where changes require rebuilding of data structures \n - making many mesh methods private and exposing them via functions\n - upstream integration is a function on the mesh\n - upstream / downstream smoothing is via a mesh function \n - rbf smoothing builds a manager that provides a function interface\n\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/University-of-Melbourne-Geodynamics/quagmire", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "quagmire", "package_url": "https://pypi.org/project/quagmire/", "platform": "", "project_url": "https://pypi.org/project/quagmire/", "project_urls": { "Homepage": "https://github.com/University-of-Melbourne-Geodynamics/quagmire" }, "release_url": "https://pypi.org/project/quagmire/0.5.0/", "requires_dist": [ "numpy", "stripy" ], "requires_python": "", "summary": "Python surface process framework on highly scalable unstructured meshes", "version": "0.5.0" }, "last_serial": 4876460, "releases": { "0.2.0": [ { "comment_text": "", "digests": { "md5": "9bcd8b12234572adcde976dccb02142c", "sha256": "92d34c79eb4357b40c1da78a526f422b43f677d1b7d2989f69149fd0137769bd" }, "downloads": -1, "filename": "quagmire-0.2.0.tar.gz", "has_sig": false, "md5_digest": "9bcd8b12234572adcde976dccb02142c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3707103, "upload_time": "2018-09-21T12:00:33", "url": "https://files.pythonhosted.org/packages/29/10/d055b8bc52c711eaff39b7e16d504f9c4e8468c29e3dac85222789f04713/quagmire-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "9c6c79a08aff013d1b6b45d28a5a9835", "sha256": "4b91ff7c0c3fb452ad3fda58d545e3eddc033dd10519223dee091a4d5c2de0a9" }, "downloads": -1, "filename": "quagmire-0.2.1.tar.gz", "has_sig": false, "md5_digest": "9c6c79a08aff013d1b6b45d28a5a9835", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3709060, "upload_time": "2018-09-21T12:07:59", "url": "https://files.pythonhosted.org/packages/22/c9/4b0c4dada58fe3677bbb89a099dd0e2f2d11d288862c86d3a90a5f85d3f4/quagmire-0.2.1.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "243cb9e4d4f39638f891d69bed7ea988", "sha256": "de7bbd368f46fd9005b22986b26f83e2a894e699ca2443ea4d66392844522dca" }, "downloads": -1, "filename": "quagmire-0.5.0-cp37-cp37m-macosx_10_14_x86_64.whl", "has_sig": false, "md5_digest": "243cb9e4d4f39638f891d69bed7ea988", "packagetype": "bdist_wheel", "python_version": "cp37", "requires_python": null, "size": 681931, "upload_time": "2019-02-27T22:57:15", "url": "https://files.pythonhosted.org/packages/11/37/559421f571b62f3f101461f1c1610560a973e90b9178ad1c87584ced6a52/quagmire-0.5.0-cp37-cp37m-macosx_10_14_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "50ba2ea6dda066128330fabb2f2ae8b0", "sha256": "94e6a2d592ff8586485fb2359e89f4a087379c351a317c788edeee5a2db24517" }, "downloads": -1, "filename": "quagmire-0.5.0.tar.gz", "has_sig": false, "md5_digest": "50ba2ea6dda066128330fabb2f2ae8b0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 618809, "upload_time": "2019-02-27T22:57:18", "url": "https://files.pythonhosted.org/packages/08/2f/d248fe6b7dfbdae50796115047113dee21c319116f1951d8d0f2dd155170/quagmire-0.5.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "243cb9e4d4f39638f891d69bed7ea988", "sha256": "de7bbd368f46fd9005b22986b26f83e2a894e699ca2443ea4d66392844522dca" }, "downloads": -1, "filename": "quagmire-0.5.0-cp37-cp37m-macosx_10_14_x86_64.whl", "has_sig": false, "md5_digest": "243cb9e4d4f39638f891d69bed7ea988", "packagetype": "bdist_wheel", "python_version": "cp37", "requires_python": null, "size": 681931, "upload_time": "2019-02-27T22:57:15", "url": "https://files.pythonhosted.org/packages/11/37/559421f571b62f3f101461f1c1610560a973e90b9178ad1c87584ced6a52/quagmire-0.5.0-cp37-cp37m-macosx_10_14_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "50ba2ea6dda066128330fabb2f2ae8b0", "sha256": "94e6a2d592ff8586485fb2359e89f4a087379c351a317c788edeee5a2db24517" }, "downloads": -1, "filename": "quagmire-0.5.0.tar.gz", "has_sig": false, "md5_digest": "50ba2ea6dda066128330fabb2f2ae8b0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 618809, "upload_time": "2019-02-27T22:57:18", "url": "https://files.pythonhosted.org/packages/08/2f/d248fe6b7dfbdae50796115047113dee21c319116f1951d8d0f2dd155170/quagmire-0.5.0.tar.gz" } ] }