Metafor

ULiege - Aerospace & Mechanical Engineering

User Tools

Site Tools


commit:2018:10_24

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
commit:2018:10_24 [2018/10/23 20:05] – - papeleuxcommit:2018:10_24 [2018/10/24 10:26] (current) – [Nexts steps :] papeleux
Line 14: Line 14:
     * une première série de tests (ATTENTION, IL N'Y A PAS ENCORE EUT DE VERIFICATION COMPARATIVE ET DETAILLEE DE LA QUALITE DES RESULTATS NUMERIQUES)     * une première série de tests (ATTENTION, IL N'Y A PAS ENCORE EUT DE VERIFICATION COMPARATIVE ET DETAILLEE DE LA QUALITE DES RESULTATS NUMERIQUES)
     *      * 
-====== Compilation de Lagamine (sous forme de programme) ======+====== Compilation de Lagamine (exe) ======
   * Les sources de Lagamine sont composées d'un prépro (Prepro), du solveur (Lagamine) et d'un post-pro (Select)   * Les sources de Lagamine sont composées d'un prépro (Prepro), du solveur (Lagamine) et d'un post-pro (Select)
   * Un snapshot des sources Lagamine (version officielle du 02/10/2018) a été commitée sur un répository  du département UEE du GitLab de l'ULiège : https://gitlab.uliege.be/UEE/Lagamine (en cas de besoin d'accéder à ces sources, demander à L.Duchêne de vous donner l'accès au repository)   * Un snapshot des sources Lagamine (version officielle du 02/10/2018) a été commitée sur un répository  du département UEE du GitLab de l'ULiège : https://gitlab.uliege.be/UEE/Lagamine (en cas de besoin d'accéder à ces sources, demander à L.Duchêne de vous donner l'accès au repository)
Line 28: Line 28:
       * Dans la configuration Fortran -> Librairies : choisir comme RuntimeLibrary "QuickWin" en Release et "Debug QuickWin" en Debug  (voir figures)       * Dans la configuration Fortran -> Librairies : choisir comme RuntimeLibrary "QuickWin" en Release et "Debug QuickWin" en Debug  (voir figures)
       * Valider (Apply)       * Valider (Apply)
-{{:commit:2018:10_24:lagaminequickwinrelease.png?400 |}} {{:commit:2018:10_24:lagaminequickwindebug.png?400|}}+{{:commit:2018:10_24:lagaminequickwinrelease.png?300 |}} {{:commit:2018:10_24:lagaminequickwindebug.png?300|}}
       * Au besoin, faire de même pour les autres projets (Prepro et Select)       * Au besoin, faire de même pour les autres projets (Prepro et Select)
   * La suppression de la dépendance à QuickWin ainsi que le portage sous Linux (à sources constantes) demandant de travailler la structure et le fond du code, on n'a pas poursuivi cette voie plus avant (le but d'avoir une version de debug de Lagamine sur mon pc étant atteint)   * La suppression de la dépendance à QuickWin ainsi que le portage sous Linux (à sources constantes) demandant de travailler la structure et le fond du code, on n'a pas poursuivi cette voie plus avant (le but d'avoir une version de debug de Lagamine sur mon pc étant atteint)
  
-====== Compilation de Lagamine (sous forme de librairie) ======+====== LagamineAPI ======
   * Un projet "LagamineAPI" a été crée dans le groupe du service sur le GitLab ULiège pour générer une librairie dynamique des lois matériaux de Lagamine appelable par Metafor. Ce projet est accessible à l'adresse : https://gitlab.uliege.be/am-dept/MN2L/LagamineAPI   * Un projet "LagamineAPI" a été crée dans le groupe du service sur le GitLab ULiège pour générer une librairie dynamique des lois matériaux de Lagamine appelable par Metafor. Ce projet est accessible à l'adresse : https://gitlab.uliege.be/am-dept/MN2L/LagamineAPI
   * Le projet se décompose en    * Le projet se décompose en 
