Numerical quantum dynamics using WavePacket: II. Open quantum systems, optimal control, and model reduction: Difference between revisions

From MaRDI portal
T4schmidt (talk | contribs)
T4schmidt (talk | contribs)
 
(9 intermediate revisions by the same user not shown)
Line 30: Line 30:
* Femto-chemistry, see, e.g., 1996 nobel prize in chemistry for A.H.Zewail, [https://www.wikidata.org/wiki/Q106624 wikidata:Q106624]
* Femto-chemistry, see, e.g., 1996 nobel prize in chemistry for A.H.Zewail, [https://www.wikidata.org/wiki/Q106624 wikidata:Q106624]
* Molecular physics, [https://www.wikidata.org/wiki/Q489328 wikipedia:Q489328]
* Molecular physics, [https://www.wikidata.org/wiki/Q489328 wikipedia:Q489328]
Connection to other MaRDI projects and to other NFDI consortia yet to be established. Perhaps a cooperation with Benner/Saak at MPI-DCTS?


=== Data Streams ===
=== Data Streams ===


Not sure what to write here. In some of the other workflows, data streams from and to projects in other consortia are mentioned here
Not sure what to write here. In some of the other workflows, data streams from and to projects in other consortia are mentioned here. Perhaps there can be a future cooperation with Benner/Saak at MPI-DCTS?


== Model ==
== Model ==
Line 258: Line 256:
Software package: [https://sourceforge.net/projects/wavepacket/ WavePacket project at SourceForge]. This document is mainly on the mature and stable [https://sourceforge.net/projects/matlab.wavepacket.p/ Matlab/Octave version] of WavePacket. Note that there is also a [https://sourceforge.net/projects/cpp.wavepacket.p/ C++/Python version] which is still in an experimental phase (but making good progress recently). Both versions come with extended Wiki pages hosted along with the respective Sourceforge repositories.
Software package: [https://sourceforge.net/projects/wavepacket/ WavePacket project at SourceForge]. This document is mainly on the mature and stable [https://sourceforge.net/projects/matlab.wavepacket.p/ Matlab/Octave version] of WavePacket. Note that there is also a [https://sourceforge.net/projects/cpp.wavepacket.p/ C++/Python version] which is still in an experimental phase (but making good progress recently). Both versions come with extended Wiki pages hosted along with the respective Sourceforge repositories.


{|
{| class="wikitable"
! ID
! ID
! Name
! Name
Line 284: Line 282:
| 0.3.4
| 0.3.4
| C++/Python
| C++/Python
| n.a.
| |[https://github.com/juanjosegarciaripoll/tensor Tensor], [https://boost.org Boost.Numeric.Odeint], pybind11, numpy, matplotlib
| git
| git
| no
| no
Line 320: Line 318:
Essentially, the input data therein match everything given above, see sections on "Variables" and "Parameters".
Essentially, the input data therein match everything given above, see sections on "Variables" and "Parameters".


{|
{|class="wikitable"
! ID
! ID
! Name
! Name
Line 336: Line 334:
| tiny [kB]
| tiny [kB]
| Matlab script
| Matlab script
| -
| m-file
| m-file
| [https://sourceforge.net/p/wavepacket/wiki/Demos.Main/ wiki]
| text
| text
| yes
| yes
Line 346: Line 344:
=== Output Data ===
=== Output Data ===


{|
{| class="wikitable"
! ID
! ID
! Name
! Name
Line 362: Line 360:
| tiny [kB]
| tiny [kB]
| -
| -
| txt
| -
| -
| txt-file
| text
| text
| no
| no
Line 373: Line 371:
| medium [MB]
| medium [MB]
| -
| -
| mat
| -
| -
| mat-file
| binary
| binary
| yes
| yes
Line 384: Line 382:
| large [GB]
| large [GB]
| -
| -
| mat
| -
| -
| mat-file
| binary
| binary
| yes
| yes
Line 392: Line 390:
|-
|-
| -
| -
| Figures
| Snapshots
| small [MB]
| small [MB]
| -
| -
| jpg, fig
| -
| -
| fig
| binary
| yes
| yes
| yes
|-
| -
| Snapshots
| small [MB]
| -
| -
| jpg
| binary
| binary
| no
| no
Line 405: Line 414:
| Animation
| Animation
| small [MB]
| small [MB]
| -
| -
| -
| mp4
| mp4
| -
| binary
| binary
| no
| no

Latest revision as of 14:20, 19 December 2022

WavePacket logo
WavePacket logo

Problem Statement

Numerical quantum dynamics, wikidata:Q7269042

For atoms, molecules and possible also other fields, including interaction of quantum systems with external fields within the semi-classical dipole approximation

Object of Research and Objective

Although WavePacket is made for general quantum systems, so far it has been developed/used mainly for describing the dynamics of molecules, i.e., typically the motion of the comprising nuclei. Especially when low masses (e.g. hydrogen atoms), low energies, and/or low temperatures are involved, the dynamics of the nuclei may be subject to quantum effects. Hence, the modeling of small molecules should be based on quantum mechanical modeling. Because of the computational effort increasing steeply (exponentially?) with the number of atoms, this can not be done for large molecules.

Procedure

WavePacket flowchart 2
WavePacket flowchart 2
  • qm_matrix: Generate matrix (state space) representations of relevant operators
  • qm_abncd: Setup bilinear control problem, either for TDSE or for LvNE
  • qm_balance: Perform balancing transformation of controllability and observability
  • qm_truncate: Perform simple truncation of balanced representation or singular perturbation approximation
  • qm_H2model: Perform H2 optimal model reduction
  • qm_propa: Propagation of full or reduced system without given temporal profile of control fields
  • qm_optimal: Propagation of full or reduced system with optimization of temporal profile of control fields

Involved Disciplines

Data Streams

Not sure what to write here. In some of the other workflows, data streams from and to projects in other consortia are mentioned here. Perhaps there can be a future cooperation with Benner/Saak at MPI-DCTS?

Model

For the case of molecules in thermal contact with their environment (e.g. molecules in solution phase or impurities in a solid), the Liouville-von Neumann equation (LvNE, wikidata:Q2533076) with Lindblad operators describing dephasing and|or dissipation has to be solved for the density operator|matrix ρ(t)

itρ(t)=[H(R,iR,t),ρ(t)]

Discretization

  • Time: Equally spaced time steps; typically to be chosen inversely proportional to the spectrum of the Hamiltonian.
  • Space: A state space (aka energy space) representation is used here, based on bound states calculated with qm_bound, see quantum dynamics workflow I.

Variables

Using atomic units (wikidata:Q757568) throughout WavePacket software

Name Symbol Unit
number of bound states nmax n.a.
initial time t0 a. t. u.
final time tf a. t. u.
size of main time steps Δt a. t. u.
number of sub steps n n.a.
initial state Ψ0 n.a.
decay rates Γ 1 / a.t.u.
dimension of truncated model dt n.a.
dimension of reduced model dr n.a.

Parameters

Definition of WavePacket's standard Hamiltonian. If applicable, interaction with external electric fields F(t) through dipole moments μ(R) and/or polarizabilities α(R) is treated within the semi-classical dipole approximation.

H=T(R,iR)1+V(R)iW(R)1F(t)μ(R)12F2(t)α(R)

Name Symbol Unit
spatial discretization R Bohr
kinetic energy T(iR,R) Hartree
potential energy V(R,t) Hartree
absorbing potential W(R) Hartree
electric field F(t) a. u.
dipole moment μ(R) a. u.
polarizability α(R) a. u.
system-bath-coupling Cij a. u.

Process Informationen

Process Steps

Essentially the same as above, thus doubling information given in section "Procedure" ?!?

Name Description Input Output Method Parameter Environment Mathematical Area
qm_matrix Generate matrix representations Cutoff for setting matrix elements to zero Matrix elements of quantum operators Numerical quadratures Most of the above parameters Matlab Numerical Mathematics
qm_abncd Setup bilinear control problem Matrix elements of quantum operators Matrices A,B,N,C,D used in bilinear control TDSE or LvNE with dephasing, dissipation Decay rates Matlab Quantum mechanics
qm_balance Perform balancing transformation Unbalanced matrices A,B,N,C,D Balanced matrices A',B',N',C',D' Balancing controllability vs. observability n. a. Matlab Model order reduction
qm_truncate Truncate balanced representation Balanced matrices A',B',N',C',D' Truncated matrices A,B,N,C,D Truncation or singular perturbation theory dimension of truncated model Matlab Model order reduction
qm_H2model Perform H2 optimal model reduction Full matrices A,B,N,C,D Reduced matrices A',B',N',C',D' ℋ2-Optimal Model Reduction dimension of reduced model Matlab Model order reduction
qm_propa Propagation with given control fields Choose ODE solver Intermediate and final states Ψ(ti) or ρ(ti) Solving sets of coupled ODEs Matrices A,B,N,C,D Matlab Numerical Mathematics
qm_optimal Optimization of control fields Choose ODE solver Intermediate and final states Ψ(ti) or ρ(ti) Optimal control of quantum system Matrices A,B,N,C,D Matlab Optimal control theory

Applied Methods

The WavePacket software packages encompasses several different methods for solving sets of coupled ordinary differential equations (ODEs) in time. Due to the object-oriented concept and the open architecture, it is straightforward to add new classes for the implementation of further numerical schemes. The aim could/should be to evolve WavePacket into a "laboratory" for numerical quantum dynamics.

ID Name Process Step Parameter implemented by
wikidata:Q1028945 Generalized Lyapunov equation qm_balance convergence of iteration WavePacket Software
wikidata:Q3730848 Generalized Sylvester equation qm_H2model convergence of iteration WavePacket Software
wikidata:Q725944 Runge-Kutta ODE solvers qm_propa time steps WavePacket Software
wikidata:Q57604851 Quantum Optimal Control Theory qm_optimal time steps, initial guess of control fields WavePacket Software

Software used

Software package: WavePacket project at SourceForge. This document is mainly on the mature and stable Matlab/Octave version of WavePacket. Note that there is also a C++/Python version which is still in an experimental phase (but making good progress recently). Both versions come with extended Wiki pages hosted along with the respective Sourceforge repositories.

ID Name Description Version Programming Language Dependencies versioned published documented
SF.net WavePacket Numerical quantum dynamics 7.0.0 Matlab/Octave n.a. git, svn see below Wiki
SF.net WavePacket Numerical quantum dynamics 0.3.4 C++/Python Tensor, Boost.Numeric.Odeint, pybind11, numpy, matplotlib git no Wiki

Extensive documentation is also available from this scientific article:

Hardware

WavePacket should run on any hardware for which Matlab (and a licence) is available

ID Name Processor Compiler #Nodes #Cores

Input Data

All the input needed for a WavePacket simulation is encoded in a Matlab script called qm_init.m which has to be provided by the user. A large number of existing demo examples are expected to be very helpful for unexperienced users.

Essentially, the input data therein match everything given above, see sections on "Variables" and "Parameters".

ID Name Size Data Structure Format Representation Format Exchange binary/text proprietary to publish to archive
- qm_init tiny [kB] Matlab script - m-file text yes yes yes

Output Data

ID Name Size Data Structure Format Representation Format Exchange binary/text proprietary to publish to archive
- Log output: qm_xyz.out tiny [kB] - - txt-file text no no yes
- Optimal control field: F(t) medium [MB] - - mat-file binary yes no yes
- Wave functions/densities: Ψ(t),ρ(t) large [GB] - - mat-file binary yes no perhaps
- Snapshots small [MB] - - fig binary yes yes yes
- Snapshots small [MB] - - jpg binary no yes yes
- Animation small [MB] - - mp4 binary no perhaps yes

Reproducibility

Mathematical Reproducibility

Not sure what to write here

Runtime Reproducibility

Not sure what to write here

Reproducibility of Results

Not sure what to write here

Reproducibility on original Hardware

Originally developed on Windows-PCs. No changes of the results upon migrating from Win7 to Win10 and Win11. (No surprise because it is Matlab!)

Reproducibility on other Hardware

Reproducibility is ensured for Linux and iOS. (No surprise because it is Matlab!)

a) Serial Computation

b) Parallel Computation

So far, no specific efforts were taken to make WavePacket suitable for parallel computation. However, at least on multi-core-CPUs Matlab automatically uses several cores, e.g., when doing Fourier transforms or standard Linear Algebra tasks.

Transferability to

a) similar model parameters (other initial and boundary values):

The WavePacket program package comes with a choice of different model functions for

  • Kinetic energy operators T(iR,R)
  • Potential energy functions V(R)
  • Negative imaginary potentials W(R)
  • Pulse shapes for electric fields F(t)
  • (Permanent or transition) dipole moments μ(R)
  • Polarizability tensor α(R)
  • Initial quantum states Ψ(t=0)
  • System-bath-coupling Cij

If none of the provided model functions fits, the user has the choice either to write new ones or to provide tabulated data (→interpolation)

b) other models: Simulations of classical and quantum-classical dynamics also available within WavePacket using the same input, thus simulating exactly the same physical system. (This is a unique selling point)

Legend

The following abbreviations are used in the document to indicate/resolve IDs:

doi: DOI / https://doi.org/

sw: swMATH / https://swmath.org/software/

zb: zbMATH / https://zbmath.org/

wikidata: https://www.wikidata.org/wiki/ |}