McL42scPropagator¶
About the McL42scPropagator
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¶
Class documentation¶
-
class
WaveBlocksND.
McL42scPropagator
(parameters, potential, packets=[])[source]¶ This class can numerically propagate given initial values in a potential . The propagation is done for a given set of homogeneous Hagedorn wavepackets neglecting interaction. It uses the McL42 and the idea of the semiclassical splitting
-
__init__
(parameters, potential, packets=[])[source]¶ Initialize a new
SemiclassicalPropagator
instance.Parameters: - parameters (A
ParameterProvider
instance) – AParameterProvider
instance containing at least the keydt
for providing the timestep . - potential – The potential the wavepacket feels during the time propagation.
- packet – The initial homogeneous Hagedorn wavepacket we propagate in time.
Raises: ValueError – If the number of components of does not match the number of energy levels of the potential.
- parameters (A
-
add_wavepacket
(packet)[source]¶ Add a new wavepacket to the list of propagated wavepackets.
Parameters: packet (A tuple with a HagedornWavepacket
instance and an integer.) – The new wavepacket and its leading component .
-
build
(method)¶ Parameters: method – A string specifying the method for time integration. Returns: Two arrays and . Method Order Authors Reference L42 (4,2) McLachlan [1] page 6 L62 (6,2) McLachlan [1] page 6 L82 (8,2) McLachlan [1] page 6 L102 (10,2) McLachlan [1] page 6 L84 (8,4) McLachlan [1] page 8 [1] (1, 2, 3, 4, 5) R.I. McLachlan, “Composition methods in the presence of small parameters”, BIT Numerical Mathematics, Volume 35, Issue 2, (1995) 258-268. There is also a 2003 version which was used for the implementation.
-
get_potential
()¶ Returns the potential used for time propagation.
Returns: A MatrixPotential
subclass instance.
-
get_wavepackets
(packet=None)[source]¶ Return the wavepackets that take part in the time propagation by the current
SemiclassicalPropagator
instance.Parameters: packet (Integer or None
) – The index (in this list) of a single packet that is to be returned. If set toNone
(default) return the full list with all packets.Returns: A list of HagedornWavepacket
instances or a single instance.
-
intsplit
(psia, psib, a, b, tspan, N, argsa=[], argsb=[])¶ Compute a single, full propagation step by operator splitting.
Parameters: - psia – First evolution operator
- psib – Second evolution operator
- a – Parameters for evolution with
- b – Parameters for evolution with
- tspan – Timespan of a single, full splitting step
- N – Number of substeps to perform
- argsa – Additional optional arguments of
- argsb – Additional optional arguments of
Note
The values for
argsa
andargsb
have to be of typelist
even in case of single items.
-
post_propagate
()¶ Given the wavefunction at final time , 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 at initial time , 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 a wavepacket at time compute the propagated wavepacket at time . We perform exactly one timestep of size here. This propagation is done for all packets in the list and neglects any interaction between two packets.
More details can be found in [2].
[2] - Blanes, R. Bourquin and V. Gradinaru, “Raising the Order of Convergence in the Semiclassical Splitting”.
-