Line 45: Line 45:
       * générer une fonction C++ dans le namespace qui se borne à appeler la fonction fortran (fichiers "lagamineAPI.h/cpp")       * générer une fonction C++ dans le namespace qui se borne à appeler la fonction fortran (fichiers "lagamineAPI.h/cpp")
     * Attention, pour générer ce projet, il est nécessaire de disposer d'un compilateur Fortran et C++     * Attention, pour générer ce projet, il est nécessaire de disposer d'un compilateur Fortran et C++
-  * La librairie lagamineAPI.dll (lagamineAPI.so) est compilée dans mes Libs (sur le ftp : /ftp/metafor/bin/VS2015_X64/LibsVS2015_2018-10-23.zip) et installée sur toutes les stations (sauf fabulous) +  * La librairie lagamineAPI.dll (lagamineAPI.so) est compilée dans mes Libs (sur le ftp : /ftp/metafor/bin/VS2015_X64/LibsVS2015_2018-10-23.zip) et installée sur toutes les stations (sauf fabulous) dans /opt/lagamine-20181022 et un liens symbolique /opt/lagamine généré pour une évolution transparente à l'avenir
     * => mettez à jour vos Libs (et réexecutez le setup)     * => mettez à jour vos Libs (et réexecutez le setup)
     * ==> mettez à jour vos LinuxBin (~/bin) sur les stations     * ==> mettez à jour vos LinuxBin (~/bin) sur les stations
   * Cette librairie est appelée à évoluer au fur et à mesure que j'ajouterais des lois matériaux dans l'interface   * Cette librairie est appelée à évoluer au fur et à mesure que j'ajouterais des lois matériaux dans l'interface
 +  * Spring : les vérifications liées à "FortranCInterface" indiquent une incompatibilité entre gfortran (fortran gnu) et icc (c++ intel) et comme on a pas acheté le compilateur intel fortran (ifort) => compilation de LagamineLib classiquement avec gfortran et gcc (utiliser le fichier de configuration spring-gcc.cmake au lieu de spring.gcc)
 +  * Windows : de memoire, je crois avoir lu que le mécanisme "FortranCInterface" permettrait de linker des libs gfortran (mingw) avec le visual c++. 
  
 ====== Metafor ====== ====== Metafor ======
