====== 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. elementProperties = ElementProperties(InriaCell) elementProperties.put (FVCELLTYPE, CELLTYPE) avec CELLTYPE = GODUNOVCELL ou LINEARRECCELL ==== 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 ====== [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 ===== Tests ajoutés/supprimés ===== [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 --- //[[P.Bussetta@ulg.ac.be|Philippe BUSSETTA]] 2011/05/03//