From 764815b65ee91aab2d5d34adda176eecc1f545e6 Mon Sep 17 00:00:00 2001 From: Charles PIGNEROL <> Date: Fri, 11 Oct 2024 15:10:26 +0200 Subject: [PATCH] Lima v 7.11.0. Disabling (default) writes in mli format. Cmake support for swig dependencies. --- CMakeLists.txt | 1 + cmake/version.cmake | 4 +- installation.txt | 7 ++- src/Lima/CMakeLists.txt | 3 ++ src/Lima/apic.cpp | 5 +-- src/Lima/apif.cpp | 4 +- src/Lima/malipp.cpp | 62 ++++++++------------------- src/Lima/public/Lima/malipp.h | 15 +++---- src/Lima/public/LimaP/reader_malipp.h | 3 ++ src/Lima/reader_malipp.cpp | 5 +++ src/Lima/writer.cpp | 4 +- src/LimaScripting/CMakeLists.txt | 1 + src/Xlmlima_exe/XlmLimaFactory.cpp | 5 +-- 13 files changed, 51 insertions(+), 68 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 2b3cfbc..4fa5b0a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -18,6 +18,7 @@ option (SUMESH "Utilisation de la bibliothèque de sumesh." ON) # Les formats de fichiers optionnellement supportés : option (FORMAT_MLI "Format obsolète déconseillé en externe. Requiert HDF145." ON) +option (WRITER_MLI "Ecrivain du format obsolète. Requiert FORMAT_MLI." FALSE) option (FORMAT_MLI2 "Format remplaçant le format MLI recommandé partout. Requiert HDF 5 v >= 1.10.0." ON) # Binaires optionnels : diff --git a/cmake/version.cmake b/cmake/version.cmake index 2fbc5b8..3c75722 100644 --- a/cmake/version.cmake +++ b/cmake/version.cmake @@ -3,8 +3,8 @@ # set (LIMA_MAJOR_VERSION "7") -set (LIMA_MINOR_VERSION "10") -set (LIMA_RELEASE_VERSION "3") +set (LIMA_MINOR_VERSION "11") +set (LIMA_RELEASE_VERSION "0") set (LIMA_VERSION ${LIMA_MAJOR_VERSION}.${LIMA_MINOR_VERSION}.${LIMA_RELEASE_VERSION}) diff --git a/installation.txt b/installation.txt index 322d17c..1845c6e 100644 --- a/installation.txt +++ b/installation.txt @@ -8,6 +8,8 @@ Elle requiert une version supérieure ou égale à la version 3.20.0 de cmake. L CONFIGURATION DE BASE : lecteurs mali mli mli2 ideas gibi castem modulef [icemcfd] dyna2d dyna3d abaqus ======================= +A noter qu'à partir de la version 7.11.0 l'écrivain mli est désactivé. + Exemples de compilation/installation : @@ -20,7 +22,7 @@ cmake -DCMAKE_C_COMPILER=/usr/bin/gcc -DCMAKE_CXX_COMPILER=/usr/bin/g++ -DCMAKE_ -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_VERBOSE_MAKEFILE=ON -DBUILD_XLMLIMA=ON -DBUILD_TESTS:BOOL=ON -DBUILD_SCRIPTING:BOOL=ON -DMACHINE_TYPES:BOOL=OFF -DSUMESH:BOOL=OFF -DFORMAT_MLI:BOOL=OFF -DFORMAT_MLI2:BOOL=ON -DFORMAT_MLI2:BOOL=ON \ -DBUILD_SHARED_LIBS:BOOL=ON -DINT_8:BOOL=ON -DREAL_8:BOOL=ON \ -DSWIG_EXECUTABLE=/opt/swig/4.1.1/bin/swig -DPython2_ROOT_DIR=/usr/lib/python2.7 -DHDF5_ROOT=/opt/HDF5/1.12.0 \ - -B /tmp/lima_build_dir -DCMAKE_INSTALL_PREFIX=/opt/Lima/7.10.3 + -B /tmp/lima_build_dir -DCMAKE_INSTALL_PREFIX=/opt/Lima/7.11.0 cmake --build /tmp/lima_build_dir cmake --install /tmp/lima_build_dir @@ -30,7 +32,7 @@ cmake -DCMAKE_C_COMPILER=/usr/bin/gcc -DCMAKE_CXX_COMPILER=/usr/bin/g++ -DCMAKE_ -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_VERBOSE_MAKEFILE=ON -DBUILD_XLMLIMA=ON -DBUILD_TESTS:BOOL=ON -DBUILD_SCRIPTING:BOOL=ON -DMACHINE_TYPES:BOOL=ON -DSUMESH:BOOL=ON -DFORMAT_MLI:BOOL=ON -DFORMAT_MLI2:BOOL=ON \ -DBUILD_SHARED_LIBS:BOOL=ON -DINT_8:BOOL=ON -DREAL_8:BOOL=ON \ -DSWIG_EXECUTABLE=/opt/swig/4.1.1/bin/swig -DPython2_ROOT_DIR=/usr/lib/python2.7 -DHDF5_ROOT=/opt/HDF5/1.12.0 -DHDF145_INCLUDE_DIR=/opt/hdf145/1.3.0/include -DHDF145CPP_LIBRARY=/opt/hdf145/1.3.0/lib/libhdf145_cpp.so -DHDF145_LIBRARY=/opt/hdf145/1.3.0/lib/libhdf145.so \ - -B /tmp/lima_build_dir -DCMAKE_INSTALL_PREFIX=/opt/Lima/7.10.3 + -B /tmp/lima_build_dir -DCMAKE_INSTALL_PREFIX=/opt/Lima/7.11.0 cmake --build /tmp/lima_build_dir cmake --install /tmp/lima_build_dir @@ -51,6 +53,7 @@ L'option -DMACHINE_TYPES:BOOL=OFF permet de désactiver l'utilisation de Machine L'option -DSUMESH:BOOL=OFF permet de désactiver l'utilisation de la bibliothèque sumesh (lissage). L'option -DFORMAT_MLI:BOOL=OFF permet de désactiver le lecteur/écrivain obsolète "mli" qui repose sur la bibliothèque HDF 5 1.4.5. +L'option -DWRITER_MLI:BOOL=ON permet de réactiver l'écrivain obsolète "mli" à condition que FORMAT_MLI soit positionné à ON. L'option -DDISABLE_MLI_WARNING:BOOL=ON, fortement déconseillée, permet de désactiver l'affichage en bleu dans la console d'un avertissement signalant l'utilisation de ce lecteur/écrivain obsolète "mli". L'option -DFORMAT_MLI2:BOOL=OFF permet de désactiver le lecteur/écrivain "mli2" qui repose sur une version supérieure ou égale à 1.10.0 de la bibliothèque HDF 5. diff --git a/src/Lima/CMakeLists.txt b/src/Lima/CMakeLists.txt index e203c9a..2b0649b 100644 --- a/src/Lima/CMakeLists.txt +++ b/src/Lima/CMakeLists.txt @@ -46,6 +46,9 @@ if (${HDF145_FOUND}) message (STATUS "======================> Ajout du support du format mli") list (APPEND EXTERNAL_LIBS_FLAGS "HDF5_1_4_3") list (APPEND EXTERNAL_LIBS_FLAGS "-D__INTERNE_MALIPP") + if (WRITER_MLI) + list (APPEND EXTERNAL_LIBS_FLAGS "-D__INTERNE_MALIPP_WRITER") + endif (WRITER_MLI) target_link_libraries (Lima PUBLIC HDF145::hdf145_cpp) set (MLI_SUPPORTED ON) endif (${HDF145_FOUND}) diff --git a/src/Lima/apic.cpp b/src/Lima/apic.cpp index a0ee9a2..95afcd7 100644 --- a/src/Lima/apic.cpp +++ b/src/Lima/apic.cpp @@ -15,7 +15,7 @@ #include "LimaP/maillage_it.h" #include -#ifdef __INTERNE_MALIPP +#if defined(__INTERNE_MALIPP) && defined (__INTERNE_MALIPP_WRITER) #include #endif /* __INTERNE_MALIPP */ @@ -1020,8 +1020,7 @@ int LM_ecrire_maillage(LM_MAILLAGE *maillage, LM_FORMAT_FICHIER format, return 0; } - -#ifdef __INTERNE_MALIPP +#if defined(__INTERNE_MALIPP) && defined (__INTERNE_MALIPP_WRITER) int LM_compression_zlib_malipp (int comprimer, int niveau) { try diff --git a/src/Lima/apif.cpp b/src/Lima/apif.cpp index 89af056..c62f576 100644 --- a/src/Lima/apif.cpp +++ b/src/Lima/apif.cpp @@ -29,7 +29,7 @@ #include "LimaP/fonction.h" #include "LimaP/algorithme.h" -#ifdef __INTERNE_MALIPP +#if defined(__INTERNE_MALIPP) && defined (__INTERNE_MALIPP_WRITER) #include #endif // __INTERNE_MALIPP @@ -2899,7 +2899,7 @@ void Init_attribut(_MaillageInterne* mai, att_loc pt_attach, string nom_groupe) } -#ifdef __INTERNE_MALIPP +#if defined(__INTERNE_MALIPP) && defined (__INTERNE_MALIPP_WRITER) void lmczmli_ (int_type* comprimer, int_type* niveau, int_type* ier) { try diff --git a/src/Lima/malipp.cpp b/src/Lima/malipp.cpp index ba337d0..bfa8771 100644 --- a/src/Lima/malipp.cpp +++ b/src/Lima/malipp.cpp @@ -90,8 +90,7 @@ HDFAttributeDescriptor::HDFAttributeDescriptor ( ) } // HDFAttributeDescriptor::HDFAttributeDescriptor -HDFAttributeDescriptor::HDFAttributeDescriptor ( - const HDFAttributeDescriptor& ad) +HDFAttributeDescriptor::HDFAttributeDescriptor (const HDFAttributeDescriptor& ad) { for (size_type i = 0; i < ATTRIBUT_SIZE; i++) m_name [i] = ad.m_name [i]; @@ -100,8 +99,7 @@ HDFAttributeDescriptor::HDFAttributeDescriptor ( } // HDFAttributeDescriptor::HDFAttributeDescriptor -HDFAttributeDescriptor& HDFAttributeDescriptor::operator = ( - const HDFAttributeDescriptor& ad) +HDFAttributeDescriptor& HDFAttributeDescriptor::operator = (const HDFAttributeDescriptor& ad) { if (&ad != this) { @@ -144,8 +142,7 @@ MaliPPReader::GroupeReader::GroupeReader (const GroupeReader& reader) } // GroupeReader::GroupeReader -MaliPPReader::GroupeReader& MaliPPReader::GroupeReader::operator = ( - const GroupeReader& reader) +MaliPPReader::GroupeReader& MaliPPReader::GroupeReader::operator = (const GroupeReader& reader) { if (&reader != this) { @@ -1928,6 +1925,8 @@ void MaliPPReader::lire_composition_maillage ( ) // LA CLASSE MaliPPWriter // =========================================================================== +#ifdef __INTERNE_MALIPP_WRITER + static size_t computeChunkSize (size_t count, size_t elementSize) { // Pour forcer la creation de blocs lors de tests : @@ -1975,7 +1974,7 @@ MaliPPWriter::MaliPPWriter (const IN_STD string& nom_fichier, size_type num) } // MaliPPWriter::MaliPPWriter -void MaliPPWriter::beginWrite() +void MaliPPWriter::beginWrite ( ) { bool throwExc = false; MutableString errorMsg; @@ -2496,12 +2495,7 @@ void MaliPPWriter::writeNodesInfo (bool isContiguous, id_type nbNodes, id_type f } // MaliPPWriter::writeNodesInfo -void MaliPPWriter::writeNodes ( - id_type nodesChunkSize, - double* coordsX, - double* coordsY, - double* coordsZ, - id_type* ids) +void MaliPPWriter::writeNodes (id_type nodesChunkSize, double* coordsX, double* coordsY, double* coordsZ, id_type* ids) { BEGIN_TRY_CATCH_BLOCK("MaliPPWriter::writeNodes ") @@ -2602,10 +2596,7 @@ void MaliPPWriter::writeNodeSetInfo (id_type nbSet, std::vector set } // MaliPPWriter::writeNodeSetInfo -void MaliPPWriter::writeNodeSetData ( - std::string name, - id_type chunkSize, - id_type* ids) +void MaliPPWriter::writeNodeSetData (std::string name, id_type chunkSize, id_type* ids) { BEGIN_TRY_CATCH_BLOCK("MaliPPWriter::writeNodeSetData ") @@ -2819,10 +2810,7 @@ void MaliPPWriter::writeEdgeSetInfo (id_type nbSet, std::vector set } // MaliPPWriter::writeEdgeSetInfo -void MaliPPWriter::writeEdgeSetData ( - std::string name, - id_type chunkSize, - id_type* ids) +void MaliPPWriter::writeEdgeSetData (std::string name, id_type chunkSize, id_type* ids) { BEGIN_TRY_CATCH_BLOCK("MaliPPWriter::writeEdgeSetData ") @@ -3067,10 +3055,7 @@ void MaliPPWriter::writeFaceSetInfo (id_type nbSet, std::vector set } // MaliPPWriter::writeFaceSetInfo -void MaliPPWriter::writeFaceSetData ( - std::string name, - id_type chunkSize, - id_type* ids) +void MaliPPWriter::writeFaceSetData (std::string name, id_type chunkSize, id_type* ids) { BEGIN_TRY_CATCH_BLOCK("MaliPPWriter::writeFaceSetData ") @@ -3100,11 +3085,7 @@ void MaliPPWriter::writeFaceSetData ( } // MaliPPWriter::writeFaceSetData -void MaliPPWriter::writeFaceSetData ( - std::string name, - id_type chunkSize, - id_type* ids, - id_type* nbNodesPerFace) +void MaliPPWriter::writeFaceSetData (std::string name, id_type chunkSize, id_type* ids, id_type* nbNodesPerFace) { BEGIN_TRY_CATCH_BLOCK("MaliPPWriter::writeFaceSetData ") @@ -3368,10 +3349,7 @@ void MaliPPWriter::writeRegionSetInfo (id_type nbSet, std::vector s } // MaliPPWriter::writeRegionSetInfo -void MaliPPWriter::writeRegionSetData ( - std::string name, - id_type chunkSize, - id_type* ids) +void MaliPPWriter::writeRegionSetData (std::string name, id_type chunkSize, id_type* ids) { BEGIN_TRY_CATCH_BLOCK("MaliPPWriter::writeRegionSetData ") @@ -3401,11 +3379,7 @@ void MaliPPWriter::writeRegionSetData ( } // MaliPPWriter::writeRegionSetData -void MaliPPWriter::writeRegionSetData ( - std::string name, - id_type chunkSize, - id_type* ids, - Lima::Polyedre::PolyedreType* regionTypes) +void MaliPPWriter::writeRegionSetData (std::string name, id_type chunkSize, id_type* ids, Lima::Polyedre::PolyedreType* regionTypes) { BEGIN_TRY_CATCH_BLOCK("MaliPPWriter::writeRegionSetData ") @@ -3511,8 +3485,7 @@ void MaliPPWriter::writeRegionSetsAttributes ( ) } // MaliPPWriter::writeRegionSetsAttributes -void MaliPPWriter::writeComposition (const Composition& composition, - const std::string& name, CommonFG& root) +void MaliPPWriter::writeComposition (const Composition& composition, const std::string& name, CommonFG& root) { BEGIN_TRY_CATCH_BLOCK("MaliPPWriter::writeComposition ") @@ -3594,6 +3567,7 @@ void MaliPPWriter::activer_compression_zlib (int niveau) HDFHelper::activateZlibCompression (niveau); } // MaliPPWriter::activer_compression_zlib +#endif // __INTERNE_MALIPP_WRITER // =========================================================================== @@ -3614,15 +3588,13 @@ HDFAttributeDescriptorType::HDFAttributeDescriptorType ( ) } // HDFAttributeDescriptorType::HDFAttributeDescriptorType -HDFAttributeDescriptorType::HDFAttributeDescriptorType ( - const HDFAttributeDescriptorType& at) +HDFAttributeDescriptorType::HDFAttributeDescriptorType (const HDFAttributeDescriptorType& at) : CompType (at) { } // HDFAttributeDescriptorType copy constructor -HDFAttributeDescriptorType& HDFAttributeDescriptorType::operator = ( - const HDFAttributeDescriptorType&) +HDFAttributeDescriptorType& HDFAttributeDescriptorType::operator = (const HDFAttributeDescriptorType&) { return *this; } // HDFAttributeDescriptorType::operator = diff --git a/src/Lima/public/Lima/malipp.h b/src/Lima/public/Lima/malipp.h index 687dbf5..d8f1bc2 100644 --- a/src/Lima/public/Lima/malipp.h +++ b/src/Lima/public/Lima/malipp.h @@ -1124,8 +1124,7 @@ class MaliPPReader /** - * Classe décrivant la structure HDFAttributeDescriptor pour le stockage - * sous HDF. + * Classe décrivant la structure HDFAttributeDescriptor pour le stockage sous HDF. */ class HDFAttributeDescriptorType : public IN_H5 CompType { @@ -1145,9 +1144,10 @@ class HDFAttributeDescriptorType : public IN_H5 CompType }; // class HDFAttributeDescriptorType +#ifdef __INTERNE_MALIPP_WRITER + /** - * Classe ne permettant dans la version courrante que d'influer sur la - * compression des données écrites par HDF5. + * Classe ne permettant dans la version courrante que d'influer sur la compression des données écrites par HDF5. * * NE PAS UTILISER L'API D'ECRITURE * @@ -1157,8 +1157,7 @@ class MaliPPWriter public : /** - * Constructeur. Ouvre le fichier en écriture et écrit les données - * générales du maillage. + * Constructeur. Ouvre le fichier en écriture et écrit les données générales du maillage. * @param Nom du fichier * @param numéro du maillage dans le fichier * @exception Une exception est levée en cas d'erreur @@ -1259,8 +1258,7 @@ class MaliPPWriter void writeMeshAttributes ( ); - void writeComposition (const Composition& composition, const std::string& name, - HDF145::CommonFG& compositionGroup); + void writeComposition (const Composition& composition, const std::string& name, HDF145::CommonFG& compositionGroup); /** * Constructeurs et destructeur : interdits. @@ -1385,6 +1383,7 @@ class MaliPPWriter }; // class MaliPPWriter +#endif // __INTERNE_MALIPP_WRITER #ifndef SWIG END_NAMESPACE_LIMA diff --git a/src/Lima/public/LimaP/reader_malipp.h b/src/Lima/public/LimaP/reader_malipp.h index 18a640d..f66f5d4 100644 --- a/src/Lima/public/LimaP/reader_malipp.h +++ b/src/Lima/public/LimaP/reader_malipp.h @@ -92,6 +92,8 @@ class _ReaderMalipp : public _Reader { }; ////////////////////////////////////////////////////////////////////////////// +#ifdef __INTERNE_MALIPP_WRITER + class _WriterMalipp : public _Writer { public : _WriterMalipp(_MaillageInterne* mesh, @@ -165,6 +167,7 @@ public : bool m_forceZlib; }; +#endif // __INTERNE_MALIPP_WRITER END_NAMESPACE_LIMA diff --git a/src/Lima/reader_malipp.cpp b/src/Lima/reader_malipp.cpp index f5470e6..a9d01ef 100644 --- a/src/Lima/reader_malipp.cpp +++ b/src/Lima/reader_malipp.cpp @@ -1760,6 +1760,8 @@ void _ReaderMalipp::readGroupAttr ( } // _ReaderMalipp::readGroupAttr +#ifdef __INTERNE_MALIPP_WRITER + ////////////////////////////////////////////////////////////////////////////// //! Ecriture de l'indice des elements dans le champ udata void _WriterMalipp::setDataToIndice ( ) @@ -3183,6 +3185,8 @@ void _WriterMalipp::writeComposition (const Composition& composition, compositionAttr.write (compositionAttr.getDataType ( ), detail); } // _WriterMalipp::writeComposition +#endif // __INTERNE_MALIPP_WRITER + static size_t computeChunkSize (size_t count, size_t elementSize) { @@ -3203,6 +3207,7 @@ static size_t computeChunkSize (size_t count, size_t elementSize) return count / (chunkDivider * elementSize); } // computeChunkSize + END_NAMESPACE_LIMA #endif diff --git a/src/Lima/writer.cpp b/src/Lima/writer.cpp index 01f8732..01a58d5 100644 --- a/src/Lima/writer.cpp +++ b/src/Lima/writer.cpp @@ -47,7 +47,7 @@ const char* _liste_format_ecriture[]={ #ifdef __INTERNE_MALI (char*) "unf, format de fichier MALI", #endif -#ifdef __INTERNE_MALIPP +#if defined(__INTERNE_MALIPP) && defined(__INTERNE_MALIPP_WRITER) (char*) "mli, format (désuet) de fichier MALI++", (char*) "mliz, format (désuet) de fichier MALI++", #endif @@ -115,7 +115,7 @@ _Writer* _Writer::create(_MaillageInterne* mesh, writer = new _WriterMali(mesh, nom_fichier, format); break; #endif -#ifdef __INTERNE_MALIPP +#if defined(__INTERNE_MALIPP) && defined(__INTERNE_MALIPP_WRITER) case MALIPP: writer = new _WriterMalipp(mesh, nom_fichier, format, num, false); break; diff --git a/src/LimaScripting/CMakeLists.txt b/src/LimaScripting/CMakeLists.txt index b2cb835..ac13163 100644 --- a/src/LimaScripting/CMakeLists.txt +++ b/src/LimaScripting/CMakeLists.txt @@ -24,6 +24,7 @@ file (GLOB CPP_SOURCES *.i *.cpp) # => dans cette version on ne génère que _LimaScripting qui sera utilisé directement depuis les scripts comme par les exécutables. set (ALL_TARGETS LimaScripting) set_property (SOURCE LimaScripting.i PROPERTY CPLUSPLUS ON) +set_property (SOURCE LimaScripting.i PROPERTY USE_SWIG_DEPENDENCIES TRUE) swig_add_library (LimaScripting TYPE SHARED LANGUAGE PYTHON SOURCES ${CPP_SOURCES}) cmake_policy (SET CMP0086 NEW) set_source_files_properties (LimaScripting.i PROPERTIES SWIG_MODULE_NAME LimaScripting) diff --git a/src/Xlmlima_exe/XlmLimaFactory.cpp b/src/Xlmlima_exe/XlmLimaFactory.cpp index 37934df..a0ff658 100644 --- a/src/Xlmlima_exe/XlmLimaFactory.cpp +++ b/src/Xlmlima_exe/XlmLimaFactory.cpp @@ -294,12 +294,9 @@ void XlmLimaFactory::syntax ( ) message += string ("\n"); message += string ("Formats en lecture : "); message += string ("auto ") + readableFormats ( ); -// message += string ("auto mali mli mliz mli2 ideas gibi castem modulef icemcfd"); -// message += string (" dyna2d dyna3d abaqus"); message += string ("\n"); message += string ("Formats en écriture : "); message += string ("auto ") + writableFormats ( ); -// message += string (" auto mali mli mliz mli2 ideas gibi gibi_i8 castem modulef"); message += string ("\n"); message += string ("auto : format déterminé par l'extension du fichier."); message += string ("\n"); @@ -502,7 +499,7 @@ string XlmLimaFactory::writableFormats ( ) if (0 != formats.length ( )) formats += " "; formats += "mali (*.unf)"; #endif // __INTERNE_MALI -#ifdef __INTERNE_MALIPP +#if defined(__INTERNE_MALIPP) && defined(__INTERNE_MALIPP_WRITER) if (0 != formats.length ( )) formats += " "; formats += "mli (*.mli)"; #endif // __INTERNE_MALIPP