preCICE v2.5.0 Release Notes
-
- ➕ Added 3D support to Linear Cell Interpolation mapping (
<mapping:linear-cell-interpolation >/
) using tetrahedra. (https://github.com/precice/precice/pull/1337) - Added C and Fortran bindings for setMeshTetrahedron (
precicec_setMeshTetrahedron
andprecicef_set_tetrahedron
). (https://github.com/precice/precice/pull/1382) - ➕ Added a clang-tidy CI and enforced the updated clang-tidy format. (https://github.com/precice/precice/pull/999)
- 🔖 Added a new interface file
precice/Version.h
, which provides version macrosPRECICE_VERSION_MAJOR
,PRECICE_VERSION_MINOR
,PRECICE_VERSION_PATCH
as well as the stringified versionPRECICE_VERSION
. Use the convenience macroPRECICE_VERSION_GREATER_EQUAL(2,4,0)
to check for compatibility.SolverInterface.hpp
andSolverInterfaceC.h
now includeVersion.h
to simplify macro usage on older version lacking the header. (https://github.com/precice/precice/pull/1392) - ➕ Added checks during the establishment of inter-participant communication in order to safeguard against common issues. (https://github.com/precice/precice/pull/1290)
- ➕ Added checks of MPI ports functions and descriptive error messages. (https://github.com/precice/precice/pull/1292)
- ➕ Added default network interface for BSD-flavored operating systems. (https://github.com/precice/precice/pull/1332)
- ➕ Added pre-commit configuration, which drastically simplifies contributing. Required formatting tools will now be installed by pre-commit. (https://github.com/precice/precice/pull/1359)
- ➕ Added support for "Linear Cell Interpolation" data mapping in 2D. (https://github.com/precice/precice/pull/1297)
- ➕ Added success statement to
precice-tools check valid-config.xml
, which used to output nothing. ((https://github.com/precice/precice/pull/1406) - ➕ Added support for polynomial="separate" and polynomial="off" for Eigen based RBF mappings (use-qr-decomposition="true"). (https://github.com/precice/precice/pull/1335)
- ➕ Added support for tetrahedral meshes with
setMeshTetrahedron
. (https://github.com/precice/precice/pull/1314) - ➕ Added support for triangles in 2D meshes. (https://github.com/precice/precice/pull/1286)
- ➕ Added support in VTK and VTU exporters for exporting tetrahedral elements. (https://github.com/precice/precice/pull/1314)
- Added support to export gradient data in VTK exporting. Scalar gradients are written to a vector
<ScalarDataname>_gradient
(v0_dx,v0_dy,v0_dz,v1_dx ...
), vector gradients are written to multiple vectors<VectorDataname>_dx/dy/dz
(v0x_dx,v0y_dx,v0z_dz, ...
). (https://github.com/precice/precice/pull/1315) - ➕ Added support to export gradient data in XML based exporting, VTU, VTP. (https://github.com/precice/precice/pull/1340)
- ➕ Added tetrahedron communication. (https://github.com/precice/precice/pull/1325)
- 🏗 Added the
PRECICE_BUILD_TOOLS
(ON by default) CMake variable in order to enable/disable the generation of theprecice-tools
executable. (https://github.com/precice/precice/pull/1344) - 🔄 Changed behavior of "Watchpoints" to look for cell interpolation instead of boundary interpolation, if possible. (https://github.com/precice/precice/pull/1361)
- 🗄 Deprecated API functions
isReadDataAvailable()
andisWriteDataRequired()
to simplify implementation of waveform iteration. (https://github.com/precice/precice/pull/1224) - 🛠 Fixed a bug leading to large whitespace sections in logs when using MPI ports. (https://github.com/precice/precice/pull/1292)
- 🛠 Fixed data type of 'uint' to compatible 'unsigned int' type in RBF test. (https://github.com/precice/precice/pull/1298)
- 🛠 Fixed erroneous behavior of first-participant timestepping in compositional coupling schemes. (https://github.com/precice/precice/pull/1307)
- 🛠 Fixed inconsistency between
writeVectorGradientData
andwriteBlockScalarGradientData
and cleaned-up doxygen documentation of gradient API functions. (https://github.com/precice/precice/pull/1302) - 🛠 Fixed the API function
isGradientDataRequired
to behave as documented. (https://github.com/precice/precice/pull/1295) - 🛠 Fixed the git revision detection picking up revisions of super-projects. (https://github.com/precice/precice/pull/1398)
- 🛠 Fixed the triangle-to-point distance calculation leading to erroneous projections in corner cases of the nearest-projection mapping. (https://github.com/precice/precice/pull/1395)
- 👌 Improved efficienty of mesh filtering and communication. (https://github.com/precice/precice/pull/1311)
- 👌 Improved the basis function implementation of RBF mappings for faster evaluations. (https://github.com/precice/precice/pull/1338)
- 👌 Improved the memory footprint of triangles in meshes. (https://github.com/precice/precice/pull/1311)
- 👌 Improved the runtime of the Eigen based RBF matrix assembly (use-qr-decomposition="true"). (https://github.com/precice/precice/pull/1320)
- Passing
nullptr
to theSolverInterface
ascommunicator
is now forbidden. Use theSolverInterface
constructor without thecommunicator
argument, if you don't want to provide a custom MPI communicator. (https://github.com/precice/precice/pull/1261) - 🔨 Refactored RBF mappings to share a common base class (https://github.com/precice/precice/pull/1279)
- 🔨 Refactored RBF system assembly and RBF system solving into a dedicated class. (https://github.com/precice/precice/pull/1319)
- 🔨 Refactored mapping class interface into mapConsistent and mapConservative. (https://github.com/precice/precice/pull/1301)
- Removed argument 'rowsFirst' in
writeVectorGradientData
andwriteBlockVectorGradientData
. The functions have now the signaturewriteVectorGradientData( int dataID, int valueIndex, const double *gradientValues)
with the gradient format(vx_dx, vy_dx, vx_dy, vy_dy)
.writeBlockVectorGradientData
allows to pass data for multiple vertices point-wise in the same format. (https://github.com/precice/precice/pull/1302) - ✂ Removed restriction to only use 5 iterations in the
RS_LS
restart mode of the IQN-IMVJ acceleration method. (https://github.com/precice/precice/pull/1257) - ✂ Removed the explicit gradient data flag (
<data: ... gradient="on" />
) for nearest-neighbor-gradient mapping. The gradient data requirement is now deduced automatically by preCICE. (https://github.com/precice/precice/pull/1371) - 📇 Renamed preCICE's
master
branch tomain
branch. (https://github.com/precice/precice/pull/1385) - ⬆️ Upgraded fmt to 9.0.0, json to 3.11.1 and tcbrindle span. (https://github.com/precice/precice/pull/1396)
- ➕ Added 3D support to Linear Cell Interpolation mapping (