Skip to content

Releases: precice/precice

v1.4.1

24 Apr 07:15
143b6e5
Compare
Choose a tag to compare

Bugfix release for a bug during re-partitioning that appeared for the OpenFOAM adapter and parallel ranks that are not located at the interface. In principle, the fixed problem can also appear for other adapters, but we did not observe this before. See also issue #353.

v1.4.0

07 Mar 01:01
b2b33b1
Compare
Choose a tag to compare

preCICE Release v1.4

Dear preCICE users,

We are happy to provide you with a brand new preCICE release.

For this one, we sweat quite a bit, but it is an important one for making preCICE a sustainable software project in the long run.

In the last months, we worked a lot on improving building and packaging of preCICE. At the core of all this, we changed building from SCons to CMake. CMake also has its flaws, but it is simply the quasi-standard and, thus, simplifies many other things. One of these things is packaging: With this release, we provide you, for the first time, with Debian packages. So, if you are using Ubuntu 18.04 or newer, installing the new preCICE version is only a few clicks away. For all other users, building with CMake is also very easy. Last, we currently still support SCons, but we will drop it eventually.

In case you build yourself, we now require at least Boost version 1.65.1 (available already in Ubuntu 18.04).

Properly configuring the preCICE installation process also had an influence on adapters. We collected important information in the wiki to make this step for your inhouse codes as easy as possible. We already ported the official adapters to the new building scheme. For the OpenFOAM adapter, any building variant of preCICE should work for now, but please consider using CMake (or binary packages) from now on. For the CalculiX adapter, we only support cmake from now on (of course, you can still use older versions for the moment). For the SU2 adapter, there are still last things we will fix during the next days.
If you face any issues please let use know.

For our Python users: We changed the name of our bindings. From "PySolverInterface" to the much simpler "precice". The old bindings are deprecated, but still working. With preCICE v2.0, we also want to port the main API and all other bindings to the new naming scheme.

For our Fortran users: We extended the bindings to all API functions, both the f90 and the f2003 ones. The f2003 bindings, though, are still experimental. Again, let us know if you face any issues.

We also fixed many bugs and did small improvements at various places. For example, the initialization of the nearest-projection mapping is much faster now. For more details, please look at the changelog below (btw, the longest we ever had).

Happy coupling,
The preCICE crew

Changelog

  • The python modules are now proper packages tracking dependencies etc.
  • Fix CMake now importable from binary directory.
  • The Python module for the preCICE bindings PySolverInterface is renamed to precice. This change does not break old code. Please refer to src/precice/bindings/python/README.md for more information.
  • Add a pkg-config for preCICE (libprecice.pc).
  • Use the Boost stacktrace library for cross-platform stacktrace printing. This requires Boost 1.65.1.
  • Added explicit linking to libdl for boost::stacktrace.
  • Reimplemented the internals of the nearest-projection mapping to significantly reduce its initialization time.
  • The EventTimings now do a time normalization among all ranks, i.e., the first event is considered to happen at t=0, all other events are adapted thereto.
  • The old CSV format of the EventTimings log files, split among two files was replaced by a single file, in structured JSON format.
  • Fixed memory leaks in the xml::XMLAttributes and xml::Validator*.
  • Removed the xml::Validator* classes and replaced them in xml::XMLAttribute with a set of "options".
  • Made xml::XMLAttribute and xml::XMLTag chainable.
  • Added manpages for binprecice and testprecice.
  • Fixed memory leaks in mesh::Mesh.
  • Fixed mapping classes not flushing the underlying caches on clear().
  • Fixed format of version logging (first preCICE log message).
  • Added tolerance of iterations in quasi-Newton tests.
  • CMake overhaul:
    • Converted to target-based system: precice, testprecice, binprecice
    • New options:
      • PRECICE_Packages (default ON) to configure CPack,
      • PRECICE_InstallTest (default ON) to configure installation of tests.
        This includes the binary testprecice and necessary files.
        Use PREFIX/share/precice as PRECICE_ROOT.
    • Moved CMake files from tools/cmake-modules to cmake/ (general scripts) and cmake/modules (find modules).
    • Migrated from file-globing to explicit source/interface/test-file lists.
      Use tools/updateSourceFiles.py from project-root to update all necessary files.
    • install target installs:
      • the library PREFIX/lib.
      • the binaries PREFIX/bin and their manfiles into PREFIX/share/man/man1.
      • the CMake configuration files into PREFIX/lib/cmake/precice.
      • the pkg-config configuration files into PREFIX/lib/pkgconfig
      • the necessary files to run testprecice into PREFIX/share/precice. Use this as PRECICE_ROOT on installed system.
    • CTest definition of tests run in isolated working directories:
      • precice.Base for the base test suite
      • precice.MPI2 run on 2 MPI ranks
      • precice.MPI4 run on 4 MPI ranks
    • CPack configuration of target package to generate binary debian, tar and zip packages.
    • Added CMakeLists.txt to tools/solverdummy/cpp. It is an example of how to link to preCICE with CMake.
    • Extended the displayed information when configuring.
  • Extended updateSourceFiles.py to verify the sources using git ls-files --full-name if available.
  • Fixed the io::VTKXMLExporter not to write VertexNormals.
  • Improved the user-friendliness of the tests.
    • make test will run all tests.
    • make test_base only a unproblematic base-set.
    • A timeout will kill hanging tests.
    • All tests sets run in isolated working directories.
  • Added an (experimental) Fortran 2003 solver dummy.

