{ "info": { "author": "Guilherme Caminha", "author_email": "gpkc@cin.ufpe.br", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6" ], "description": ".. image:: https://cdn.rawgit.com/gpkc/ELLIPTIc/master/logo.png\n :align: center\n\n|\n\n.. image:: https://img.shields.io/pypi/v/elliptic.svg\n :target: https://pypi.python.org/pypi/elliptic\n\n.. image:: https://travis-ci.org/padmec-reservoir/ELLIPTIc.svg?branch=master\n :target: https://travis-ci.org/padmec-reservoir/ELLIPTIc\n\n.. image:: https://readthedocs.org/projects/elliptic/badge/?version=latest\n :target: http://elliptic.readthedocs.io/en/latest/?badge=latest\n\n.. image:: https://coveralls.io/repos/github/padmec-reservoir/ELLIPTIc/badge.svg?branch=master\n :target: https://coveralls.io/github/padmec-reservoir/ELLIPTIc?branch=master\n\n.. image:: https://api.codacy.com/project/badge/Grade/025660097e6a41fa9fa6fa590ef28148\n :target: https://www.codacy.com/app/gpkc/ELLIPTIc?utm_source=github.com&utm_medium=referral&utm_content=padmec-reservoir/ELLIPTIc&utm_campaign=badger\n\n.. image:: https://img.shields.io/badge/license-MIT-blue.svg\n :target: https://raw.githubusercontent.com/gpkc/ELLIPTIc/master/LICENSE\n\n|\n\n.. image:: https://cdn.rawgit.com/gpkc/ELLIPTIc/master/pic.png\n :width: 500\n :align: center\n\n===========\nDescription\n===========\n\n**ELLIPTIc**, The ExtensibLe LIbrary for Physical simulaTIons, is a library / framework for creating reusable and extensible `Domain Specific Languages (DSL) `_ for scientific purposes.\n\nELLIPTIc's workflow is as follows:\n\n* An ELLIPTIc DSL contract is created to define how the DSL syntax looks like. This DSL contract defines the operations that will be available when using the DSL.\n* A DSL implementation is built based on the DSL contract. The DSL implementation tells ELLIPTIc how to generate the corresponding Cython code.\n* When using ELLIPTIc-based DSLs, a tree-like intermediate representation is built.\n* This intermediate representation is used together with the DSL implementation to generate Cython code.\n\n==========\nDSL Syntax\n==========\n\nELLIPTIc-based DSLs use a `Fluent Interface `_ syntax. This allows\nfor elegant development of algorithms.\n\nBelow is an example of how using an ELLIPTIc-based DSL to iterate in a unstructured mesh would look like:\n\n.. code:: python\n\n dsl = DSL(...) # Instatiating a DSL object\n\n\n with dsl.root() as root:\n all_ents = root.Entities(dim=3).Adjacencies(bridge_dim=2, to_dim=3) # Operation chaining\n internal_ents = all_ents.Where(boundary=False) # Continuing an operation chain\n boundary_ents = all_ents.Where(boundary=True) # Operation branching\n\n perm_ents = internal_ents.GetField(name=\"permeability\")\n dirichlet = boundary_ents.GetField(name=\"dirichlet\")\n neumann = boundary_ents.GetField(name=\"neumann\")\n\n dsl.get_built_module().run() # Run the generated Cython code\n\n\nIt is also possible to export the intermediate representation to a image file, allowing for visual debugging:\n\n.. image:: https://cdn.rawgit.com/gpkc/ELLIPTIc/master/tree_example.png\n :width: 400\n :align: center\n\n=============\nDocumentation\n=============\n\nPlease refer to the `documentation page `_.\n\n=======\nTesting\n=======\n\nRun `python setup.py test`.\n\n=======================\nBuilding and installing\n=======================\n\nRun `python setup.py build` and `python setup.py install`.\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/padmec-reservoir/ELLIPTIc", "keywords": "", "license": "MIT license", "maintainer": "", "maintainer_email": "", "name": "ELLIPTIc", "package_url": "https://pypi.org/project/ELLIPTIc/", "platform": "", "project_url": "https://pypi.org/project/ELLIPTIc/", "project_urls": { "Homepage": "https://github.com/padmec-reservoir/ELLIPTIc" }, "release_url": "https://pypi.org/project/ELLIPTIc/1.0.1/", "requires_dist": [ "colorlog", "configobj", "anytree", "typing-extensions", "jinja2", "cypyler", "sphinx; extra == 'docs'", "sphinx-autodoc-typehints; extra == 'docs'", "sphinx-rtd-theme; extra == 'docs'" ], "requires_python": "", "summary": "A tool for building DSLs for scientific purposes.", "version": "1.0.1" }, "last_serial": 3778959, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "79296b374bab5c1155004f43eebb51f7", "sha256": "937602e156159ea655f0ef0c7982017e9215a45ab3fb0dc49f7db46ba37a1420" }, "downloads": -1, "filename": "ELLIPTIc-1.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "79296b374bab5c1155004f43eebb51f7", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 26394, "upload_time": "2018-04-18T19:36:12", "url": "https://files.pythonhosted.org/packages/9d/1b/a2c90db9aad187d2a59f4e60ec88feed87655aee84c1b240296015e39889/ELLIPTIc-1.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1b5729d34335389266e0bfe36ba877ae", "sha256": "9285aeca3d2faa2cfe9f03c59485ab364d247a2e22fd8feb3d5d80825a537279" }, "downloads": -1, "filename": "ELLIPTIc-1.0.0.tar.gz", "has_sig": false, "md5_digest": "1b5729d34335389266e0bfe36ba877ae", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8844, "upload_time": "2018-04-18T19:36:14", "url": "https://files.pythonhosted.org/packages/91/f9/9886b4328afb9fc07d6b70239de44c1898730bfea50427c1706de3986ccf/ELLIPTIc-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "7642a9cd75ffb775c7946b3a4aa36379", "sha256": "d55dc2999357f8adf59443adff7dd1dbee98e282458eb7ce01fc553e43a7cbfd" }, "downloads": -1, "filename": "ELLIPTIc-1.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "7642a9cd75ffb775c7946b3a4aa36379", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 12107, "upload_time": "2018-04-19T00:29:55", "url": "https://files.pythonhosted.org/packages/f6/65/e3f540f50e15075d85a2c807dd48e8b7978848c93431b080980ade049d06/ELLIPTIc-1.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6456f6dabf770f84b5fb629b4e4f2807", "sha256": "558146659eb7f7b355bc75fefc6365c2f63b2b98e69e2c7a9a916139dd40e22e" }, "downloads": -1, "filename": "ELLIPTIc-1.0.1.tar.gz", "has_sig": false, "md5_digest": "6456f6dabf770f84b5fb629b4e4f2807", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9382, "upload_time": "2018-04-19T00:29:56", "url": "https://files.pythonhosted.org/packages/fa/79/400348f3ca271d16edb284e8f951d5b8d9ab0b26f3a139dfee31f9a8473f/ELLIPTIc-1.0.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "7642a9cd75ffb775c7946b3a4aa36379", "sha256": "d55dc2999357f8adf59443adff7dd1dbee98e282458eb7ce01fc553e43a7cbfd" }, "downloads": -1, "filename": "ELLIPTIc-1.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "7642a9cd75ffb775c7946b3a4aa36379", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 12107, "upload_time": "2018-04-19T00:29:55", "url": "https://files.pythonhosted.org/packages/f6/65/e3f540f50e15075d85a2c807dd48e8b7978848c93431b080980ade049d06/ELLIPTIc-1.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6456f6dabf770f84b5fb629b4e4f2807", "sha256": "558146659eb7f7b355bc75fefc6365c2f63b2b98e69e2c7a9a916139dd40e22e" }, "downloads": -1, "filename": "ELLIPTIc-1.0.1.tar.gz", "has_sig": false, "md5_digest": "6456f6dabf770f84b5fb629b4e4f2807", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9382, "upload_time": "2018-04-19T00:29:56", "url": "https://files.pythonhosted.org/packages/fa/79/400348f3ca271d16edb284e8f951d5b8d9ab0b26f3a139dfee31f9a8473f/ELLIPTIc-1.0.1.tar.gz" } ] }