-  * Nouveau projet dans oo_nda : mtLagamine+  * Nouveau projet dans oo_nda : mtLagamine (désactivable avec l'option de cmake : NDA_LAGAMINE)
   * Le matériau générique LagamineMaterial dérive de HypoMaterial   * Le matériau générique LagamineMaterial dérive de HypoMaterial
   * les matériaux interfacé sont :    * les matériaux interfacé sont : 
Line 58: Line 60:
      * Hill48LagMaterial : interface vers HILL3D      * Hill48LagMaterial : interface vers HILL3D
   * Les pages de doc sont à faire pour définir la signification des paramètres matériaux => actuellement  regardez dans les tests ...   * Les pages de doc sont à faire pour définir la signification des paramètres matériaux => actuellement  regardez dans les tests ...
 +  * dans chaque sous répertoire de test, chaque test est dupliqué en version Metafor et version Metafor/Lagamine (préfixés par "Lag")
   * Principales différences avec Metafor :    * Principales différences avec Metafor : 
     * Calcul en contraintes (pas de séparation Deviatoric et Volumic) => pas possible d'utiliser les SRI "PURS"     * Calcul en contraintes (pas de séparation Deviatoric et Volumic) => pas possible d'utiliser les SRI "PURS"
     * ce n'est pas l'incrément de défo qui est passé au calcul des contraintes, mais le tenseur D "taux de déformation     * ce n'est pas l'incrément de défo qui est passé au calcul des contraintes, mais le tenseur D "taux de déformation
     * La matrice de raideur est calculée au moment du calcul des contraintes (ca me simplifie le travail, je n'ai que 1 routine à interfacer) => stoquée dans le LagamineGPKState dans la variable "complianceTensor" (9x9 doubles)     * La matrice de raideur est calculée au moment du calcul des contraintes (ca me simplifie le travail, je n'ai que 1 routine à interfacer) => stoquée dans le LagamineGPKState dans la variable "complianceTensor" (9x9 doubles)
-    * Une fonction ''void FourthOrderTensor3D::addLagamineComplianceTensor(const double *c)'' ajoute la matrice de raideur matérielle dans le formalisme Metafor+    * Une fonction ''void FourthOrderTensor3D::addLagamineComplianceTensor(const double *c)'' ajoute la matrice de raideur matérielle calculée par Lagamine (consevée dans le "complianceTensor) dans le formalisme Metafor. On a donc déjà accès à des calculs avec matrice de raideur tangente analytique (au sens Metafor, le "complianceTensor" étant parfois calculé par perturbation au sein du matériau)
     *      * 
-====== Structure informatique : ====== +====== Nexts steps : ====== 
-  *  +  * Vérifier la justesse des résultats sur monos éléments (contrainte, objectivité, petites défo / grand déplacement / grandes rotations / grandes défo, ...) 
-===== Lois interfacées : ===== +  * Débugger la non convergence de "Shear3DAnaSriPr" et "Shear3DSNumSriPr" dans la procédure materialTesting des différentes lois ARB3D 
-  * +  * discuter avec Helene, Laurent ou autre personne connaissant Lagamine de la fixation de certains paramètre numériques 
 +  * récupérer des jeux de données et résultats Lagamine (pour comparaison : j'ai du mal à les écrire) 
 +  * implémenter des matériaux TM (gérer la dépendance des paramètres à la température) 
 +  * faire un peu de réflexion sur le naming des matériaux 
 +  * réfléchir à des petites réorganisations des matériaux Metafor pour simplifier les structures et interfaces (actuellement les LagamineMaterials dérivent de HypoMaterial, mais on pourrait faire glisser le curseur pour éviter les redéfintions et autres copier-coller) 
 +  * documenter 
 +===== Divers : ===== 
 +  * GETMACRO_C : Ajout d'un cast C pour forcer le typage (de double[] en double*) : Romain est-ce une bonne idée (j'ai fait ca vite mais maintenant je me pose la question de la sécurité d'une telle démarche ... Ne devrais-je pas explicitement caster la sortie  de mon get ? 
 +<code> 
 +// ----------- GETTER macro const 
 +#define GETMACRO_C(TYPE, VAR, UVAR) \ 
 +    inline TYPE get##UVAR() const { return (TYPE) VAR; } 
 +// ----------- GETTER macro 
 +#define GETMACRO(TYPE, VAR, UVAR) \ 
 +    inline TYPE get##UVAR() { return (TYPE) VAR; } 
 +</code> 
 + 
 +  * toolbox.utilities : ajout d'un try except autour de la récupération du nom d'utilisateur (le NAS ayant fait sa mise à jour durant mes batteries, j'ai ~1/5 des tests qui ont foiré à l'affichage du nom d'utilisateur !!! 
 +<code> 
 +toolbox.utilities : lignes 81-84 
 +        import pwd 
 +        try: 
 +            print "\tby         :", pwd.getpwuid(os.getuid()).pw_name 
 +        except: # if ldap is down => pwd cannot return getpwuid 
 +            print "\tby         :", os.getuid() 
 +</code>
 ===== UPDATE : ===== ===== UPDATE : =====
-  * +  * update sous Windows :  
 +    * updatez vos sources (oo_meta ET oo_nda) 
 +    * récupérez (sur le ftp: /ftp/metafor/bin/VS2015_X64/LibsVS2015_2018-10-23.zip) et installez la nouvelle version des Libs  
 +  * update Linux :  
 +    * updatez vos sources 
 +    * updatez le système de configuration (linuxbin dans ~/bin) 
 +  * sur d'autres machines : venez me trouver... 
  
  
 ===== Fichiers ajoutés/supprimés : ===== ===== Fichiers ajoutés/supprimés : =====
 <code> <code>
-Added :+Added : oo_meta/CMake/findLAGAMINE.cmake 
 +Added : oo_nda/mtLagamine 
 +Added : oo_nda/mtLagamine/__init__.py 
 +Added : oo_nda/mtLagamine/_src 
 +Added : oo_nda/mtLagamine/_src/CMakeLists.txt 
 +Added : oo_nda/mtLagamine/_src/Added : oo_nda/mtLagamine.i 
 +Added : oo_nda/mtLagamine/src 
 +Added : oo_nda/mtLagamine/src/ArbLagGpState.cpp 
 +Added : oo_nda/mtLagamine/src/ArbLagGpState.h 
 +Added : oo_nda/mtLagamine/src/ArbLagMaterial.cpp 
 +Added : oo_nda/mtLagamine/src/ArbLagMaterial.h 
 +Added : oo_nda/mtLagamine/src/CMakeLists.txt 
 +Added : oo_nda/mtLagamine/src/ElaLagGpState.cpp 
 +Added : oo_nda/mtLagamine/src/ElaLagGpState.h 
 +Added : oo_nda/mtLagamine/src/ElaLagMaterial.cpp 
 +Added : oo_nda/mtLagamine/src/ElaLagMaterial.h 
 +Added : oo_nda/mtLagamine/src/Hill48LagGpState.cpp 
 +Added : oo_nda/mtLagamine/src/Hill48LagGpState.h 
 +Added : oo_nda/mtLagamine/src/Hill48LagMaterial.cpp 
 +Added : oo_nda/mtLagamine/src/Hill48LagMaterial.h 
 +Added : oo_nda/mtLagamine/src/LagamineGpkState.cpp 
 +Added : oo_nda/mtLagamine/src/LagamineGpkState.h 
 +Added : oo_nda/mtLagamine/src/LagamineMaterial.cpp 
 +Added : oo_nda/mtLagamine/src/LagamineMaterial.h 
 +Added : oo_nda/mtLagamine/src/Added : oo_nda/mtLagamine.cpp 
 +Added : oo_nda/mtLagamine/src/Added : oo_nda/mtLagamine.h 
 +Added : oo_nda/mtLagamine/tests 
 +Added : oo_nda/mtLagamine/tests/__init__.py 
 +Added : oo_nda/mtLagamine/tests/Arb3D 
 +Added : oo_nda/mtLagamine/tests/Arb3D/__init__.py 
 +Added : oo_nda/mtLagamine/tests/Arb3D/EvpIsoHLinTrac3dEasAna.py 
 +Added : oo_nda/mtLagamine/tests/Arb3D/EvpIsoHLinTrac3dSriPrAna.py 
 +Added : oo_nda/mtLagamine/tests/Arb3D/EvpKinHLinTrac3dEasAna.py 
 +Added : oo_nda/mtLagamine/tests/Arb3D/EvpKinHLinTrac3dSriPrAna.py 
 +Added : oo_nda/mtLagamine/tests/Arb3D/EvpMixtHLinTrac3dEasAna.py 
 +Added : oo_nda/mtLagamine/tests/Arb3D/EvpMixtHLinTrac3dSriPrAna.py 
 +Added : oo_nda/mtLagamine/tests/Arb3D/LagEpArcLinHTrac3dEasAna.py 
 +Added : oo_nda/mtLagamine/tests/Arb3D/LagEpArcLinHTrac3dSriPrAna.py 
 +Added : oo_nda/mtLagamine/tests/Arb3D/LagEpIsoHLinTrac3dEasAna.py 
 +Added : oo_nda/mtLagamine/tests/Arb3D/LagEpIsoHLinTrac3dSriPrAna.py 
 +Added : oo_nda/mtLagamine/tests/Arb3D/LagEpKinHLinTrac3dEasAna.py 
 +Added : oo_nda/mtLagamine/tests/Arb3D/LagEpKinHLinTrac3dSriPrAna.py 
 +Added : oo_nda/mtLagamine/tests/Arb3D/LagEpMixtHLinTrac3dEasAna.py 
 +Added : oo_nda/mtLagamine/tests/Arb3D/LagEpMixtHLinTrac3dSriPrAna.py 
 +Added : oo_nda/mtLagamine/tests/complex 
 +Added : oo_nda/mtLagamine/tests/complex/__init__.py 
 +Added : oo_nda/mtLagamine/tests/complex/Arb3D2IsoHLagamine.py 
 +Added : oo_nda/mtLagamine/tests/complex/Arb3D2KinHLagamine.py 
 +Added : oo_nda/mtLagamine/tests/complex/Arb3D2MixtHLagamine.py 
 +Added : oo_nda/mtLagamine/tests/complex/Arb3DIsoHLagamine.py 
 +Added : oo_nda/mtLagamine/tests/complex/Arb3DKinHLagamine.py 
 +Added : oo_nda/mtLagamine/tests/complex/Arb3DMixtHLagamine.py 
 +Added : oo_nda/mtLagamine/tests/complex/ElastLagamine.py 
 +Added : oo_nda/mtLagamine/tests/Ela3D 
 +Added : oo_nda/mtLagamine/tests/Ela3D/__init__.py 
 +Added : oo_nda/mtLagamine/tests/Ela3D/ElastCis3dEasAna.py 
 +Added : oo_nda/mtLagamine/tests/Ela3D/ElastCis3dSriPrAna.py 
 +Added : oo_nda/mtLagamine/tests/Ela3D/ElastCis3dStdAna.py 
 +Added : oo_nda/mtLagamine/tests/Ela3D/ElastTrac3dEasAna.py 
 +Added : oo_nda/mtLagamine/tests/Ela3D/ElastTrac3dSriPrAna.py 
 +Added : oo_nda/mtLagamine/tests/Ela3D/ElastTrac3dStdAna.py 
 +Added : oo_nda/mtLagamine/tests/Ela3D/LagElastCis3dEasAna.py 
 +Added : oo_nda/mtLagamine/tests/Ela3D/LagElastCis3dSriPrAna.py 
 +Added : oo_nda/mtLagamine/tests/Ela3D/LagElastCis3dStdAna.py 
 +Added : oo_nda/mtLagamine/tests/Ela3D/LagElastTrac3dEasAna.py 
 +Added : oo_nda/mtLagamine/tests/Ela3D/LagElastTrac3dSriPrAna.py 
 +Added : oo_nda/mtLagamine/tests/Ela3D/LagElastTrac3dStdAna.py 
 +Added : oo_nda/mtLagamine/tests/Hill3D 
 +Added : oo_nda/mtLagamine/tests/Hill3D/__init__.py 
 +Added : oo_nda/mtLagamine/tests/Hill3D/EvpIsoHKrupCis3dEasAna.py 
 +Added : oo_nda/mtLagamine/tests/Hill3D/EvpIsoHKrupCis3dSriPrAna.py 
 +Added : oo_nda/mtLagamine/tests/Hill3D/EvpIsoHKrupTrac3dEasAna.py 
 +Added : oo_nda/mtLagamine/tests/Hill3D/EvpIsoHKrupTrac3dSriPrAna.py 
 +Added : oo_nda/mtLagamine/tests/Hill3D/LagEvpIsoHKrupCis3dEasAna.py 
 +Added : oo_nda/mtLagamine/tests/Hill3D/LagEvpIsoHKrupCis3dSriPrAna.py 
 +Added : oo_nda/mtLagamine/tests/Hill3D/LagEvpIsoHKrupTrac3dEasAna.py 
 +Added : oo_nda/mtLagamine/tests/Hill3D/LagEvpIsoHKrupTrac3dSriPrAna.py 
 +Added : oo_nda/mtLagamine/tools 
 +Added : oo_nda/mtLagamine/tools/__init__.py 
 +Added : oo_nda/mtLagamine/tools/monoMat3D.py
 Deleted :  Deleted : 
 Moved :  Moved : 
commit/2018/10_24.1540317932.txt.gz · Last modified: 2018/10/23 20:05 by papeleux

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki