{ "info": { "author": "Ben Dudson", "author_email": "benjamin.dudson@york.ac.uk", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Science/Research", "License :: OSI Approved :: GNU Lesser General Public License v3 or later (LGPLv3+)", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python", "Topic :: Scientific/Engineering :: Physics", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "FreeGS: Free boundary Grad-Shafranov solver\n===========================================\n\n[![License](https://img.shields.io/badge/license-GPL-blue.svg)](https://img.shields.io/badge/license-GPL-blue.svg)\n[![py3comp](https://img.shields.io/badge/py3-compatible-brightgreen.svg)](https://img.shields.io/badge/py3-compatible-brightgreen.svg)\n\nThis Python module calculates plasma equilibria for tokamak fusion experiments,\nby solving the Grad-Shafranov equation with free boundaries. Given a set of coils,\nplasma profiles and shape, FreeGS finds the currents in the coils which produce\na steady-state solution in force balance.\n\n**Note** This is a work in progress, and probably contains bugs. \nThere is a feature wishlist in issues, suggestions and contributions welcome!\n\nInstalling\n----------\n\nFreeGS is available on PyPI \n\n $ pip install --user freegs\n\nor clone/download this repository and run setup:\n\n $ git clone https://github.com/bendudson/freegs.git\n $ cd freegs\n $ python setup.py install --user\n\nDocumentation\n-------------\n\nThe manual is in the `docs` subdirectory, and [hosted here on readthedocs](http://freegs.readthedocs.io/en/latest/).\n\nExamples\n--------\n\nThe Jupyter notebooks contain examples wuth additional notes\n\n* MAST-example.ipynb \n\nThere are also some Python scripts to run short tests\nand examples\n\n $ python 01-freeboundary.py\n\nThis solves a free boundary problem, specifying the desired location of two X-points.\nWrites the equilibrium to a G-EQDSK file \"lsn.geqdsk\"\n\n $ python 02-read-geqdsk.py\n\nReads in the file \"lsn.geqdsk\", inferring the coil currents from the plasma boundary\nand profiles in the G-EQDSK file.\n\n $ python 03-mast.py\n\nCalculates a double-null (CDND) equilibrium for MAST from scratch. Writes solution to\nG-EQDSK file \"mast.geqdsk\"\n\n $ python 04-read-mast-geqdsk.py\n\nReads the file \"mast.geqdsk\", inferring the coil currents.\n\n $ python 05-fixed-boundary.py \n\nThis example solves a fixed boundary problem, in which the square edges of the domain\nare fixed. The plasma pressure on axis and plasma current are fixed.\n\n $ python 06-xpoints.py\n\nThis demonstrates the coil current control code, finding X-points, and marking core region\nThese routines are used inside the free boundary solver\n\nFiles\n-----\n\nThe \"freegs\" module consists of the following files:\n\n* **boundary.py** - Operators for applying boundary conditions to plasma psi\n* **control.py** - Routines for controlling coil currents based on constraints\n* **critical.py** - Finds critical points (O- and X-points)\n* **equilibrium.py** - Represents the plasma equilibrium state\n* **gradshafranov.py** - Greens functions and operators for the Grad-Shafranov equation\n* **jtor.py** - Routines for calculating toroidal current density (profiles)\n* **machine.py** - Represents the coils and power supply circuits\n* **multigrid.py** - The multigrid solver for the linear elliptic operator\n* **picard.py** - Nonlinear solver, iterating the profiles and constraints\n* **plotting.py** - Plotting routines using matplotlib\n\nLicense\n-------\n\n Copyright 2016-2018 Ben Dudson, University of York. Email: benjamin.dudson@york.ac.uk\n\n This program is free software: you can redistribute it and/or modify\n it under the terms of the GNU Lesser General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n This program is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU Lesser General Public License for more details.\n\n You should have received a copy of the GNU Lesser General Public License\n along with this program. If not, see .\n\nReferences\n----------\n\n* YoungMu Jeon, [Development of a free boundary Tokamak Equlibrium Solver](http://link.springer.com/article/10.3938/jkps.67.843) [arXiv:1503.03135](https://arxiv.org/abs/1503.03135)\n* S.Jardin \"Computational Methods in Plasma Physics\" CRC Press\n\n\nVersions\n--------\n\n0.2.0 12th March 2019\n - Add field line tracer, `freegs.fieldtracer`\n - Add Equilibrium.Btor toroidal field calculation\n - Add Equilibrium.plasmaVolume\n - Fix rlim, zlim saved into GEQDSK files\n\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/bendudson/freegs", "keywords": "", "license": "LGPL", "maintainer": "", "maintainer_email": "", "name": "FreeGS", "package_url": "https://pypi.org/project/FreeGS/", "platform": "any", "project_url": "https://pypi.org/project/FreeGS/", "project_urls": { "Homepage": "https://github.com/bendudson/freegs" }, "release_url": "https://pypi.org/project/FreeGS/0.3.0/", "requires_dist": [ "numpy (>=1.8)", "scipy (>=0.14)", "matplotlib (>=1.3)" ], "requires_python": "", "summary": "Free boundary Grad-Shafranov solver for tokamak plasma equilibria", "version": "0.3.0" }, "last_serial": 5596664, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "5b3b314e2cd5127518a3bfb3cc176334", "sha256": "d56cc790e31f853acc7319994dea9e045e281365c2ab62c103eb765beccf5955" }, "downloads": -1, "filename": "FreeGS-0.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "5b3b314e2cd5127518a3bfb3cc176334", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 36528, "upload_time": "2017-11-23T23:41:19", "url": "https://files.pythonhosted.org/packages/6d/70/3fe3972a5ab8b20fb7e5ba2f87896edddf917879498d4f99251bc7f4feb9/FreeGS-0.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "558a41ba0c51611e0a63ae92f8e28861", "sha256": "988978b578c28a1d82f23d3176fc2a8e6de68ab1006486c8af99a6ee8fbb7c2a" }, "downloads": -1, "filename": "FreeGS-0.1.0.tar.gz", "has_sig": false, "md5_digest": "558a41ba0c51611e0a63ae92f8e28861", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27289, "upload_time": "2017-11-23T23:41:20", "url": "https://files.pythonhosted.org/packages/57/12/2cd21224bb066eff6e88672986922253fc18b16deb36ed603b7e2dff994c/FreeGS-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "c51cdc447c140fe9c5bee33e31959510", "sha256": "e30a60f8d0e3b2d06ea037a7951036b4aae137e2f517cf94db3447330835160b" }, "downloads": -1, "filename": "FreeGS-0.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c51cdc447c140fe9c5bee33e31959510", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 36580, "upload_time": "2018-01-20T14:34:34", "url": "https://files.pythonhosted.org/packages/e1/ef/c1a902341a0df02ab70c963d98e8798f9aa2c2da530c517422350d706ddf/FreeGS-0.1.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f4da844f161f73ae852a498d3bfeb450", "sha256": "b3161f821e91da15b3cb9d0a78a330065f531539aa0a4710c02e91393437b018" }, "downloads": -1, "filename": "FreeGS-0.1.1.tar.gz", "has_sig": false, "md5_digest": "f4da844f161f73ae852a498d3bfeb450", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26949, "upload_time": "2018-01-20T14:34:36", "url": "https://files.pythonhosted.org/packages/1c/02/4ee2bec8c91ffccc917a57a339657057c483b06c146f9a904fe1ec20bd23/FreeGS-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "a27a8cea0eb6ac13d68e0f00704e98ca", "sha256": "9453ec1bc06e72735ca026cc050ff80e09467542d2c78c911544a7d602ede44e" }, "downloads": -1, "filename": "FreeGS-0.1.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a27a8cea0eb6ac13d68e0f00704e98ca", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 38064, "upload_time": "2018-05-03T10:31:20", "url": "https://files.pythonhosted.org/packages/3e/48/bd159b09930bc4f4157b2184efcedc48695c841bf53e623a389db19572f9/FreeGS-0.1.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4d580fb97480c4152fb663a597a4cfd0", "sha256": "136a312aca698a75a9e8c12b0211088c574a70f1d8bb4c7dcf89875ffb6ce873" }, "downloads": -1, "filename": "FreeGS-0.1.2.tar.gz", "has_sig": false, "md5_digest": "4d580fb97480c4152fb663a597a4cfd0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28459, "upload_time": "2018-05-03T10:31:21", "url": "https://files.pythonhosted.org/packages/51/c2/b06966ce5b26e172eb79f9f4da773a774148a7d72177fe8d9e08e7aca732/FreeGS-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "2f95ac454d1dcb7c45a34ea54577bf41", "sha256": "f19ecec689ec363ff54c4f8d5fe73e7c8971aab30a7a5f32d5c94132e6fc2a3b" }, "downloads": -1, "filename": "FreeGS-0.1.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "2f95ac454d1dcb7c45a34ea54577bf41", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 49588, "upload_time": "2018-07-10T10:42:25", "url": "https://files.pythonhosted.org/packages/9e/96/da00bf72309915fa7b990ea8407729e87ad1c0e4151b18ea683bbd3ffe69/FreeGS-0.1.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "dd21033576464a0216a425e80a53ad90", "sha256": "8fce33d8b4329d9765384932ddc589c6fd0149ad87f150136e4a90c05ff4fed7" }, "downloads": -1, "filename": "FreeGS-0.1.3.tar.gz", "has_sig": false, "md5_digest": "dd21033576464a0216a425e80a53ad90", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 38051, "upload_time": "2018-07-10T10:42:26", "url": "https://files.pythonhosted.org/packages/72/e1/0a390dbad1c93db46db16a9e3391ea6b71ee39771839169e340f19b0b6ca/FreeGS-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "f441b8134f71c396d793b0a8ee362d03", "sha256": "e77628c0e79f3252da6c0f26f44880d25ec2ad764f3197675c942c9337c72a7e" }, "downloads": -1, "filename": "FreeGS-0.1.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "f441b8134f71c396d793b0a8ee362d03", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 56426, "upload_time": "2019-02-16T14:34:54", "url": "https://files.pythonhosted.org/packages/9b/ac/b37af775340ac7e94aefa29f2ebc8bc727a8c0fba13e716e212153707ccb/FreeGS-0.1.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f1e976308136fbb536e0ff12ac72e2e8", "sha256": "8ad83a78412e5cd4715f9669d10f63243eb38a738a6967c42d16bd88f08752be" }, "downloads": -1, "filename": "FreeGS-0.1.4.tar.gz", "has_sig": false, "md5_digest": "f1e976308136fbb536e0ff12ac72e2e8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 41223, "upload_time": "2019-02-16T14:34:57", "url": "https://files.pythonhosted.org/packages/48/ff/5a2583f8f10da88b773c5383943dd9879bdb2fd5094b8f7e1fec1e58fe53/FreeGS-0.1.4.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "8e93380b3ff822f3bb4fb0552b12b724", "sha256": "9756db74af6116621b84c5ce42f47c3370b13d10b028725161b16aa85948f77a" }, "downloads": -1, "filename": "FreeGS-0.1.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "8e93380b3ff822f3bb4fb0552b12b724", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 57245, "upload_time": "2019-02-18T00:12:37", "url": "https://files.pythonhosted.org/packages/0f/4b/0cb171e3b75d2b3aa4b58c98933f9bce3f1201c098ff1252c57a9e3fbe8f/FreeGS-0.1.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "75b89a48815bf3519692948881bbd9f7", "sha256": "d843c65d9518a8be0dc3dbc90e99d4c4d1150886e48485c4e4eb0c126c62ceb2" }, "downloads": -1, "filename": "FreeGS-0.1.5.tar.gz", "has_sig": false, "md5_digest": "75b89a48815bf3519692948881bbd9f7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 42000, "upload_time": "2019-02-18T00:12:39", "url": "https://files.pythonhosted.org/packages/2a/fa/86218902a2601e6ca7487dd79b09ed61dda83ca6295983d30014ce120b04/FreeGS-0.1.5.tar.gz" } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "812075f67e207233f6f6f2501915b3c9", "sha256": "e0d5b04f570fded7cc3c84cc7a5d09c528e68d8a1dc37b64566ee0a085cc5150" }, "downloads": -1, "filename": "FreeGS-0.1.6-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "812075f67e207233f6f6f2501915b3c9", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 57243, "upload_time": "2019-02-18T00:22:18", "url": "https://files.pythonhosted.org/packages/59/15/b6bc7762c3920aac0e97433eb8673ef110d7efefdfc6eea047b428d7fc63/FreeGS-0.1.6-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4ffcaea211ad611cd19d5325bc27f425", "sha256": "a290f47e13b365fb4007aa000bae5bf605fe97b11bb5f0634f085cebda8e9bc9" }, "downloads": -1, "filename": "FreeGS-0.1.6.tar.gz", "has_sig": false, "md5_digest": "4ffcaea211ad611cd19d5325bc27f425", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 42007, "upload_time": "2019-02-18T00:22:20", "url": "https://files.pythonhosted.org/packages/9b/74/5b97152479eda111319265173106d191b8099f8088819c55b74325523922/FreeGS-0.1.6.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "caa27a593a2dfe0a431ff22c159028f5", "sha256": "c4d5bb4e67064820520e1919a762b77acf53abf4dfdcd2a2d6c43f8845322fb5" }, "downloads": -1, "filename": "FreeGS-0.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "caa27a593a2dfe0a431ff22c159028f5", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 60141, "upload_time": "2019-03-12T22:50:30", "url": "https://files.pythonhosted.org/packages/9d/09/e6377362b23653537b7731c88c98ba10e87d0bb9e737e5181194a629da13/FreeGS-0.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "46383c8fcadad5fd52d2ed40dc2ab8d0", "sha256": "fac46d6e97eda0e561037bd0c3feed6ae001a46dcfbfb7e5f8ace563b407f783" }, "downloads": -1, "filename": "FreeGS-0.2.0.tar.gz", "has_sig": false, "md5_digest": "46383c8fcadad5fd52d2ed40dc2ab8d0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 44915, "upload_time": "2019-03-12T22:50:32", "url": "https://files.pythonhosted.org/packages/2b/95/b16db09582e385a7d8a1e9fea4670b9bc619b0c64a807683e1be8110ed45/FreeGS-0.2.0.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "cfc7b01a6a90e6aebffe204a4e018071", "sha256": "b000dc73401160d994da892c03a3d22484da1b093759ca6526b1aa53e67e9f51" }, "downloads": -1, "filename": "FreeGS-0.3.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "cfc7b01a6a90e6aebffe204a4e018071", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 61008, "upload_time": "2019-07-28T20:50:28", "url": "https://files.pythonhosted.org/packages/46/84/5b3242fcd26fbb851e0c649aef517b66c88ac3d8d2e15d1f5f347474e6e6/FreeGS-0.3.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "857b40dd0c0914c95a4b74fa44e731b0", "sha256": "60f4aadca47b004e502df5d61966074a012baf09ecc275b45df7ac2a103fff9f" }, "downloads": -1, "filename": "FreeGS-0.3.0.tar.gz", "has_sig": false, "md5_digest": "857b40dd0c0914c95a4b74fa44e731b0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 45776, "upload_time": "2019-07-28T20:50:30", "url": "https://files.pythonhosted.org/packages/6d/81/823600803bd43e4bf29c0cbfa8a71ffd8323d26f00ddfa781b7b861f5644/FreeGS-0.3.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "cfc7b01a6a90e6aebffe204a4e018071", "sha256": "b000dc73401160d994da892c03a3d22484da1b093759ca6526b1aa53e67e9f51" }, "downloads": -1, "filename": "FreeGS-0.3.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "cfc7b01a6a90e6aebffe204a4e018071", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 61008, "upload_time": "2019-07-28T20:50:28", "url": "https://files.pythonhosted.org/packages/46/84/5b3242fcd26fbb851e0c649aef517b66c88ac3d8d2e15d1f5f347474e6e6/FreeGS-0.3.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "857b40dd0c0914c95a4b74fa44e731b0", "sha256": "60f4aadca47b004e502df5d61966074a012baf09ecc275b45df7ac2a103fff9f" }, "downloads": -1, "filename": "FreeGS-0.3.0.tar.gz", "has_sig": false, "md5_digest": "857b40dd0c0914c95a4b74fa44e731b0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 45776, "upload_time": "2019-07-28T20:50:30", "url": "https://files.pythonhosted.org/packages/6d/81/823600803bd43e4bf29c0cbfa8a71ffd8323d26f00ddfa781b7b861f5644/FreeGS-0.3.0.tar.gz" } ] }