From: Ulf L. <ul...@wa...> - 2020-07-30 22:33:33
|
Hello everyone, I assembled a new release for the C++ version that may deserve some comments. After a discussion with Burkhard, we identified Matlab as a problem; many people do not have access to it, e.g., for classroom teaching. As a consequence, we will slowly investigate porting to GNU Octave (or rather refactoring the Matlab version to also run under Octave). I will also focus the C++ development to provide most functionality of the Matlab version. With the Python interface, and adding a Windows build, this should be another alternative. The first release in this direction ended up with a strong focus on refactoring. * Improved the build Dropped some dependencies, automatically downloaded others, improved CMake code. With some more tweaks, this should make a soon-ish Windows build way easier, though I am not quite there yet. * Removed Manipulator class This class held functions whose implementations differ between wavefunctions and densities (such calculating the trace). It was a poor class, so it was now split into a collection of functions. Added some functionality like applying a projection or calculating the standard deviation of an operator. * Gutted (1D) grid classes. Grid classes now only contain the DVR grid points, values associated with the FBR (e.g., momenta for PlaneWaveGrid) weights, and create a default DVR <-> FBR transformation. These transformations are encapsulated in new Transformation classes. The main gain here is that a whole class of operators (diagonal in the FBR) can be identified, which should come in handy when I try to exponentiate them. * Finally, there are some smaller additions, fixes etc. - new operators Interval1D and TaylorSeries1D - rectangular electric field envelopes - new initial states PlaneWave and SphericalHarmonic - some fixes in the logging output (state was not normalized always before calculating expectation values) Ulf |