{ "info": { "author": "Simon Wilkinson", "author_email": "sw561@cam.ac.uk", "bugtrack_url": null, "classifiers": [ "Development Status :: 2 - Pre-Alpha", "Intended Audience :: Science/Research", "License :: OSI Approved :: GNU General Public License (GPL)", "Operating System :: OS Independent", "Programming Language :: Python", "Topic :: Scientific/Engineering :: Mathematics", "Topic :: Scientific/Engineering :: Physics" ], "description": "Sinope\n======\n\nSplit Implicit Numerics Of Parabolic Equations\n----------------------------------------------\npronounced (sin-Oh-pee)\n\nA package for solving parabolic differential equations, in particular the\nSchrodinger equation and the Gross-Pitaevskii equation using the Crank Nicolson\nmethod.\n\nTo install the package from PyPI use `pip install sinope`, or download the\nsource distribution sinope-0.1.tar.gz and run `pip install sinope-0.1.tar.gz`.\n\nAlternatively if you prefer to keep the code in its own directory, download the\ngithub repository and compile the extension module with `make`.\n\nTo run tests use `sinope_run_tests.py`. This requires the package hypothesis_.\nwhich can be installed with `pip install hypothesis`.\n\n.. _hypothesis: https://hypothesis.readthedocs.org/en/latest/index.html\n\nExamples for how to use the code are available in scripts. The user code\nshould define a grid class which inherits from one of Grid1D or Grid2D. The\nuser then needs to define four methods:\n\n1) `initialise_solvers(self, \\*\\*kwargs)`:\n\nThis is called when the grid is initialised using with the keyword\narguments that are passed to the grid constructor. In this method the\nchosen solvers (to be found in the solvers module) should be constructed.\n\n2) `set_time_step(self, dt)`:\n\nThis method needs to initialise all of the needed solvers with a common\nstep size, which is dt. This method should have some mechanism to choose\nthe step size if it is called with dt as None. In which case the\nlongest\\_time\\_step methods of the solver classes should be used.\n\n3) `advance_single(self)`:\n\nThis advances the solution by a single time step using the previously\ndefined solvers.\n\n4) `n_components(self)`:\n\nAdditionally the method `n_components(self)` can be overridden (default\nfunction returns 1) if the solution u has more than one component. This\nallows for multiple (possibly dependent) variables to be evolved together.\nNote that each component is necessarily real, so if one of the variables is\ncomplex then it requires two components (one for each of the real and\nimaginary parts).\n\nThe solvers are defined in the solver module. The available solvers are\nExplicit (for a real parabolic PDE) using a FTCS explicit scheme. A Crank\nNicolson implicit solver also for real PDEs is also available using Cholesky\nfactorisation (cholesky module). This is implicit and is unconditionally stable\nwhile the explicit one has a strict stability condition. Crank Nicolson is\ntherefore faster overall, especially on large grids. On the other hand it is\nless easily parallelised than an explicit scheme.\n\nThe solvers are entirely one dimensional and are intended to be used on the 2D\ngrid with dimensional splitting. See the scripts folder for examples.\n\nThe tst package implements the multiplying of TST (tridiagonal symmetric\nToeplitz) matrices by vectors using c++ and a swig interface. This is\nsignificantly faster than the equivalent numpy code since it cannot be\nimplemented using elementwise operations, but requires slicing.", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/sw561/sinope", "keywords": "numerical,parabolic,implicit,differential", "license": "GPL", "maintainer": null, "maintainer_email": null, "name": "sinope", "package_url": "https://pypi.org/project/sinope/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/sinope/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/sw561/sinope" }, "release_url": "https://pypi.org/project/sinope/0.1/", "requires_dist": null, "requires_python": null, "summary": "A library for implicitly solving parabolic PDEs", "version": "0.1" }, "last_serial": 1861694, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "c3c02eb782247a244eb10dc79949549b", "sha256": "0e5bed5be1a2b8ecaf9f6f24c428b3c1920b7a81ee228de4c0720bb69484ae3d" }, "downloads": -1, "filename": "sinope-0.1.2.tar.gz", "has_sig": false, "md5_digest": "c3c02eb782247a244eb10dc79949549b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21859, "upload_time": "2015-12-14T14:22:07", "url": "https://files.pythonhosted.org/packages/64/a9/ec3a82f007f60e79fc1cfdd96d6dd50546e9522c960b31c5f3374d0399f8/sinope-0.1.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "c3c02eb782247a244eb10dc79949549b", "sha256": "0e5bed5be1a2b8ecaf9f6f24c428b3c1920b7a81ee228de4c0720bb69484ae3d" }, "downloads": -1, "filename": "sinope-0.1.2.tar.gz", "has_sig": false, "md5_digest": "c3c02eb782247a244eb10dc79949549b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21859, "upload_time": "2015-12-14T14:22:07", "url": "https://files.pythonhosted.org/packages/64/a9/ec3a82f007f60e79fc1cfdd96d6dd50546e9522c960b31c5f3374d0399f8/sinope-0.1.2.tar.gz" } ] }