Git Product home page Git Product logo

pypositronium's Introduction

pypositronium

Positronium in parallel electric and magnetic fields.

Fine structure is included to first order using the formula given on page 117 of

Quantum Mechanics of One- And Two-Electron Atoms
by Hans a. Bethe and Edwin E. Salpeter
ISBN 978-1-61427-622-7

with higher order terms for the S and P states from

A. Czarnecki, K. Melnikov, and A. Yelkhovsky, Phys. Rev. A 59, 4316 (1999)
https://doi.org/10.1103/PhysRevA.59.4316

The Stark and Zeeman matrices are constructed using the equations given in:

A. M. Alonso et al., Phys. Rev. A 93, 012506 (2016)
https://dx.doi.org/10.1103/PhysRevA.93.012506

Radial wavefunctions are obtained using the Numerov method, as described by:

M. L. Zimmerman et al., Phys. Rev. A 20, 2251 (1979)
https://dx.doi.org/10.1103/PhysRevA.20.2251

Install

python 3.8+

The main requirements can be installed with conda:

conda install numpy scipy sympy tqdm

Optional (speed up high-n calculations): Build and install numerov.

Some of the example notebooks use smtools.

Finally, clone the souce code and then install the package using setuptools.

git clone https://github.com/ad3ller/pypositronium
cd ./pypositronium
python setup.py install

Basic Usage

Basis is a list of instances of the dataclass State.

>>> from pyps import Basis, Hamiltonian
>>> basis = Basis.build(n_values=range(1, 4))
>>> print(f'number of basis states: {basis.num_states}')

number of basis states: 56

>>> # e.g., the 10th element of the basis set
>>> basis[10]

State(n=2, L=1, S=0, J=1, MJ=0)

>>> # ket notation
>>> print(basis[10])

โ˜ 2 1 0 1 0 โŸฉ

The Hamiltonian class is initialised using a basis.

>>> # initialize
>>> H = Hamiltonian(basis)

Calculate the eigenvalues in applied fields.

>>> electric_field = 10.1   # [V / m]
>>> magnetic_field = 0.1    # [T]
>>> en = H.eigenenergies(electric_field, magnetic_field, units="eV")
>>> print(en[:5])

[-6.80332213 -6.8024767 -6.8024767 -6.80247654 -1.70078788]

The methods stark_map() and zeeman_map() calculate the energy eigenvalues for a range of electric or magnetic fields.

See the notebooks for examples.

Examples

This code has not been tested extensively, although several published calculations have been reproduced.


S. M. Curry, Phys. Rev. A, 7 (2), 447 (1973) https://dx.doi.org/10.1103/PhysRevA.7.447

Fig. 2 Pure Zeeman effect in the first excited states of positronium.

Fig. 2 Pure Zeeman effect in the first excited states of positronium.

A. M. Alonso et al., Phys. Rev. A, 93, 012506 (2016) https://dx.doi.org/10.1103/PhysRevA.93.012506

Fig. 6 a) & b) Dependence of the relative energies of all n=2 eigenstates in Ps on electric-field strength (a) in the absence of a magnetic field and (b) in a parallel magnetic field of B=130 G.

Fig. 6 a) & b) Dependence of the relative energies of all n=2 eigenstates in Ps on electric-field strength (a) in the absence of a magnetic field and (b) in a parallel magnetic field of B=130 G.

Fig. 6 c) An expanded view of the avoided crossing.

Fig. 6 c) An expanded view of the avoided crossing.

G. Dufour et al., Adv. High En. Phys., 2015, 379642 (2015) https://dx.doi.org/10.1155/2015/379642

Fig. 11: Stark states of n=30 and 31 states of Ps, with m=2 (grey dashed) and m=29 (black). In the n=30 level, the m=29 state is a circular state and experiences no first-order Stark shift and only a very weak second-order shift, as explained in the text.

Fig. 11: Stark states of n=30 and 31 states of Ps, with m=2 (grey dashed) and m=29 (black). In the n=30 level, the m=29 state is a circular state and experiences no first-order Stark shift and only a very weak second-order shift, as explained in the text.

pypositronium's People

Contributors

aa-morgan avatar ad3ller avatar

Stargazers

 avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.