=================
= ESPRESSO NEWS =
=================

ESPResSo 3.3
============

New user-visible features
-------------------------

* SHANCHEN: a bicomponent lattice Boltzmann fluid, with support for rigid 
  boundaries and coupling to particle dynamics.

* ELECTROKINETICS: An algorithm to treat species of ions on a mean-field
  level. Implementation takes advantage of a GPU.

* MMM1D_GPU: The mmm1d electrostatics algorithm is now available as GPU version.

* Support of P3M on GPU.

* Provide the preliminary Python interface. Configure with
  --with-python-interface.

* Allow the p3m to dump the mesh in x, y, and z (before it only dumped
  the mesh in x). This allows for the dumping of the p3m in blockfile
  format in the case of non-cubic boxes. It will also now be possible
  to tune the settings of a non-cubic mesh.

* Stomatocyte lb-boundary and constraint implemented.

* MEMD electrostatics can now handle spatially varying dielectrc
  constants.

* Pore constraint / lbboundary can have a two outer radii now to create nozzles.

* Slitpore constraint and dielectric for IL based supercaps implemented.

* New command time_integration to get the runtime of the integration
  loop.

* New harmonic well that runs on the GPU.

Known bugs
----------

* The implementation of dielectric contrasts in conjunction with ELC
  seems to have an error. Please do not use it if you do not know
  exactly what you are doing until we have fixe the problem.

User-visible changes
--------------------

* Added new arguments "recalc_forces" and "reuse_forces" to the
  command "integrate". These arguments can be used to enforce or
  suppress the recalculation of the forces at the beginning of the
  call to "integrate". This is important for doing checkpoints, where
  the forces have to be stored and reloaded.

* Removed command "invalidate_system".

* Comfixed now works with periodic boundary conditions.

* The pressure contribution due to rigid bodies constructed by means of the 
  virtual sites relative mechanism is included, both for pressure and stress 
  tensor. Note that the corresponding contribution for rigid bonds is still 
  not implemented.
 
* The configure option "--with-myconfig" has been removed. Instead,
  the configure variable "MYCONFIG" can be set to give the name of a
  myconfig file.

* Generic LJ can now be turned into a soft potential.

* Renamed torque to torque_{lab,body}, improved torque handling in
  blockfiles.  Clearer distinction between the reference frames for
  torque and angular momentum.

* Lattice-Boltzmann now has a additional 3-point coupling scheme.

* The noise type in thermalized Lattice-Boltzmann is now selectable via Tcl.

* Interaction with a wall can be restricted to the outside.

* Removed compiler switch GRANDCANONICAL.

* Removed outdated ADRESS code.

* external_potential tabulated to include arbitrary potentials applied to all 
  particles.

* thermostat inter_dpd ignore_fixed_particles 1 allows the user to swith on DPD 
  with fixed particles.

* New Observable concept that includes running averages and other observables 
  with history


Changes visible for developers
------------------------------

* Feature GHOSTS_HAVE_BONDS allows for ghost particles to also store the bonds.

* The code has been switched to using a C++ compiler.

* Introduced object-oriented interfaces for forces/constraints/external fields: 
  SystemInterface and Actor. 

* Improved Lattice structure

* Generic TclAppend function

ESPResSo 3.2
============

New user-visible features
-------------------------

* Added a new immersed boundaries code that allows to simulate
  extended, flexible objects in conjunction with the LB code.  This is
  described in the UG in the new chapter "Object-in-fluid".

* The script tools/blockfile2vtf.tcl can be used to convert ESPResSo
  blockfiles into VTF files.

* Two new short-ranged nonbonded potentials have been added:

  * HAT: the classical conservative DPD interaction, a simple force
    ramp.

  * GAUSSIAN: A Gaussian potential.

* The feature CATALYTIC_REACTIONS and the command "reaction" model a
  simple chemical reaction: when a particle of the reactant type comes
  into the vincinity of a particle of the catalysator type, the
  reactant is transformed into a particle of the product type.

* The feature GHMC implements a generalized hybrid Monte-Carlo
  thermostat.

* The feature GRANDCANONICAL provided functions to simplify grandcanonical
  simulations in espresso. To that end it provides functions to find and
  delete random particles of a certain type.

* Added new feature ROTATION_PER_PARTICLE that allows to choose
  whether a particle has rotational degrees of freedom or not.

User-visible changes
--------------------

* Removed non-working tools and samples.

* Bond angle potentials are now defined on the Tcl-level instead of on
  the feature-level, i.e. to choose the type of the bond-angle
  potential, you should use the corresponding Tcl command instead of a
  feature. To allow for any bond angle potential, activate the feature
  BOND_ANGLE.

* We have removed the forcecaps for the different interaction
  types. Instead, there is now a single global forcecap, plus it is
  possible to define individual forcecaps on a particle pair level.

* By default, CUDA is now automatically detected and activated when it
  is there and usable.

* The functions for galilei transformations have been overhauled and
  renamed. The old functions are deprecated.

* DPD (as thermostat) now works without any other interaction, so a pure
  DPD fluid is possible.

ESPResSo 3.1.2
==============

* Fixed bugs #38475, #37725, #36434.

* Added workaround for bug in VTF reader plugin of VMD 1.9.1 that made
  all particles look the same when ELECTROSTATICS is turned on.

* Added Tcl-scripts of the tutorials to the distribution.

* Added forgotten part of the UG on the correlators.

* Removed buggy readline code tclline.tcl. Fixes #36432.

* Removed Ewald code from ESPResSo that never worked and was never
  documented.

ESPResSo 3.1.1
==============

* The Espresso binary now outputs the header to STDERR instead of STDOUT.

* Fixed bugs #36431, #37120, #37214, #37374, #37306, #35767.

* Fixed generation of myconfig-sample.h.

* Fixed AdResS example.

* Added new logo.

* The documentation sources are now left out of the distribution
  package, only the PDF files are included. This fixes problems when
  calling "make doc" in a distribution package (#35958).

ESPResSo 3.1.0
==============

New user-visible features
-------------------------

* While so far, observables were typically computed and stored on the
  Tcl-level after a call to "integrate", a new observable concept now
  allows to compute observables while the C-core is running. This is
  particularly useful for observables that have to be computed very
  frequently, as for example in the case of time-correlations
  (e.g. the RMSD of particles).
  The new concept is documented in the User's Guide in Section 8.4
  ("Correlations and observables").

* The new feature COLLISION_DETECTION allows to dynamically add new
  bonds between colliding particles.

* Added new feature LANGEVIN_PER_PARTICLE that allows to set the
  Langevin parameters temperature and gamma per particle.

* Added new constraint and LB boundary condition "rhomboid".

* Lattice-Boltzmann:

  * nonzero velocity boundary conditions are available

  * forces on boundaries can be calculated

  * wall constraints work

* Added basic tutorial on Lennard-Jones liquid, made second tutorial
  (simple charged systems) better available (all in doc/tutorials/)

* The ICC* algorithm is now ready to use. It is used with the command
  "iccp3m" and allows to take into account dielectric boundaries of
  arbitrary shape. The command "dielectric" allows to create the
  boundaries in a similar fashion as constraints and lbboundaries.

User-visible changes
--------------------

* The blockfile C-library has been removed. In theory, there was a
  library usable from C that could be used to read and write
  blockfiles. Since several years, it was broken, so apparently it
  wasn't used anyway.

* The NPT barostat now works in many more combinations of
  algorithms than so far (e.g. MMM2D, ELC, ...)

* The Lattice-Boltzmann CPU implementation now works when Verlet lists
  are used.

* Removed unneccessary overhead of neutral particles in simulations
  with P3M.

* Removed unneccessary overhead of activated but ununsed interaction
  features.

* Some changes in the Verlet list construction yield a performance
  gain of up to 90% in systems where the interaction ranges differ
  significantly, or where some particle types do not interact at all
  (phantom particles).

* Renamed Coulomb method maggs to MEMD (inter coulomb maggs => inter
  coulomb memd).

Changes visible for developers
------------------------------

* code_info does now not only show the main package version, but also
  the exact git commit id and whether or not the code was modified
  ("dirty"). Also, the distribution package provides this information.

* The various features are now defined in the file
  src/features.def. From this file, a couple of Python scripts
  automatically generate myconfig-sample.h and what was config.h and
  config.c. Also, this allows to check whether all features are
  documented, tested and defined.
  Note that due to this change, ESPResSo development now requires
  Python.

* The domain decomposition, P3M, LB and MEMD now use MPI cartesian
  communicators. This will hopefully speed up the simulations on some
  platforms.

* Split interaction code into .c and .h files.

* Split off the Tcl interface (into src/tcl/) from the C core code (in
  src/)

* Added ESPResSo logos, cover issue images, and some other material to
  the repo (doc/).

* Started new LaTeX-Developer's Guide (DG), and moved all "Related
  pages" from the doxygen docs. The doxygen stuff still exists and is
  available via doc/doxygen/.

ESPResSo 3.0.2
==============

* Fixed features ADRESS and VIRTUAL_SITES_COM that did not work for a while.

* Fixed bugs #33489, #34238.

* Fixed a few bugs that were never reported via the bug tracker,
  mainly in the documentation.

ESPResSo 3.0.1
==============

* Fixed bugs #33375,#33376,#32005

* Fixed a few bugs that were never reported via the bug tracker.

ESPResSo 3.0.0
===============

User-visible changes
--------------------

* The Lattice-Boltzmann implementation in ESPResSo has been
  significantly overhauled and it has been documented for the first
  time.

* A CUDA implementation for NVIDIA GPUs of the Lattice-Boltzmann
  algorithm is included.

* The Maggs algorithm (or Maxwell Equation Molecular Dynamics, MEMD)
  for computing electrostatic interactions has been included and
  documented. The algorithm is a fast and scalable alternative for P3M
  or other such algorithms.

* The P3M algorithm for electrostatic and dipolar (magnetostatic)
  interactions has been extended.

  * Electrostatic P3M allows for non-cubic boxes.

  * The electrostatic P3M pressure tensor is computed correctly now.

  * Dipolar P3M has been parallelized (electrostatics P3M was
    parallelized already!)

  * The MDLC method (magnetic dipolar layer correction) has been
    parallelized.

* The virtual sites feature has been significantly extended and
  documented.  Virtual sites are particles that can interact with
  other particles but whose positions are not integrated via the
  normal integrator.  Instead, the positions are determined by the
  positions of other, "real" particles.  Virtual sites can either be
  set into the center of mass of a set of real particles (feature
  VIRTUAL_SITES_COM), or it can be set to an arbitrary location
  relative to another particle (VIRTUAL_SITES_RELATIVE).  This allows
  to create rigid structures within ESPResSo.

* The User's Guide has been significantly updated and extended.

* Some constraints can now be made penetrable and reflecting.

* "Espresso" is now the actual binary instead of a wrapper shell
  script that automatically calls MPI. This means that it is necessary
  to call "mpiexec" or "mpirun" youself to run ESPResSo in an MPI
  environment.

* The directory where the scripts are installed is now compiled into
  the binary, i.e. it is not necessary anymore to set the environment
  variable ESPRESSO_SCRIPTS. Still, it will heed the environment
  variable if it is set.

* The build system has been overhauled and simplified.

  * Running "make check" will run the testsuite with a single number
    of processors, which gives a significant speedup. "configure" will
    try to determine the available number of CPUs/cores. If it can't,
    it will use 1 by default.

  * MPI recognition has changed. The build system first needs to find
    out how to compile an MPI binary. If it doesn't find out
    automatically, you can help it by setting the variable MPICC or
    LDFLAGS correctly.  Furthermore, it needs to know how to run an MPI
    binary.  If "mpiexec" is available, everything is fine.  If it is
    not, you can provide a script "mympiexec.sh" that behaves like
    mpiexec.

  * So far, when you built in the source directory, all files ended up
    in a subdirectory "obj.XXX", where XXX was some description of the
    processor you used.  This non-standard behavior has been removed.
    Instead, the files are generated directly in the source directory
    when compiling there.
    If you want to compile several binaries from a single source
    directory, you can use build directories as described in the
    User's Guide.

* A number of functions have been deprecated, as they are not
  maintained anymore. Plase do not use them in your code and replace
  them with appropriate alternatives if you use them in your code!
  The following functions are deprecated:
  checkpoint_*, polyBlock*, calcOb*, calcObs*, plot*, polyConf*

* FFTW2 is no longer supported.

Organizational changes
----------------------

* The home page of ESPReSso has been relocated to

    http://espressomd.org

* The mailing list and source code repository have been moved to GNU
  Savannah. Furthermore, we have a bugtracker now. The development
  homepage is 

    https://savannah.nongnu.org/projects/espressomd

* The maintenance of ESPResSo has been relocated from Torsten Stühn
  from the Max-Planck-Institute for Polymer Research at Mainz to 

    Olaf Lenz <olenz@icp.uni-stuttgart.de>

  from the Institute for Computational Physics at Stuttgart University.

* The old "ESPResSo license" was removed, as it was not really a
  license, but only contained additions that were either non-binding
  or already contained in the GPL.

* The license was upgraded to GPLv3.

* The package was adapted to GNU standards. RELEASE_NOTES was moved
  aside to old/RELEASE_NOTES, instead, we will have the files
  ChangeLog and NEWS. NEWS will contain a description of the most
  noteworthy changes since the last release.

Changes visible for developers
------------------------------

* The source code repository has been moved from CVS to git, and it
  has moved to GNU Savannah (see above) and github. The main
  development code repository is

    https://github.com/espressomd/espresso

* We have an automated build server (Jenkins) at 

    http://espressomd.org/jenkins/ 

  that automatically builds and checks the ESPResSo package whenever
  new code is pushed to the main development repository.  Every night,
  a number of additional tests are performed

* The .c/.h/.cu source files have been moved to the subdirectory
  src/. The Espresso binary is still placed in the top-level build
  directory. myconfig.h may be placed eitther in the src/ or top-level
  dirs.

* The automatically generated files configure and Makefile.in are not
  part of the repository anymore.  A developer can generate them using
  the command "bootstrap.sh", which requires the GNU autotools
  (autoconf and automake).

* All functions that represent the interface to Tcl should follow the
  same naming conventions. These are described here:

    git log 3d4d6f31655a8d96e47c8f80e10f27f6b764f8df

* Adding a new MPI function to communication.c has been significantly
  simplified. It is enough to add the function in the C file at a
  single location.

========================================================================
For older changes to ESPResSo, see ./old/RELEASE_NOTES.

========================================================================
Copyright (C) 2010,2011,2012,2013,2014 The ESPResSo project

Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved.  This file is offered as-is,
without any warranty.
