{ "info": { "author": "['Pawel Pomorski', 'Nasser Mohieddin Abukhdeir']", "author_email": "ppomorski@sharcnet.ca,nmabukhdeir@uwaterloo.ca", "bugtrack_url": null, "classifiers": [], "description": "===============================================\n``GSML`` -- **General Spectral Method Library**\n===============================================\n\nOverview\n========\n\nDISCLAIMER - this is a **development** version and has not been fully tested.\n\nGSML is a Python-based software library that implements many `Spectral methods `_ which are typically used for the solution of partial differential equations. This library is mainly focused on Fourier-type spectral methods, including a recently introduced Fourier continuation (FC) method *FC(Gram)* [1]. The main benefit of spectral methods is that they have optimal convergence properties, so-called \"exponential\" convergence, for approximating functions and their derivatives.\n\nThis library is being developed to address a few key problems that face researchers when trying to solve complex differential equations:\n\n* High-order approximations: for many use-cases low-order approximations require unreasonably, many times infeasibly, fine spatial discretization. Access to higher-order approximations, in addition to increasing spatial refinement, is an intuitive approach to solving complex differential equations. \n* Parallel computing: parallel computing has been a key enabler of the growth of computational science, usage of the FC(Gram) method has been shown to exhibit optimal parallel scaling when solving the Navier-Stokes equation [2].\n* Heterogenous computing: Fourier spectral method and its derivatives, such as FC(Gram), utilize the Fast Fourier Transform which benefits from the presence of SIMD accelerators. Thus the combination of parallel operation and SIMD acceleration is ideal for newly emerging heterogeneous computing environments. The main focus for GSML is fused CPU/GPU architectures.\n* Ease of use: Python is used as the user interface and high-level development language for GSML with NumPy and GMPy \"under the hood.\"\n\nIn this current development release, the first and last of these goals have been addressed. SIMD accelerator/GPU support is planned for the next development release, followed by parallelization restricted to Cartesian domains.\n\n[1] Bruno and Lyon (2010) J. Comp. Phys. `link 1 `_ / `link 2 `_\n\n[2] Bruno and Albin (2011) J. Comp. Phys. `link `_\n\nInstallation\n============\n\nThis package uses the setuptools-enhancement of Python's Distutils, so installation is quite simple:\n\n1. Check for the latest version of GSML https://launchpad.net/gsml\n2. Install GSML's dependencies, NumPy and GMPy\n3. Once the package has been downloaded, install the package locally::\n\n cd gsml-0.1.0\n ./setup.py install --user\n \n4. Run GSML's tests, but these do not currently exist, so instead try one of the examples/ to determine if the library is functioning properly.\n\n\nDocumentation and Help\n======================\n\nCurrently no documentation beyond the docstrings exists for GSML. Several useful examples have been provided, so if these do not provide enough information to get started, you can find help here: https://answers.launchpad.net/gsml.\n\nExamples\n=========\n\nMany examples of GSML's usage can be found in the examples/ directory including:\n\n1. Interpolation of a 1D nonperiodic function.\n2. Interpolation of a 1D periodic function.\n3. Interpolation of a 2D function on a mixed periodic and nonperiodic domain.\n4. Solution of the transient 1D diffusion equation with natural/Dirichlet boundary conditions.\n5. Solution of the transient 1D wave equation with natural/Dirichlet boundary conditions.\n\nA simple example similar to example #1 from above is::\n\n from numpy import *\n import pylab \n \n import gsml\n \n # the exact function\n u = lambda x: sin(x) + cos(x)\n\n # configure the parameters of the simulation, a periodic domain with\n # x=[0,2*pi) and 10 collocation points\n params = {\n 'shape' : (10,), # the number of collocation points \n 'scale': (2.*pi,), # the scale of the domain\n 'periodicity' : (True,), # domain is periodic => Fourier Spectral Method\n }\n \n # initialize GSML\n grid = gsml.CartesianGrid(params)\n \n x = grid.x\n \n # approximate the first and third derivative of u(x)\n ux = grid.dudx(u(x),1)\n uxxx = grid.dudx(u(x),3)\n\n\n\nContributors and Contributing\n=============================\n\nIf you are interested in contributing, please see GSML's current blueprint `bugs `_ and `blueprint `_. GSML's Development team can be contacted through Launchpad here https://launchpad.net/~gsml-developers.\n\nGSML is currently being developed by:\n\n* N.M. Abukhdeir, Department of Chemical Engineering, University of Waterloo\n\n* P. Pomorski, SHARCNET, University of Waterloo\n\n\nAcknowledgements\n================\nThis work was made possible by `Natural Sciences and Engineering Research Council of Canada `_ (NMA), the `Shared Hierarchical Academic Research Computing Network `_, and Compute Canada.", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://chemeng.uwaterloo.ca/abukhdeir/research/software.html", "keywords": null, "license": "LICENSE.txt", "maintainer": null, "maintainer_email": null, "name": "gsml", "package_url": "https://pypi.org/project/gsml/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/gsml/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://chemeng.uwaterloo.ca/abukhdeir/research/software.html" }, "release_url": "https://pypi.org/project/gsml/0.1.0/", "requires_dist": null, "requires_python": null, "summary": "Generalized Spectral Method Library", "version": "0.1.0" }, "last_serial": 915928, "releases": { "0.1.0": [] }, "urls": [] }