Skip to content

Restore windows and old-gmm compatibility

Boman Romain requested to merge fix_gmm into master

Windows compatibility

  • The compilation was broken on Windows. There was a problem in the SWIG-generated code from the new ELTYPE and MATTYPE class enums. More precisely, the problem was related to the translation of operator<< (which does not become print or __str__ but __lshift__ in python!). I have prevented SWIG from wrapping this function.
  • Compilation of Trilinos is automatically disabled on Windows since Trilinos is not compatible with Windows.

Compilation with old versions of gmm

  • It is now possible to compile the code with the (old) version of gmm that is bundled with Ubuntus<18. These old versions define std::operator<<(std::vector<double> const &) although the newest version does not. I previously added our own definition of this missing function in the header gmm_extra.h. Obviously, this definition broke the compatibility with the old version of gmm. Now, the TRY_COMPILE feature of CMake is used to check whether this function is already defined or not. This knowledge is transferred to the compiler using the new GMM_DEFINITIONS variable which is dynamically set in FindGMM.cmake (see this file for more details).

Usage of gmsh v4.x

  • By default the new version of gmsh (version 4) writes meshes in a new (incompatible) format. I am currently trying to upgrade MshData so that it can read this new format. In the meantime, I have forced gmsh to write its output in version 2 (see gmsh.py). It temporarily solves the problem. We should, however, be careful to avoid gmsh4 commands in the .geo files!

Future new models for mirrors

  • I have added several basic .geofiles in mirrors. I will use them in a near future to make additional basic mechanical tests (to be continued).

CTest

  • Successful on gaston
  • Successful on Windows (without Trilinos)

Merge request reports