Menu

[4729d2]: / NEWS  Maximize  Restore  History

Download this file

314 lines (245 with data), 12.6 kB

Version 0.2.4:


Breaking changes:

- renamed several key classes:
	- LinearOperator       => Expression
	- SchroedingerOperator => SchroedingerEquation
	- OperatorMatrix       => EquationSystem
	- OperatorPrimitive    => Operator
	- DvrPrimitive*        => DvrOperator*
	- PrimitiveSum         => OperatorSum
	- PrimitiveProduct     => OperatorProduct
	- and various functions from *Primitive* to *Operator*
- Operator::getSpectralMin/Max() has been replaced by
  a single function OperatorPrimitive::getSpectralBounds()
- Expression::getSpectrum() has been renamed to
  Expression::getSpectralBounds()


New Features:

- Python bindings can be installed as regular Python module   (#137)
- renamed several key classes to make distinction between
  operators and expressions/equations clearer                 (#124)
- added a Projection operator                                 (#70)
- new demo that uses a projection operator to monitor
  populations and a half-finished Lindblad relaxation demo    (#70)
- new demo with explanation that shows how to deal with
  systems at fixed temperature                                (#138)


Minor issues:

- Chebychev propagators add a small safety margin to the      (#148)
  auto-determined spectral ranges.
- OperatorPrimitive now handles all representation issues,    (#145)
  derived operators do not care
- using the Plot1DObserver is far simpler now.                (#142)
  also, works with coupled states
- 2 new demos: MolElectronic/OH/1 and 2                       (#142)
  demonstrate electronic excitation using a close coupling
  grid (1) and a set of coupled states (2)


Bug Fixes:

- fixed several bugs with LoggingObserver                     (#150)
	- energies for individual electronic states were always positive
	- norms for multiple states were not applied correctly

-------------------------------------------------------------------------------

Version 0.2.3:


Breaking changes:
- writeStructuredData() has a different signature
- interpolation functions have a different signature
- renamings of some OperatorPrimitives
	Potential1D => DvrPrimitive1D
	PotentialND => DvrPrimitiveND


Bug fixes:
- Imaginary time propagation did not work as expected, because
  the wave function was never renormalized
	- added propagation filters and a "normalization" filter
	  that renormalizes the wave function
	- added a demo MorseOscillator/Bound_1D/2 for this use-case


New Features:
- more work on Python interface                                        (#130, #131)
	- conversion between numpy and tensor library
	  so that data can be easily manipulated inside python
	- prototypes for further use-cases (units etc.)
	- implemented harmonic oscillator demo
- implemented complex pump-probe demo                                  (#135)
  FemtoChem/Interferometry
	- added unit conversion for interpolation
	- added wave function generator that wraps around a given tensor
	  (e.g., an already calculated ground state)
- added a simplifyOperator() function that converts an operator        (#95)
  into a more streamlined and efficient version
  for a 20% gain if the potential is a complex multi-state potential

-------------------------------------------------------------------------------

Version 0.2.2:

Breaking changes:
- renamed some functions in the OperatorMatrix class


- added suffixes to easily use other units (eV, Angstroem etc.)
  and a new highlighted demo for that                               (#123)
- added an operator and functors for oscillating laser fields
  and updated pendular states demo to demonstrate these             (#126)
- added a prototype for a python interface                          (#117)
	- only for free particle demo for now; needs a lot more work
	- see new option Opt_BuildPython and demo 
	  FreeParticle/Gaussian_1D/1/demo.py
- sped up compilation considerably
	- OperatorMatrix no longer uses boost data types            (#103)
	- ODE solvers hide their reference to boost::odeint         (#104)
	- used cotire (COmpile TIme REducer)                        (#128)
	  see advanced compile option Opt_UseCotire (default: off)
- LoggingOutput prints too small numbers as zero
  to fix a test failure in the virtual machine image                (#127)


-------------------------------------------------------------------------------

Version 0.2.1:

Breaking changes:
- RedfieldBuilder is now called RedfieldFactory and works differently


- added a script "wp-build.sh" to simplify the compilation of own programs 
  and a tutorial for that (#73)
- added a HarmonicOscillatorFactory to simplify setup of harmonic oscillator operators,
  in particular Hamiltonians and raising and lowering operators (#106)
- added Mecke dipole function
- added Morse oscillator demo (#58)
- cleanup of the RedfieldFactory; still not very usable because it requires
  correlation functions where one normally has spectral densities instead (#97)
- used demos for automated testing (#98)
- added helper function to encapsulate pi constant (#102)
- used source code checkers to fix some minor issues (#79)

-------------------------------------------------------------------------------

Version 0.2:

No breaking changes

- added plotting of the wave function (#67)
	- added a factory to set up plotting for one-dimensional wave functions
	- added a documented demo for the TDSE / TISE case
- added absorbing boundary conditions (#80)
	- added a factory to easily create negative imaginary potentials
	- added a documented demo to demonstrate this feature
- changed license to a more permissive ISC / CC0 mixture (#94)
- upgraded virtual machine image for the build (#109)
- Tests should be more reproducible now (fixed random seed) (#47)
       That should mostly fix the issue of one test always failing
- some minor code formatting cleanup (#82)

-------------------------------------------------------------------------------

Version 0.1.4:

Breaking changes:
- moved/renamed several classes and functions
	Gaussian                -> GaussianState
	Projection              -> DvrEigenstate
	LoggingOutput           -> LoggingObserver
	readTokenizedInput()    -> readStructuredData()
	readInterpolationData() -> Interpolator::createFromStream()
- functors that construct an initial state now take a grid as input, not the grid points


- #83, #89: added support for rotational problems
	- added spherical harmonics expansion                 [SphericalHarmonicsGrid]
	- added the L^2 operator for this grid                [RotationalKineticEnergy]
	- added spherical harmonic initial wave function      [FbrEigenstate]
- #90: ability to easily write out calculated values
	- added an observer to calculate expectation values   [ExpectationValueObserver]
	- added functions to write out a matrix to a file     [writeStructuredData()]
- two documented demos that demonstrate the new features      [MolRotation/*]
- #81: some code changes to speed up the build
- minor tweaks to documentation and build

-------------------------------------------------------------------------------

Version 0.1.3:

- tutorial improvements
	- new tutorials for the time-independent Schroedinger equation, general advice
	- improved/extended some other tutorials
- handling of multiple coupled channels
	- introduced CoupledChannels grid with helper operators and functors
	- logging resolves the channels
	- added a demo and a tutorial
- added class to parse command-line options and configuration files
	- added class
	- added demo with detailed instructions
- misc smaller changes
	- DoubleWell demo uses Razavy potential

-------------------------------------------------------------------------------

Version 0.1.2:

- improved Chebychev propagators:
	- you no longer have to specify the spectrum, there are safe defaults
- improved documentation:
	- moved tutorial from wiki and extended it considerably
	- added package documentations
- use CMake as build system
- added solver for the time-independent Schroedinger equation

-------------------------------------------------------------------------------

Version 0.1.1b:

- updated googletest requirements and build defaults to version 1.8
- fixed some compiler warnings
- fixed possible compiler failures in acceptance tests

-------------------------------------------------------------------------------

Version 0.1.1:

- new acceptance test:
	- usage of electric fields of custom shape
	- relaxation of a density operator to thermal equilibrium and subsequent propagation
- new demos:
	- free particle
	- 2D harmonic oscillator
- basic tutorial (Wiki on sourceforge page)
- Major propagator refactoring:
	- split into primitives to propagate one time step and Propagator, which deals with logging etc.
	- Joined propagation of single and multiple states and simplified the latter
	- separate primitives for real and imaginary time; simplified use of the latter
	- Chebychev propagator in real and imaginary time
- added functors (function-like objects)
	- interpolation as functor
	- product wave function built from functors yielding 1D wave functions
	- 1D potential operators build the potential with functors
- merged DensityManipulator and WavefunctionManipulator into a single class
- implemented an own exception hierarchy; not complete
- upgraded build process
	- require more recent version of boost; this drops one dependency
	- by default, all tests are built into a single executable
- minor fixes and improvements here and there


-------------------------------------------------------------------------------

Version 0.1:

- new working acceptance test:
	- Spin-Boson problem with Redfield dissipation
- started adding demos from old Matlab code
	- squeezed and shifted state in a harmonic oscillator
- cleaned up / improved generation of initial state:
	- StateBuilder assembles product states, pure density operators
	  from wavefunctions etc.
	- elementary generators build one-dimensional wavefunctions
	- harmonic oscillator eigenstates
	- Morse oscillator eigenstates
	- interpolation from file; setting the 1D wavefunction
- New operators:
	- RedfieldLiouvillian
	- generalized operators that takes an arbitrary matrix / tensor
	- time-dependent function
- added RedfieldBuilder to calculate the effective operators appearing in the
  RedfieldLiouvillian
- New MultiPropagators that can simultaneously propagate several states
- added observers that are automatically called every (settable) propagation time steps
	- added observer that logs norm, energy and some other expectation values
- some work to make Wavefunction/DensityManipulators more useful
- tests log some of the data; may be put to use for reproducing failures


-------------------------------------------------------------------------------

Version 0.0.3:

- new working acceptance tests:
	- Harmonic oscillator with Lindblad dissipation
	- Density propagation and Wavefunction propagation give same result
- added a builder to set up density operators as direct product states
- completely reworked how operators work; there is now a primitive that knows
  what to do with various objects and a high-level operator that determines
  the actual action (commute with a density operator or apply to a wavefunction)
- added a bunch of new operators:
	- CommutatorOperator, LindbladLiouvillian as high-level operators
	- ConstantOperator, TensorOperator as primitives
- added class to simplify transformation of wavefunctions/density operators
  between the various representation (DVR, FBR, DVR with weights)
- added Makefile target and structure for doxygen documentation
- slightly simplified the Makefile configuration; fixed a few linker issues
- shifted a few files, beautification and simplification of the code/tests etc.


-------------------------------------------------------------------------------

Version 0.0.2:

- implemented multi-dimensional grids
- introduced weighted DVR as new representation; this obsoletes the
  direct exposure of the DVR weights
- a couple of new operators:
  harmonic oscillator, momentum operator, coordinate operator
- added addition and summation of operators
- added a wave function builder that generates a Gaussian initial state
  and can build a tensor product of one-dimensional wave functions
- an acceptance test of a coherent state in a 2D harmonic oscillator


-------------------------------------------------------------------------------

Version 0.0.1:

- Initial release
- an FFT-based Cartesian grid
- a kinetic energy operator for said grid
- a propagator employing standard ODE solvers
- an acceptance test that propagates a free particle
Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.