{ "info": { "author": "Mike M\u00fcller", "author_email": "mmueller@hydrocomputing.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 2 - Pre-Alpha", "Environment :: Console", "Intended Audience :: Developers", "Intended Audience :: Science/Research", "License :: OSI Approved :: MIT License", "Operating System :: MacOS :: MacOS X", "Operating System :: Microsoft :: Windows", "Operating System :: POSIX", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: Implementation :: CPython", "Topic :: Scientific/Engineering :: Hydrology" ], "description": "# pymf6\n\nPython Wrapper for MODFLOW 6\n\n## Installation\n\nCurrently, the simplest way to install is to use the provided `conda` package.\nYou need to install\n[Anaconda](https://www.anaconda.com/distribution/)\nor [Miniconda](https://docs.conda.io/en/latest/miniconda.html).\nOnce installed, add two channels to your config:\n\n conda config --add channels msys2\n conda config --add channels hydrocomputing\n\nand install `pymf6` with:\n\n conda install pymf6\n\n## Usage\n\n`pymf6` support interactive use in Jupyter Notebook sees\n[this example](https://pymf6.readthedocs.io/en/latest/notebooks/Interactive.html)\nfor Notebook session.\nThe documentation of \n[MODFLOW6 packages](https://water.usgs.gov/water-resources/software/MODFLOW-6/mf6io_6.0.4.pdf)\nis very useful to understand the meaning of the available data. \n\n\nYou need to provide a callback, i.e. a Python callable that will be\ncall by MODLFOW 6 for each time step.\nA class with a special method `__call__` allows to keep state between calls.\n\nThis is a simple example:\n\n #!/usr/bin/env python\n\n # Change to directory `examples/ex16-mfnwt2` before running this script.\n\n \"\"\"Example program that shows some temporal information from MF6.\n \"\"\"\n\n from pymf6.callback import Func\n from pymf6 import mf6\n\n\n class MyFunc(Func):\n \"\"\"Class whose instances act like a function, i.e. are callables\n \"\"\"\n\n def __init__(self):\n super().__init__()\n # First model. There is only one.\n self.model = self.simulation.models[0]\n # First simulation. There is only one.\n self.sim = self.simulation.solution_groups[0]\n\n def __call__(self):\n \"\"\"\n Override the `__call__\u00b4 from `Func`.\n\n :return: None\n \"\"\"\n super().__call__()\n # If the in stress period 3\n if self.simulation.TDIS.KPER.value == 3:\n # set all constant head boundary conditions to 10\n self.model.CHD_1.BOUND[:] = 10\n # Change ths values to see how the calculated water level changes.\n else:\n # other set them to 25.\n self.model.CHD_1.BOUND[:] = 25\n # Show the mean water level to see changes of modifying CHD_1.\n print(self.sim.X.value.mean())\n\n\n if __name__ == '__main__':\n mf6.mf6_sub(MyFunc())\n\nDepending on the number of the stress period, the values of all constant head\nboundary conditions are set to `10` or `25`. \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/hydrocomputing/pymf6", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "pymf6", "package_url": "https://pypi.org/project/pymf6/", "platform": "any", "project_url": "https://pypi.org/project/pymf6/", "project_urls": { "Homepage": "https://github.com/hydrocomputing/pymf6" }, "release_url": "https://pypi.org/project/pymf6/0.4.2/", "requires_dist": [ "numpy" ], "requires_python": "", "summary": "Python Wrapper for MODFLOW 6", "version": "0.4.2" }, "last_serial": 5902897, "releases": { "0.4.0": [ { "comment_text": "", "digests": { "md5": "3d22b1820cc5167dde63a06243a0a098", "sha256": "043fbeee1340337a421fc797a626b5d179b1e1f3121b117a37c437d08e0dd83c" }, "downloads": -1, "filename": "pymf6-0.4.0-py3-none-any.whl", "has_sig": false, "md5_digest": "3d22b1820cc5167dde63a06243a0a098", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 854214, "upload_time": "2019-08-13T12:35:53", "url": "https://files.pythonhosted.org/packages/52/6c/d2f3d0f675ab89624b3b1b7dca16ce146dcea217c33d51ed03fca227a0b8/pymf6-0.4.0-py3-none-any.whl" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "847e7a9a772e6b017888a77b09d44528", "sha256": "bbbc739e25484b927c9c5596faafe313e640f023680d47ff7cbad07dbb723346" }, "downloads": -1, "filename": "pymf6-0.4.1-py3-none-any.whl", "has_sig": false, "md5_digest": "847e7a9a772e6b017888a77b09d44528", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 2137404, "upload_time": "2019-08-13T12:56:53", "url": "https://files.pythonhosted.org/packages/0a/53/57576fa119247306e5fcc37807f4aeeca6201cef2377304b478b12816941/pymf6-0.4.1-py3-none-any.whl" } ], "0.4.2": [ { "comment_text": "", "digests": { "md5": "c4ac275b7ffd9c92d874f3f5d5cb8a0b", "sha256": "e12ad932a5e7acf340e8232ce4ceb4d8d634e49ff21489343038379124b9a61e" }, "downloads": -1, "filename": "pymf6-0.4.2-py3-none-any.whl", "has_sig": false, "md5_digest": "c4ac275b7ffd9c92d874f3f5d5cb8a0b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 2138513, "upload_time": "2019-09-29T15:31:47", "url": "https://files.pythonhosted.org/packages/6b/47/f28bbfe7ce174c5b9a0290a732b5244e68d9f438543f8e5cf7450db787b9/pymf6-0.4.2-py3-none-any.whl" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "c4ac275b7ffd9c92d874f3f5d5cb8a0b", "sha256": "e12ad932a5e7acf340e8232ce4ceb4d8d634e49ff21489343038379124b9a61e" }, "downloads": -1, "filename": "pymf6-0.4.2-py3-none-any.whl", "has_sig": false, "md5_digest": "c4ac275b7ffd9c92d874f3f5d5cb8a0b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 2138513, "upload_time": "2019-09-29T15:31:47", "url": "https://files.pythonhosted.org/packages/6b/47/f28bbfe7ce174c5b9a0290a732b5244e68d9f438543f8e5cf7450db787b9/pymf6-0.4.2-py3-none-any.whl" } ] }