Metadata-Version: 2.0
Name: quantum-dynamics
Version: 0.1.dev13
Summary: Quantum mechanics in 1D.
Home-page: https://compphys.solanpaa.fi
Author: Janne Solanpää
Author-email: janne+compphys@solanpaa.fi
License: Boost Software License 1.0
Description-Content-Type: UNKNOWN
Keywords: numerics linear algebra schrödinger quantum
Platform: UNKNOWN
Classifier: License :: OSI Approved :: Boost Software License 1.0 (BSL-1.0)
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Topic :: Scientific/Engineering :: Physics
Requires-Python: >=3.5
Requires-Dist: numpy
Requires-Dist: scipy
Requires-Dist: matplotlib
Requires-Dist: h5py
Requires-Dist: progressbar2

quantum_dynamics -- simulation of 1D time-dependent Schrödinger equation
========================================================================

The `quantum_dynamics` package contains tools for simulation of 1D
time-dependent Schrödinger equation. The package allows for simulation of 1D
model potentials and time-dependent external interactions, e.g., an laser
electric field in the dipole approximation.

This package has been created as a reference solution to an exercise in the
computational physics course at Tampere University of Technology in Spring
2018. 

The key numerical methods behind the package are:

  1. finite-difference approximation of the laplacian operator with Dirichlet
     boundary conditions at the endpoints of the simulation grid
  2. exponential mid-point rule for the time-evolution operator
  3. krylov-subspace based implementation of the matrix exponential

Upon successful installation, two executables are copied to your PATH:
  * qdyn_laser
  * plot_time_evolution

qdyn_laser
----------

This simulates the electron in 1D soft coulomb potential ("1D hydrogen") under
laser electric field with sin^2 envelope and cosine carrier wave. Please
consult the help of the script for all options: ``qdyn_laser --help``.

After a successful simulation, an outputfile of HDF5-format is created. It
contains the following datasets and groups

``coordinate_grid``
    The gridpoints of the coordinate space used in the calculation.

``savetimes``
    The times corresponding to the saved wavefunction values in the file.

``wavefunction``
    A 2D array of values of the wavefunction. The first index corresponds to
    ``coordinate_grid`` and the second index to ``savetimes``.

``final_wavefunction``
    Wavefunction values at the end of the simulation.

``laser``
    The laser electric field for `all` timesteps. First column is times, second
    the laser electric field values.

``tise_hamiltonian``
    The time-independent part of the Hamiltonian matrix. It's saved as a sparse
    matrix and can be loaded with ``quantum_dynamics.utils.load_sparse_matrix``
    like::

        from quantum_dynamics.utils import load_sparse matrix
        import h5py

        with h5py.File("myfile.h5", "r") as f:
            H0 = load_sparse_matrix(f['tise_hamiltonian'])



plot_time_evolution
-------------------

This can be used to visualize the time-evolved density calcualted with
`qdyn_laser`. For usage instructions, please see ``plot_time_evolution --help``.

Authors
-------
Janne Solanpää


