Issues and incompatibilities ============================= Various difficulties can be encountered when compiling ``tetmag``. These issues are not necessarily directly due to the ``tetmag`` software, but may result from its dependencies and their intercompatibility. Here we discuss a few known issues and how to resolve them. VTK-9.0.3 --------- Depending on the compiler that is being used, the release number 9.0.3 of the VTK library can be problematic. The issue has been discussed `here `_ . Some C++ compilers implicitly include the missing header, while others complain. .. image:: ../issues/vtk9-0_missing_header.png To resolve this problem, we suggest installing a more recent version of `the VTK library `_. CUDA-12.5 --------- Using version 12.5 of the CUDA toolkit, the ``tetmag`` compilation fails with an error described `in this link `_. The problem is apparently due to `Thrust `_ headers used in the software's hybrid CPU/GPU part. I am currently unaware of any patch or simple fix to this issue, and it is not clear whether this is a unique situation in CUDA 12.5 or if the previous versions of CUDA allowed such hybrid use of the Thrust headers "by chance." Adapting the ``tetmag`` source code to this new situation in CUDA/Thrust will require significant changes in the software design. .. raw:: html For the moment, we recommend reverting to CUDA 12.4 if you are using CUDA 12.5. .. raw:: html

.. note:: As of CUDA Toolkit 12.8, released in January 2025, the above compilation issue no longer occurs. This indicates that the cause of the problem was related to how CUDA handled Thrust headers in version 12.5 (and 12.6), rather than improper usage of Thrust libraries in the ``tetmag`` source code. Therefore, the recommendation has changed from reverting to CUDA 12.4 to **avoiding CUDA Toolkit versions 12.5 and 12.6**.