To avoid boundary effects (in real or momentum space) you typically need larger grids than strictly required for the wave function of interest. This usually leads to potentials or kinetic energies that are far larger than the energies that you are interested in.
Such large energies correspond to dynamics on short time scales. Hence, these principally irrelevant dynamics generally require shorter propagation times than you would normally need. An example is the Chebychev propagator, whose efficiency is inversely related to the spectral range of the Hamiltonian.
One way out of this problem is a truncation of the Hamiltonian: You simply cut off the energies at some point. This issue is about implementing such a truncation.
In principle, you only need to add the ability to truncate the spectrum to (most) operators. This should be straight-forward in most cases except for two problems:
Simple truncations have been implemented as part of [#177]. While this is done only on the single-operator level, a generic augmentation to arbitrary sums and products is difficult; it is not even clear or unique, what "truncation the spectrum to some interval" actually means there.
In general, the smarter way would be to have the user compress operators based on the actual maths, then truncate the compressed operators.
Diff:
Diff:
Related
Tickets:
#177