FourierPropagator

About the FourierPropagator class

The WaveBlocks Project

@author: R. Bourquin @copyright: Copyright (C) 2010, 2011, 2012, 2013, 2014, 2015, 2016 R. Bourquin @license: Modified BSD License

Inheritance diagram

Inheritance diagram of FourierPropagator

Class documentation

class WaveBlocksND.FourierPropagator(parameters, potential, initial_values)[source]

This class can numerically propagate given initial values \Psi(x_0, t_0) on a potential hyper surface V(x). The propagation is done with a Strang splitting of the time propagation operator \exp(-\frac{i}{\varepsilon^2} \tau H).

__init__(parameters, potential, initial_values)[source]

Initialize a new FourierPropagator instance. Precalculate the the kinetic operator T_e and the potential operator V_e used for time propagation.

Parameters:
  • parameters – The set of simulation parameters. It must contain at least the semi-classical parameter \varepsilon and the time step size \tau.
  • potential (A MatrixPotential instance.) – The potential V(x) governing the time evolution.
  • initial_values (A WaveFunction instance.) – The initial values \Psi(\Gamma, t_0) given in the canonical basis.
Raise:

ValueError If the number of components of \Psi does not match the number of energy surfaces \lambda_i(x) of the potential.

get_number_components()[source]

Get the number N of components of \Psi.

Returns:The number N.
get_operators()[source]

Get the kinetic and potential operators T(\Omega) and V(\Gamma).

Returns:A tuple (T, V) containing two ndarrays.
get_potential()

Returns the potential V(x) used for time propagation.

Returns:A MatrixPotential subclass instance.
get_wavefunction()[source]

Get the wavefunction that stores the current data \Psi(\Gamma).

Returns:The WaveFunction instance.
post_propagate()

Given the wavefunction \psi at final time T, perform some computations exactly once after running the ordinary time propagation and before each time simulation data will be saved.

This method does not raise an exception but instead just does nothing and returns.

pre_propagate()

Given the wavefunction \psi at initial time t_0, perform some computations exactly once before running the ordinary time propagation and after each time simulation data was saved.

This method does not raise an exception but instead just does nothing and returns.

propagate()[source]

Given the wavefunction values \Psi(\Gamma) at time t, calculate new values \Psi^\prime(\Gamma) at time t + \tau. We perform exactly one single timestep of size \tau within this function.