|
From: Ulf L. <ul...@wa...> - 2016-06-04 21:19:59
|
Hi,
with Wavepacket freshly released, I wanted to discuss the items for the
next version. You are all welcome to agree or disagree with any of the
points I raise here, and to priorize them, even if you do not implement
them. :) You can also suggest your own priority items.
Two overarching ideas:
First, I originally had the idea of first fixing the framework ("alpha"
phase), then adding documentation and content ("beta" phase) and
finally having a useful program. I would like to slowly digress from
this plan. The reason is that, assuming moderate coding skills, the
current code is already useful for certain problems, and I would like
to see it adopted.
Second, I would like to use a model where we have a few big topics to
tackle, and when we have done something like three of them, we release.
Now the ideas:
* Add direct diagonalization of a Hamiltonian.
Ideally, this should also be folded into a "pseudo propagator"; if
we manage to do so, the propagator scheme should be sufficiently
general to work with everything we throw at it later.
* Add basic operator algebra and manipulations
The idea would be to be able to browse through a sum/product of
simple operators and manipulate them. Low-hanging fruits would be to
combine similar evaluations (e.g., multiple potentials) into a
single one. Other issues are the manual truncation of potentials /
kinetic energies, and the preparation of functions of operators
(which we need for the split operator scheme)
* Cleanup of Chebychev propagators.
Besides tickets 59, 61, this includes everything that makes the use
of Chebychev propagators incomfortable.
* Build system upgrade
That has been around for a while. Upgrade the build system to CMake.
Along the way, build a dynamic library instead of a static one, add
a deploy target, and maybe reduce dependencies (at the least the
ones a user needs to compile against the library). The far goal
would be to finally provide binary packages instead of requiring the
user to compile everything from scratch.
* Upgrade/move the tutorial.
Ticket 63. Basically, the code can already do a lot of nice things,
these need examples for documentation, preferably with a
well-integrated documentation.
* Add graphical output.
We already did a scan a while ago, and wanted to use MathGL. The
first step here would be to add it as an (optional!) dependency, and
create a simple plotting observer. It may be restricted to one
dimension and whatnot, the goal is to lay down the infrastructure
for graphical output.
Ulf
|