Metafor

ULiege - Aerospace & Mechanical Engineering

User Tools

Site Tools


commit:2011:05_03

Differences

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

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
commit:2011:05_03 [2011/05/04 10:40] – [Transfert de champs entre deux maillages] bussettacommit:2011:05_03 [2018/05/04 16:35] (current) – [3 Mai 2011] boman
Line 1: Line 1:
 +====== Commit 2011-05-03 ======
  
 +
 +===== Modifications =====
 +
 +
 +==== Transfert de champs entre deux maillages ====
 +
 +
 +Modification de la procédure de transfert lors d'un remaillage. Le transfert est effectué entre deux objets "Interaction" de deux Metafor différent (deux "Domain", etc.).
 +Après le transfert un fichier Fac est sauvegardé afin de continuer le calcul après remaillage.
 +Donc pour faire du remaillage il faut 3 étapes:
 +  * Calcul sur l'ancien maillage
 +  * transfert de l'ancien maillage vers le nouveau maillage
 +  * Calcul sur le nouveau maillage
 +
 +
 +==== ALE ====
 +
 +
 +Rapprochement entre la version ALE avec transfert pour remaillage et la version ALE avec convection:
 +
 +Inversion des boucles sur les champs et sur les cellules.
 +
 +Avant :
 +  * Boucle sur les champs
 +     * Boucle sur les cellules
 +       * Calcul du transfert
 +Maintenant:
 +  * Boucle sur les cellules
 +    * Boucles sur les champs
 +      * Calcul du transfert
 +
 +Cette inversion entraine une augmentation de la RAM (stockage des valeurs pour tous les champs) et permet un gain en temps de calcul (augmentation des performances en parallèle : plus de calcul dans les boucles).
 +
 +
 +Modification de la manière d'utiliser l'ALE (convection).
 +Les cellules sur lesquelles la convection était calculé sont coupées en deux:
 +  * La première partie permet de calculer la convection.
 +  * La deuxième partie est utilisée pour l'évaluation des champs (reconstruction constante ou linéaire)
 +Ceci permet d'utiliser la reconstruction linéaire dans les méthodes de transfert pour le remaillage.
 +
 +Dans les cas test ALE (convection), il faut choisir le type d'élément "InriaCell" avec le type de cellule utilisée pour la reconstruction.
 +
 +<code>
 +elementProperties = ElementProperties(InriaCell)
 +elementProperties.put (FVCELLTYPE, CELLTYPE) avec CELLTYPE = GODUNOVCELL ou LINEARRECCELL
 +</code>
 +
 +
 +
 +==== Cas tests ====
 +
 +
 +Modification des cas tests sur le transfert (remaillage).
 +Il sont maintenant découpés en trois:
 +  * Calcul sur l'ancien maillage (cas_test_1.py)
 +     - Création d'un maillage
 +     - Résolution du problème  
 +  * Transfert de l'ancien maillage au nouveau. Deux objets Metafor sont crées (deux "Domain", "Mesh", etc.)(cas_test_2.py)
 +     - Importation des résultats calculés dans le cas test 1
 +     - Création d'un nouveau maillage (nouveau Metafor)
 +     - Transfert des données
 +     - Sauvegarde des données sur le nouveau maillage (nouveau Metafor)
 +  * Calcul sur le nouveau maillage (cas_test_3.py)
 +     - Reprise du calcul à partir des données sauvegardées après transfert.
 +
 +
 +===== Fichiers ajoutés/supprimés ======
 +
 +
 +<code>
 +[a]: oo_meta\mtALE\FECell.cpp
 +[a]: oo_meta\mtALE\FECell.h
 +[a]: oo_meta\mtALE\FECouplingMeshes.cpp
 +[a]: oo_meta\mtALE\FECouplingMeshes.h
 +[r]: oo_meta\mtALE\MTMInteraction.cpp
 +[r]: oo_meta\mtALE\MTMInteraction.h
 +[a]: oo_meta\mtALE\FEInteraction.cpp
 +[a]: oo_meta\mtALE\FEInteraction.h
 +[r]: oo_meta\mtALE\MTMCell.cpp
 +[r]: oo_meta\mtALE\MTMCell.h
 +[a]: oo_meta\mtALE\FETMCell.cpp
 +[a]: oo_meta\mtALE\FETMCell.h
 +[a]: oo_meta\mtALE\FVCell.cpp
 +[a]: oo_meta\mtALE\FVCell.h
 +[a]: oo_meta\mtALE\FVCellElShcuts.cpp
 +[a]: oo_meta\mtALE\FVCellElShcuts.h
 +[a]: oo_meta\mtALE\FVCellType.cpp
 +[a]: oo_meta\mtALE\FVCellType.h
 +[a]: oo_meta\mtALE\FVCouplingMeshes.cpp
 +[a]: oo_meta\mtALE\FVCouplingMeshes.h
 +[a]: oo_meta\mtALE\FVTMCell.inl
 +[a]: oo_meta\mtALE\FVTransferCell.cpp
 +[a]: oo_meta\mtALE\FVTransferCell.h
 +[a]: oo_meta\mtALE\FVTransferCell.inl
 +[a]: oo_meta\mtALE\IPETMCell.cpp
 +[a]: oo_meta\mtALE\IPETMCell.h
 +[a]: oo_meta\mtALE\IPFECell.cpp
 +[a]: oo_meta\mtALE\IPFECell.h
 +[a]: oo_meta\mtALE\IPFETMCell.cpp
 +[a]: oo_meta\mtALE\IPFETMCell.h
 +[a]: oo_meta\mtALE\NodalETMCell.cpp
 +[a]: oo_meta\mtALE\NodalETMCell.h
 +[a]: oo_meta\mtALE\NodalFECell.cpp
 +[a]: oo_meta\mtALE\NodalFECell.h
 +[a]: oo_meta\mtALE\NodalFETMCell.cpp
 +[a]: oo_meta\mtALE\NodalFETMCell.h
 +[a]: oo_meta\mtALE\SimpleLimiter.cpp
 +[a]: oo_meta\mtALE\SimpleLimiter.h
 +[a]: oo_meta\mtALE\TransferValueExtractor.cpp
 +[a]: oo_meta\mtALE\TransferValueExtractor.h
 +[r]: oo_meta\mtALE\TransferCell.inl
 +</code>
 +
 +
 +===== Tests ajoutés/supprimés =====
 +
 +<code>
 +[r]:apps\complex\rotMeshInter_1.py
 +[r]:apps\complex\rotMeshInter_2.py
 +[r]:apps\complex\rotMeshInter_3.py
 +[a]:apps\complex\rotMesh_ETMCell_1.py
 +[a]:apps\complex\rotMesh_ETMCell_2.py
 +[a]:apps\complex\rotMesh_ETMCell_3.py
 +[a]:apps\ale\convAnneau.py
 +[a]:apps\ale\convAnneau_ETMCell.py
 +[a]:apps\ale\convAnneau_FVTMCell.py
 +[a]:apps\ale\convAnneau_FVTMCell2.py
 +[a]:apps\ale\convAnneau_GlobMTMCell.py
 +[a]:apps\ale\convAnneau_LocMTMCell.py
 +[a]:apps\ale\convRot_ConvLine.py
 +[a]:apps\ale\convRot_ETMCell.py
 +[a]:apps\ale\convRot_FVTMCell.py
 +[a]:apps\ale\convRot_FVTMCell2.py
 +[a]:apps\ale\convRot_GlobMTMCell.py
 +[a]:apps\ale\convRot_LocMTMCell.py
 +[a]:apps\ale\rotAnneau2_ETMCell.py
 +</code>
 +
 +
 + --- //[[P.Bussetta@ulg.ac.be|Philippe BUSSETTA]] 2011/05/03//

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki