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 |