Skip to main content

Toolbox for building spectral methods

Project description

The SpectralToolbox is a collection of tools useful for spectral approximation methods in one or more dimensions. It include the construction of traditional orthogonal polynomials. Additionally one can construct orthogonal polynomials with respect to a selected measure.

Description

Implementation of Spectral Methods in N dimension.

Available polynomials:
  • Jacobi

  • Hermite Physicists’

  • Hermite Physicists’ Function

  • Hermite Probabilists’

  • Hermite Probabilists’ Function

  • Laguerre Polynomial

  • Laguerre Function

  • Fourier

  • ORTHPOL package (generation of recursion coefficients using [1])

Available quadrature rules (related to selected polynomials):
  • Gauss

  • Gauss-Lobatto

  • Gauss-Radau

Available quadrature rules (without polynomial selection):
  • Kronrod-Patterson on the real line

  • Kronrod-Patterson uniform

  • Clenshaw-Curtis

  • Fejer’s

Requirements

Installation

We reccommend to work in a virtual environment using virtualenv, or on the system python installation. The use of alternative virtual environment systems (such as Anaconda) is not guaranteed to be automatically supported, thus a manual installation is suggested in such case.

Make sure to have an up-to-date version of pip:

$ pip install –upgrade pip

Automatic installation

Run the command:

pipinstallupgradenumpy pip install –upgrade SpectralToolbox

Manual installation (using pip)

Install the following dependencies separately:

$ pip install <package>

where <package> are the Python dependencies as listed in Requirements and X.X.X is the current revision version.

You should intall the orthpol package. This dependency is required since v. 0.2.0. The installation might require you to tweak some flags for the compiler (with gcc nothing should be needed).

$ pip install –no-binary :all: orthpol

Finally you can install the toolbox by:

$ pip install –no-binary :all: SpectralToolbox

Manual installation (from source files)

Note: This method may apply also to virtual environment systems different from virtualenv.

download and install each dependency manually with the following commands:

$ pip download <package>

$ tar xzf <package>-X.X.X.tar.gz

$ cd <package>-X.X.X

$ python setup.py install

$ cd ..

where <package> are the Python dependencies as listed in Requirements and X.X.X is the current revision version.

References

Change Log

0.1.0:
  • Implementation of Poly1D, PolyND, and additional quadrature rules

0.2.0:
  • New interface for Spectral1D.

  • All polynomials are now classes.

  • Complete integration of orthpol

0.2.7:
  • Python3 support. And fixed installation procedure.

0.2.8:
0.2.11:
  • Added function generate for the generation of polynomials from type and parameters.

0.2.27
  • Added class ConstantExtendedHermiteProbabilistsFunction, used for external projects.

0.2.38
  • Added functions from_xml_element in order to generate basis from XML structures.

0.2.39
  • Added class handling algebraic operations between polynomials (class SquaredOrthogonalPolynomial)

0.2.41
  • Added algebraic function class SquaredConstantExtendedHermitePhysicistsFunction

0.2.42
  • Added algebraic function class PositiveDefiniteSquaredConstantExtendedHermitePhysicistsFunction

0.2.45-46
  • Exact factorials in AlgebraicPolynomilas.

0.2.47
  • Memoization of coefficients

3.0.0
  • Removed dependency on orthpol_light and ported necessary code in this repo in cython

3.1.0
  • Fixed bug due to change on scipy.special.factorial2

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page