Be notified of new releases
Create your free GitHub account today to subscribe to this repository for new releases and build software alongside 31 million developers.Sign up
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).
The preCICE crew
- The python modules are now proper packages tracking dependencies etc.
- Fix CMake now importable from binary directory.
- The Python module for the preCICE bindings
PySolverInterfaceis renamed to
precice. This change does not break old code. Please refer to
src/precice/bindings/python/README.mdfor more information.
- Add a pkg-config for preCICE (
- Use the Boost stacktrace library for cross-platform stacktrace printing. This requires Boost 1.65.1.
- Added explicit linking to
- 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
- Removed the
xml::Validator*classes and replaced them in
xml::XMLAttributewith a set of "options".
- Added manpages for binprecice and testprecice.
- Fixed memory leaks in
- Fixed mapping classes not flushing the underlying caches on
- 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
testpreciceand necessary files.
- Moved CMake files from
cmake/(general scripts) and
- Migrated from file-globing to explicit source/interface/test-file lists.
tools/updateSourceFiles.pyfrom project-root to update all necessary files.
- the library
- the binaries
PREFIX/binand their manfiles into
- the CMake configuration files into
- the pkg-config configuration files into
- the necessary files to run testprecice into
PREFIX/share/precice. Use this as
PRECICE_ROOTon installed system.
- the library
- CTest definition of tests run in isolated working directories:
precice.Basefor the base test suite
precice.MPI2run on 2 MPI ranks
precice.MPI4run on 4 MPI ranks
- CPack configuration of target
packageto generate binary debian, tar and zip packages.
tools/solverdummy/cpp. It is an example of how to link to preCICE with CMake.
- Extended the displayed information when configuring.
updateSourceFiles.pyto verify the sources using
git ls-files --full-nameif available.
- Fixed the
io::VTKXMLExporternot to write VertexNormals.
- Improved the user-friendliness of the tests.
make testwill run all tests.
make test_baseonly 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.