Table of Contents
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
— Philippe BUSSETTA 2011/05/03