When taking the matrix exponential of an Hermitean matrix M (for example to compute the time evolution operator from the Hamiltonian of a closed system) it is sometimes faster to first diagonalize the matrix M = V D V^{dagger} and then exponentiate the diagonal matrix D (which is given by exponentiating the diagonal elements) instead of using the built-in method in scipy expm directly on the matrix M.
Since fixed-step solvers are meant to work for arbitrary generators (even ones that cannot be diagonalized) but this method is faster for diagonalizable generators (in particular anti-hermitian), then it would be worth adding this implementation as an option for the user and to choose this option automatically in some higher level interfaces (e.g. when using a Solver instance that only has Hamiltonian information).
There is an open issue which aims at implementing this feature here
Deliverables
Implement the feature for Qiskit dynamics through a PR.
Mentors details
Mentor 1
Name: Mirko Amico
GitHub ID: @miamico
What they do: Qiskit Researcher
Number of mentees
1
Type of mentees
Mentee 1
Required:
Good knowledge of Python.
Some knowledge of quantum systems dynamics
Nice to have:
Experience in numerical methods for quantum system dynamics
Description
When taking the matrix exponential of an Hermitean matrix
M
(for example to compute the time evolution operator from the Hamiltonian of a closed system) it is sometimes faster to first diagonalize the matrixM = V D V^{dagger}
and then exponentiate the diagonal matrixD
(which is given by exponentiating the diagonal elements) instead of using the built-in method in scipyexpm
directly on the matrixM
.Since fixed-step solvers are meant to work for arbitrary generators (even ones that cannot be diagonalized) but this method is faster for diagonalizable generators (in particular anti-hermitian), then it would be worth adding this implementation as an option for the user and to choose this option automatically in some higher level interfaces (e.g. when using a Solver instance that only has Hamiltonian information).
There is an open issue which aims at implementing this feature here
Deliverables
Implement the feature for Qiskit dynamics through a PR.
Mentors details
Number of mentees
1
Type of mentees