h5. What and Why
This is a followup issue for [#95]. In this issue, some things have been left out because they turned out to be too complex and the design deviated too much from the original quick shot that some more thinking seemed appropriate.
In particular, there are three things that could be done further when inspecting complex operators and simplifying them:
- Constant operators (i.e., constants) are currently not merged with anything else, although such a merge would be rather straight-forward. The main reason was that a constant can be complex, while the potential-like operators that we do merge consist of real values. There are various possibilities, for example separating constants with real values and merging them, or making potentials generally complex. The use cases, best option and performance gains are not entirely clear.
- it should be checked if always replacing DvrPrimitive1D by a DvrPrimitiveND makes sense performance-wise. There are pros and cons, my guess is not, but that needs some checking.
we could also try to combine FBRPrimitives, i.e., operators that apply a potential in the FBR. The main gain here could stem from doing combined dvr/fbr transformations, e.g., an N-dimensional Fourier transformation instead of N one-dimensional ones. Needs to be checked and, if so, implemented. Should be part of [#183]
Note: Check also for the different use-cases wave function vs. density operator.
Diff:
Related
Tickets:
#183