Metafor

ULiege - Aerospace & Mechanical Engineering

User Tools

Site Tools


commit:2014:12_02

Commit 2014-12-02

Modifications

Transfert de donnée - CGAL

Ajout des méthodes de transfert de données utilisant un supermaillage (dans mtExactDataTransfer_CGAL)

  • Méthode de transfert utilisant des volumes finis avec un calcul exact du couplage entre les maillages
  • Méthode de transfert utilisant les éléments joints (Mortar Elements) avec un calcul exact du couplage entre les maillages
Pour plus d'information, sur l'utilisation de ces méthodes voir la documentation sur le transfert de données dans le cadre du remaillage

Ces méthodes de transfert sont décrites en détail dans l'article suivant:

P. Bussetta, R. Boman and J.-P. Ponthot. Efficient 3D data transfer operators based on numerical integration. International Journal for Numerical Methods in Engineering 2014; XX:xxx-xxx, doi: 10.1002/nme.4821

Ces méthodes de transfert utilisent la librairie CGAL uniquement pour le calcul de l'intersection entre les éléments des deux maillages (dans la classe ExactCouplingElement).

CGAL

La version 4.0.5 de CGAL est installée sur thorgal et blueberry.

Dans la version actuelle de Metafor, CGAL n'est pas nécessaire pour la battery windows.

Sur mon PC j'utilise la version 4.4 de CGAL

Installation de CGAL VS2012:

Boost:

  • installer dans F:\LibsCGALVS2012\boost_1_55_0
  • Ajouter les variables d'environnement suivantes:
    • BOOST_LIBRARYDIR=F:\LibsCGALVS2012\boost_1_55_0\lib64-msvc-11.0
    • BOOST_INCLUDEDIR=F:\LibsCGALVS2012\boost_1_55_0

CGAL

  • télécharger CGAL-4.4-Setup.exe
  • installer avec l'option GMP and MPFR precompiled libs dans F:\CGAL\CGAL-4.4
  • Avec CMake Gui:
    • source code: F:\CGAL\CGAL-4.4
    • bin: F:\CGAL\CGAL-4.4\build
    • dans la configuration CMake redéfinir la variable CMAKE_INSTALL_PREFIX = F:/LibsCGALVS2012/CGAL-4.4
    • Générer le projet et le compiler avec VS2012
  • compiler le projet INSTALL → copie des fichiers dans F:/LibsCGALVS2012/CGAL-4.4

Ajouter au Path:

  • F:\LibsCGALVS2012\boost_1_55_0\lib64-msvc-11.0
  • F:\LibsCGALVS2012\CGAL-4.4\bin
  • F:\CGAL\CGAL-4.3\auxiliary\gmp\lib

CMake

Ajout de ces lignes dans les fichiers Cmake des stations (thorgal.cmake et blueberry.cmake)

SET(METAFOR_USE_CGAL    ON CACHE BOOL "" FORCE)
SET(CGAL_LIB_DIR "/usr/lib"                 CACHE INTERNAL "")
SET(GMP_LIBRARIES_DIR "/usr/lib"            CACHE INTERNAL "")
SET(Boost_LIBRARY_DIRS "/usr/lib"           CACHE INTERNAL "")
SET(CGAL_INCL_DIR "/usr/include"            CACHE INTERNAL "")
SET(GMP_INCLUDE_DIR "/usr/include"          CACHE INTERNAL "")
SET(Boost_INCLUDE_DIRS "/usr/include/boost" CACHE INTERNAL "")
SET(CGAL_LIBS "CGAL" CACHE PATH "" FORCE)

Ajout de ces lignes dans mon fichier Cmake (win64-vs2012-CGAL.cmake)

SET(METAFOR_USE_CGAL    ON CACHE BOOL "" FORCE)
SET(CGAL_LIB_DIR "F:/LibsCGALVS2012/CGAL-4.4/lib"                       CACHE INTERNAL "")
SET(GMP_LIBRARIES_DIR "F:/CGAL/CGAL-4.4/auxiliary/gmp/lib"              CACHE INTERNAL "")
SET(Boost_LIBRARY_DIRS "F:/LibsCGALVS2012/boost_1_55_0/lib64-msvc-11.0" CACHE INTERNAL "")
SET(CGAL_INCL_DIR "F:/LibsCGALVS2012/CGAL-4.4/include"       CACHE INTERNAL "")
SET(GMP_INCLUDE_DIR "F:/CGAL/CGAL-4.4/auxiliary/gmp/include" CACHE INTERNAL "")
SET(Boost_INCLUDE_DIRS "F:/LibsCGALVS2012/boost_1_55_0"      CACHE INTERNAL "")
SET(CGAL_LIBS "${CGAL_LIB_DIR}/*.lib;${GMP_LIBRARIES_DIR}/*.lib" CACHE PATH "" FORCE)

