This page gives a brief overview of the implemented features in the latest development version. It should be pointed out that most of the code can handle density operators and wave functions; you need to change a few lines of code (use a commutator Liouvillian instead of a Schroedinger equation solver, for example), but much of the code is agnostic to the actual state that you deal with.
Latest released version is 0.3.6
-
Grids
- PlaneWaveDof: equally-spaced grid / plane wave expansion
- SphericalHarmonicsDof: expansion in spherical harmonics and corresponding grid.
- CoupledChannelsDof: dummy grid for coupled channels / electronic states.
- AbstractDof: dummy grid for an abstract set of states, such as an eigenstate basis.
-
Initial wave functions
- product of one-dimensional primitive one-dimensional states
- random wavefunctions
- zero wavefunctions
- pure density operators from a wave function
- unit density operators
- zero density operators
- more complex states can be built by summing primitive states.
- primitive one-dimensional states:
- Gaussians
- harmonic oscillator eigenstate
- Morse oscillator eigenstate
- Projection on a DVR grid point (for use with coupled channels)
- Spherical harmonics
- plane waves
- a given one-dimensional state as input
-
Operators
- Cartesian kinetic energy (2m)^-1 d^2/dx^2 (assumes an FFTGrid)
- Rotational kinetic energy L^2 / 2I
- Momentum operator
- coordinate operator
- constants
- intervals
- user-specifiable one-dimensional potential
- harmonic potential
- Mecke dipole
- Morse potential
- oscillating laser fields, implemented are sin^2 and Gaussian shape functions
- time-dependent function
- operator given in matrix form
- projection and transition operators for coupled channels
- complex potentials (absorbing boundary conditions)
- Taylor series potentials
- 1D and ND projections onto a given state
-
Expressions (components of the differential equation)
- Schroedinger equation
- Commutator Liouvillian
- Lindblad dissipation
- Redfield dissipation
- Liouvillian that applies an operator to the right/left of a density operator
- Equation system that handles multiple coupled equations
-
Propagators, both real and imaginary time
- Runge-Kutta solver of order 4/5, 5, 7/8, real time
- Bulirsch-Stoer solver, real time
- expansion in Chebychev polynomials, real and imaginary time
- expansion in Faber polynomials, real time
- diagonalization (solver for time-independent Schroedinger equation)
-
Open-systems functionality
- functions to set up a Lindblad Liouvillain, given eigenstates/-energies and a spectrum
-
Other:
- Plotting, for one-dimensional wave functions
- literal suffixes to input values in other units
- Absorbing boundary conditions using power functions at the grid boundaries.
- relaxation utilities to get the ground state or low excited states
- observer that writes out state properties during propagation
- observer that calculates and stores expectation values during propagation
- functions to read in / write out data from/to a file
- manipulators for easy DVR/FBR transformations and calculation of expectation values
- RedfieldFactory to set up a Redfield Liouvillian numerically using only the bath correlation functions and system-side coupling operators.
- HarmonicOscillatorFactory to simplify setup of harmonic oscillator problems
- operator transformations plus simple interface to simplify operator structure (combining, e.g., multiple potentials into a single potential)
-
Python interface
- plotting of 1D and 2D functions with a GUI (using matplotlib)