Skip to main content

"Strands - Standing waves approximations for the n-dimensional Schrödinger problem (with n = 2)."

Project description

Strands

Standing waves approximations for the n-dimensional Schrödinger problem (with n = 2).

Strands is a library to compute eigenvalues of two-dimensional time-independent Schrödinger equations. $$ -\nabla \psi(x, y) + V(x, y) \psi(x, y) = E \psi(x, y) $$ The library is written in C++ with Python-bindings.

Installation

Installing it is as simple as

pip install strands

Examples

Harmonic oscillator on a circular domain

Consider the harmonic oscillator potential $$ V(x, y) = x^2 + y^2 $$ on the circular domain around zero with radius $9.5$.

from strands import Schrodinger2D , Circle

def V(x, y):
    return x * x + y * y

schrodinger = Schrodinger2D(V, Circle ((0, 0), 9.5), gridSize=(40, 40), maxBasisSize=30)
print(schrodinger.eigenvalues(10))

The values gridSize and maxBasisSize determine how accurate the used method has to be. Eigenfunctions can be computed with:

import matplotlib.pyplot as plt
import numpy as np

xs = np.linspace(-4, 4, 100)
ys = np.linspace(-4, 4, 100)
X, Y = np.meshgrid(xs, ys)

for E, f in schrodinger.eigenfunctions(3):
    plt.pcolormesh(X, Y, f(X, Y))
    plt.show ()

Development

This is developed in C++ with CMake. To get started, make a recursive clone:

git clone --recursive https://github.com/twist-numerical/strands.git
cd strands

To compile and run the tests the following can be used:

mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release -DSTRANDS_PYTHON=OFF ..  # Build without python
cmake --build . --target strands_test
./strands_test --durations yes

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

Strands-0.1.0.tar.gz (34.9 kB view hashes)

Uploaded Source

Built Distributions

Strands-0.1.0-pp39-pypy39_pp73-win_amd64.whl (597.4 kB view hashes)

Uploaded PyPy Windows x86-64

Strands-0.1.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (638.2 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

Strands-0.1.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl (614.8 kB view hashes)

Uploaded PyPy macOS 10.9+ x86-64

Strands-0.1.0-pp38-pypy38_pp73-win_amd64.whl (597.4 kB view hashes)

Uploaded PyPy Windows x86-64

Strands-0.1.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (638.4 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

Strands-0.1.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl (614.9 kB view hashes)

Uploaded PyPy macOS 10.9+ x86-64

Strands-0.1.0-pp37-pypy37_pp73-win_amd64.whl (597.1 kB view hashes)

Uploaded PyPy Windows x86-64

Strands-0.1.0-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (637.8 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

Strands-0.1.0-pp37-pypy37_pp73-macosx_10_9_x86_64.whl (614.3 kB view hashes)

Uploaded PyPy macOS 10.9+ x86-64

Strands-0.1.0-cp311-cp311-win_amd64.whl (596.2 kB view hashes)

Uploaded CPython 3.11 Windows x86-64

Strands-0.1.0-cp311-cp311-musllinux_1_1_x86_64.whl (1.1 MB view hashes)

Uploaded CPython 3.11 musllinux: musl 1.1+ x86-64

Strands-0.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (635.7 kB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

Strands-0.1.0-cp311-cp311-macosx_10_9_x86_64.whl (615.1 kB view hashes)

Uploaded CPython 3.11 macOS 10.9+ x86-64

Strands-0.1.0-cp310-cp310-win_amd64.whl (596.2 kB view hashes)

Uploaded CPython 3.10 Windows x86-64

Strands-0.1.0-cp310-cp310-musllinux_1_1_x86_64.whl (1.1 MB view hashes)

Uploaded CPython 3.10 musllinux: musl 1.1+ x86-64

Strands-0.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (635.6 kB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

Strands-0.1.0-cp310-cp310-macosx_10_9_x86_64.whl (615.1 kB view hashes)

Uploaded CPython 3.10 macOS 10.9+ x86-64

Strands-0.1.0-cp39-cp39-win_amd64.whl (596.3 kB view hashes)

Uploaded CPython 3.9 Windows x86-64

Strands-0.1.0-cp39-cp39-musllinux_1_1_x86_64.whl (1.1 MB view hashes)

Uploaded CPython 3.9 musllinux: musl 1.1+ x86-64

Strands-0.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (639.0 kB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

Strands-0.1.0-cp39-cp39-macosx_10_9_x86_64.whl (615.3 kB view hashes)

Uploaded CPython 3.9 macOS 10.9+ x86-64

Strands-0.1.0-cp38-cp38-win_amd64.whl (596.2 kB view hashes)

Uploaded CPython 3.8 Windows x86-64

Strands-0.1.0-cp38-cp38-musllinux_1_1_x86_64.whl (1.1 MB view hashes)

Uploaded CPython 3.8 musllinux: musl 1.1+ x86-64

Strands-0.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (638.6 kB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

Strands-0.1.0-cp38-cp38-macosx_10_9_x86_64.whl (615.0 kB view hashes)

Uploaded CPython 3.8 macOS 10.9+ x86-64

Strands-0.1.0-cp37-cp37m-win_amd64.whl (597.9 kB view hashes)

Uploaded CPython 3.7m Windows x86-64

Strands-0.1.0-cp37-cp37m-musllinux_1_1_x86_64.whl (1.2 MB view hashes)

Uploaded CPython 3.7m musllinux: musl 1.1+ x86-64

Strands-0.1.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (636.2 kB view hashes)

Uploaded CPython 3.7m manylinux: glibc 2.17+ x86-64

Strands-0.1.0-cp37-cp37m-macosx_10_9_x86_64.whl (613.7 kB view hashes)

Uploaded CPython 3.7m macOS 10.9+ x86-64

Strands-0.1.0-cp36-cp36m-win_amd64.whl (597.8 kB view hashes)

Uploaded CPython 3.6m Windows x86-64

Strands-0.1.0-cp36-cp36m-musllinux_1_1_x86_64.whl (1.2 MB view hashes)

Uploaded CPython 3.6m musllinux: musl 1.1+ x86-64

Strands-0.1.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (636.2 kB view hashes)

Uploaded CPython 3.6m manylinux: glibc 2.17+ x86-64

Strands-0.1.0-cp36-cp36m-macosx_10_9_x86_64.whl (613.8 kB view hashes)

Uploaded CPython 3.6m macOS 10.9+ x86-64

Supported by

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