Tests

Ajout de tests en 2D et 3D pour les méthodes de transfert avec calcul exact du couplage entre les maillages dans le répertoire oo_meta/mtExactDataTransfer_CGAL/tests

Tests - CGAL - Windows

Différences entre ma battery (windows) avec et sans CGAL (fichier Windows-diff):

FAILED-Windows-msvc.txt

mtExactDataTransfer_CGAL.tests.disk3D_LocMort_2 - failed! - missing!
mtExactDataTransfer_CGAL.tests.disk3D_LocMort_3 - failed! - missing!
mtExactDataTransfer_CGAL.tests.rotMesh_FVTMCell_CGAL_2 - failed! - missing!
mtExactDataTransfer_CGAL.tests.rotMesh_FVTMCell_CGAL_3 - failed! - missing!
mtExactDataTransfer_CGAL.tests.rotMesh_LocMTMCell_CGAL_2 - failed! - missing!
mtExactDataTransfer_CGAL.tests.rotMesh_LocMTMCell_CGAL_3 - failed! - missing!

STP-Windows-msvc.txt

mtExactDataTransfer_CGAL.tests.disk3D_LocMort_3 - Number of steps - missing! - 2
mtExactDataTransfer_CGAL.tests.rotMesh_FVTMCell_CGAL_3 - Number of steps - missing! - 2
mtExactDataTransfer_CGAL.tests.rotMesh_LocMTMCell_CGAL_3 - Number of steps - missing! - 2

ITE-Windows-msvc.txt

mtExactDataTransfer_CGAL.tests.disk3D_LocMort_3 - Number of mech. iterations - missing! - 1

EXT-Windows-msvc.txt

mtExactDataTransfer_CGAL.tests.disk3D_LocMort_2 - Error on Field(TO,RE) After Transfer in % - missing! - -0.117214
mtExactDataTransfer_CGAL.tests.disk3D_LocMort_2 - Error on IF_EPL After Transfer in % - missing! - -0.117214
mtExactDataTransfer_CGAL.tests.disk3D_LocMort_2 - Mean of Field(TO,RE) After Transfer - missing! - 49.939
mtExactDataTransfer_CGAL.tests.disk3D_LocMort_2 - Mean of Field(TO,RE) Befor Transfer - missing! - 49.9976
mtExactDataTransfer_CGAL.tests.disk3D_LocMort_2 - Mean of IF_EPL After Transfer - missing! - 49.939
mtExactDataTransfer_CGAL.tests.disk3D_LocMort_2 - Mean of IF_EPL Befor Transfer - missing! - 49.9976
mtExactDataTransfer_CGAL.tests.disk3D_LocMort_3 - meanEPL - missing! - 78.222
mtExactDataTransfer_CGAL.tests.disk3D_LocMort_3 - meanTemperature - missing! - 78.3892
mtExactDataTransfer_CGAL.tests.disk3D_LocMort_3 - pressure (comp 0) - missing! - 26.8388
mtExactDataTransfer_CGAL.tests.disk3D_LocMort_3 - time - missing! - 2
mtExactDataTransfer_CGAL.tests.rotMesh_FVTMCell_CGAL_2 - Error on Field(TO,RE) After Transfer in % - missing! - 2.66659e-011
mtExactDataTransfer_CGAL.tests.rotMesh_FVTMCell_CGAL_2 - Error on IF_EPL After Transfer in % - missing! - 2.66202e-011
mtExactDataTransfer_CGAL.tests.rotMesh_FVTMCell_CGAL_2 - Mean of Field(TO,RE) After Transfer - missing! - 14.0625
mtExactDataTransfer_CGAL.tests.rotMesh_FVTMCell_CGAL_2 - Mean of Field(TO,RE) Befor Transfer - missing! - 14.0625
mtExactDataTransfer_CGAL.tests.rotMesh_FVTMCell_CGAL_2 - Mean of IF_EPL After Transfer - missing! - 20.3125
mtExactDataTransfer_CGAL.tests.rotMesh_FVTMCell_CGAL_2 - Mean of IF_EPL Befor Transfer - missing! - 20.3125
mtExactDataTransfer_CGAL.tests.rotMesh_FVTMCell_CGAL_3 - meanEPL - missing! - 16.0494
mtExactDataTransfer_CGAL.tests.rotMesh_FVTMCell_CGAL_3 - meanTemperature - missing! - 11.1111
mtExactDataTransfer_CGAL.tests.rotMesh_FVTMCell_CGAL_3 - pressure (comp 0) - missing! - 7.18671e-011
mtExactDataTransfer_CGAL.tests.rotMesh_FVTMCell_CGAL_3 - time - missing! - 2
mtExactDataTransfer_CGAL.tests.rotMesh_LocMTMCell_CGAL_2 - Error on Field(TO,RE) After Transfer in % - missing! - 2.65901e-011
mtExactDataTransfer_CGAL.tests.rotMesh_LocMTMCell_CGAL_2 - Error on IF_EPL After Transfer in % - missing! - 2.66202e-011
mtExactDataTransfer_CGAL.tests.rotMesh_LocMTMCell_CGAL_2 - Mean of Field(TO,RE) After Transfer - missing! - 14.0625
mtExactDataTransfer_CGAL.tests.rotMesh_LocMTMCell_CGAL_2 - Mean of Field(TO,RE) Befor Transfer - missing! - 14.0625
mtExactDataTransfer_CGAL.tests.rotMesh_LocMTMCell_CGAL_2 - Mean of IF_EPL After Transfer - missing! - 20.3125
mtExactDataTransfer_CGAL.tests.rotMesh_LocMTMCell_CGAL_2 - Mean of IF_EPL Befor Transfer - missing! - 20.3125
mtExactDataTransfer_CGAL.tests.rotMesh_LocMTMCell_CGAL_3 - meanEPL - missing! - 16.0494
mtExactDataTransfer_CGAL.tests.rotMesh_LocMTMCell_CGAL_3 - meanTemperature - missing! - 11.1111
mtExactDataTransfer_CGAL.tests.rotMesh_LocMTMCell_CGAL_3 - pressure (comp 0) - missing! - 7.82475e-011
mtExactDataTransfer_CGAL.tests.rotMesh_LocMTMCell_CGAL_3 - time - missing! - 2

LKS-Windows-msvc.txt

mtExactDataTransfer_CGAL.tests.disk3D_LocMort_2 - Sum of memory leaks - missing! - 0
mtExactDataTransfer_CGAL.tests.disk3D_LocMort_3 - Sum of memory leaks - missing! - 0
mtExactDataTransfer_CGAL.tests.rotMesh_FVTMCell_CGAL_2 - Sum of memory leaks - missing! - 12948
mtExactDataTransfer_CGAL.tests.rotMesh_FVTMCell_CGAL_3 - Sum of memory leaks - missing! - 0
mtExactDataTransfer_CGAL.tests.rotMesh_LocMTMCell_CGAL_2 - Sum of memory leaks - missing! - 13128
mtExactDataTransfer_CGAL.tests.rotMesh_LocMTMCell_CGAL_3 - Sum of memory leaks - missing! - 0

CPU-Windows-msvc.txt

mtExactDataTransfer_CGAL.tests.disk3D_LocMort_2 - Real Data transfer Remeshing CPU Time - missing! - 62.761
mtExactDataTransfer_CGAL.tests.disk3D_LocMort_3 - User CPU Time - missing! - 0.0312002
mtExactDataTransfer_CGAL.tests.rotMesh_FVTMCell_CGAL_2 - Real Data transfer Remeshing CPU Time - missing! - 220.473
mtExactDataTransfer_CGAL.tests.rotMesh_FVTMCell_CGAL_3 - User CPU Time - missing! - 0.0312002
mtExactDataTransfer_CGAL.tests.rotMesh_LocMTMCell_CGAL_2 - Real Data transfer Remeshing CPU Time - missing! - 36.533
mtExactDataTransfer_CGAL.tests.rotMesh_LocMTMCell_CGAL_3 - User CPU Time - missing! - 0