v1.3.0

15 Nov 13:09
Compare
Choose a tag to compare

Dear Users,

We are happy to provide you with a new release of preCICE.

This release features as the main (user visible) changes:

  • Update of build procedure for python bindings (see precice/src/bindings/python/README.md for instructions). Note: you do not have to add PySolverInterface.so to PYTHONPATH manually anymore, if you want to use it in your adapter. Python should be able to find it automatically.
  • Make naming of log files consistent, following the pattern precice-SOLVERNAME-logtype.log, example: precice-FLUID-eventTimings.log
  • Enable boost.geometry based preallocation. Speeds up initialization of PetRBF based mapping.
  • Actions can now specify a MeshRequirement, such as the ScaleByAreaAction.
  • Many events have been reworked and are now uniformly named.
  • There is a syncMode for events (for detailed performance measurements), configurable and off by default.

v1.2.0

01 Aug 12:33
083f25a
Compare
Choose a tag to compare

Dear users,

We are happy to provide you with a new release of preCICE.

A small, but necessary change on our side might have a critical influence on your side: We renamed src/precice/adapters to src/precice/bindings, to avoid any confusion with solver adapters. If your code uses the Fortran, the C, or the Python API of preCICE, you might need to update this path in the building routines of your code. We already updated this for the CalculiX adapter, but this means that the newest preCICE only works with the newest CalculiX adapter and vice versa.

Further changes:

  • Sending data is now fully asynchronous, so that the sending participant never waits for the receiving one. This has in particular a huge efficiency benefit for uni-directionally coupled cases.
  • We made polynomial=separate the default setting for PetRBF. This makes PetRBF more robust and more efficient.
  • Building with scons: python=off is now default.
  • Building with scons: We added a new optional keyword libprefix in the scons building process. This allows to specify non-standard library paths for the dependencies.
  • Building with Conda (experimental): The helper scripts are now placed in the directory tools/conda_building. All the terms referring to Anaconda have been changed to Conda.
  • We removed the deprecated ExportVRML functionality.

Happy coupling,
The preCICE Team

v1.1.1

19 Apr 14:40
Compare
Choose a tag to compare

Bugfix release for a bug in SConstruct build file that was discovered right after the last release. It fixes SConstruct symlink build target failing when using lowercase build (debug, release) names.

v1.1.0

18 Apr 12:30
Compare
Choose a tag to compare

The complete changelog can be found at GitHub [1], for an exhaustive list of changes, please refer to the commit log [2].

Changes most relevant include:

  • The Radial Basis Function mapping code, based on PETSc, supports using a separated linear polynom also in the conservative case. This helps to improve conditioning of the system matrix, without harming accuracy, for more information see [3].

  • The parsing code of the XML configuration now uses libxml2 for parsing. This removes a burden of maintaining a lot of old legacy code from us. It also adds libxml2 (resp. libxml2-dev for building) as a dependency. Since this library is fairly standard, it is likely already installed on your system.

  • The staticlib and bin targets will not be built by default anymore. This will improve build time for the default options. If you require a static library, use 'scons [...] staticlib bin symlink'

  • Experimental support for building with the Conda package manager, for more information see [4].

  • 'mpicxx' is now the standard setting for the compiler option for SCons.

  • If you are using GCC, at least version 5.0 is now required.

  • We also add experimental support for building with CMake.

Currently we are experiencing some issues with OpenMPI MPI Ports functionality on recent versions, i.e. the communication method when <m2n:mpi[...] /> is configured. We are happy for feedback on that issue. As a work around use <m2n:sockets [...] /> communication.

Thanks for all your feedback and happy coupling!

The preCICE Developer Team

[1] https://github.com/precice/precice/releases

[2] https://github.com/precice/precice/commits/master

[3] 1. Lindner, F., Mehl, M. & Uekermann, B. Radial basis function interpolation for black-box multi-physics
simulations. in VII International Conference on Computational Methods for Coupled Problems in Science and Engineering
(eds. Papadrakakis, M., Schrefler, B. & Onate, E.) 1–12 (2017).

[4] https://github.com/precice/precice/blob/develop/tools/anaconda_building/README.md

v1.0.3

08 Mar 04:21
Compare
Choose a tag to compare

Backported compilation fix for boost 1.66.

See issue #93

v1.0.2

11 Jan 16:20
Compare
Choose a tag to compare

This patch fixes a bug we observed in the mesh repartitioning for plane-like coupling interfaces and small gaps between both sides.

v1.0.1

22 Dec 08:24
Compare
Choose a tag to compare

This patch level release fixes a compilation issue with the python interface. No other changes from the previous v.1.0.0 release.

v1.0.0

09 Nov 14:22
Compare
Choose a tag to compare

After several years of working with continuous integration, we decided to come back to a semantic versioning to handle the increasing numbers of users and their requests. For this first new release, we decided to boil preCICE down to the features that our users actually use, leaving out older not thoroughly tested features (such as the geometry interface or the file communication). On the other side, all included features have been ported to the new parallelization scheme, such that the old server mode can be regarded as deprecated. At the same time, we have added many checks to prevent false user input and make preCICE fully usable for non-developers.
Btw, we also have a new logo:
precice