Fichiers ajoutés/supprimés

[a]:oo_meta/mtExactDataTransfer_CGAL
[a]:oo_meta/mtExactDataTransfer_CGAL/_src
[a]:oo_meta/mtExactDataTransfer_CGAL/src
[a]:oo_meta/mtExactDataTransfer_CGAL/tests
[a]:oo_meta/mtExactDataTransfer_CGAL/src/ExactCouplingElement.cpp
[a]:oo_meta/mtExactDataTransfer_CGAL/src/ExactFVTMCell.cpp
[a]:oo_meta/mtExactDataTransfer_CGAL/src/ExactFVTMCellElShcuts.cpp
[a]:oo_meta/mtExactDataTransfer_CGAL/src/ExactMTMCell.cpp
[a]:oo_meta/mtExactDataTransfer_CGAL/src/ExactMTMCellElShcuts.cpp
[a]:oo_meta/mtExactDataTransfer_CGAL/src/mtExactDataTransfer_CGAL.cpp
[a]:oo_meta/mtExactDataTransfer_CGAL/src/ExactCouplingElement.h
[a]:oo_meta/mtExactDataTransfer_CGAL/src/ExactFVTMCell.h
[a]:oo_meta/mtExactDataTransfer_CGAL/src/ExactFVTMCellElShcuts.h
[a]:oo_meta/mtExactDataTransfer_CGAL/src/ExactMTMCell.h
[a]:oo_meta/mtExactDataTransfer_CGAL/src/ExactMTMCellElShcuts.h
[a]:oo_meta/mtExactDataTransfer_CGAL/src/mtExactDataTransfer_CGAL.h
[a]:oo_meta/mtExactDataTransfer_CGAL/_src/mtExactDataTransfer_CGAL.i
[a]:oo_meta/mtExactDataTransfer_CGAL/__init__.py
[a]:oo_meta/mtExactDataTransfer_CGAL/tests/__init__.py
[a]:oo_meta/mtExactDataTransfer_CGAL/_src/CMakeLists.txt
[a]:oo_meta/mtExactDataTransfer_CGAL/src/CMakeLists.txt

Tests ajoutés/supprimés

[a]:oo_meta/apps/remeshing/disk3D_ETM_1.py
[a]:oo_meta/apps/remeshing/disk3D_ETM_2.py
[a]:oo_meta/apps/remeshing/disk3D_ETM_3.py
[a]:oo_meta/apps/remeshing/disk3D_FVTM_1.py
[a]:oo_meta/apps/remeshing/disk3D_FVTM_2.py
[a]:oo_meta/apps/remeshing/disk3D_FVTM_3.py
[a]:oo_meta/apps/remeshing/disk3D_GlobMort_1.py
[a]:oo_meta/apps/remeshing/disk3D_GlobMort_2.py
[a]:oo_meta/apps/remeshing/disk3D_GlobMort_3.py
[a]:oo_meta/mtExactDataTransfer_CGAL/tests/disk3D_LocMort_1.py
[a]:oo_meta/mtExactDataTransfer_CGAL/tests/disk3D_LocMort_2.py
[a]:oo_meta/mtExactDataTransfer_CGAL/tests/disk3D_LocMort_3.py
[a]:oo_meta/mtExactDataTransfer_CGAL/tests/rotMesh_FVTMCell_CGAL_1.py
[a]:oo_meta/mtExactDataTransfer_CGAL/tests/rotMesh_FVTMCell_CGAL_2.py
[a]:oo_meta/mtExactDataTransfer_CGAL/tests/rotMesh_FVTMCell_CGAL_3.py
[a]:oo_meta/mtExactDataTransfer_CGAL/tests/rotMesh_LocMTMCell_CGAL_1.py
[a]:oo_meta/mtExactDataTransfer_CGAL/tests/rotMesh_LocMTMCell_CGAL_2.py
[a]:oo_meta/mtExactDataTransfer_CGAL/tests/rotMesh_LocMTMCell_CGAL_3.py

Philippe BUSSETTA 2014/–/–

commit/2014/12_02.txt · Last modified: 2016/03/30 15:23 (external edit)