Cassiopee Forum
CFD python modules
S'il vous plaît connectez vous ou Enregistrement'.
Date et heure en ce moment : mardi, 12 décembre 2017, 20:42

Nouvelle discussion | Répondre
Cassiopee Forum :: Discussions, suggestions, bug report :: Transform :: transform.symetrize() pour symétriser un maillage ?  ::
Sylvain Mouton
Junior Member
Image


Messages: 66
transform.symetrize() pour symétriser un maillage ? (jeudi, 16 juin 2011, 17:27) citation  
Bonjour,

Je voudrais savoir ce que réalise exactement symetrize(), à savoir :
* est-ce que le maillage d'origine est conservé ?
* les blocks obtenus sont-ils directs ?
* si oui, comment ? swap de i, de j ou de k ?
* si oui, les pointRange sont-ils mis à jour pour tenir compte du changement dans les indices i,j,k
* les tableaux de data associés (flowSolutions, etc.) éventuels sont-ils également mis à jour pour tenir compte de ce changement d'indices i,j,k

Et question plus orientée vers la pratique : si j'ai le maillage d'un demi-avion avec un plan de symétrie et que je veux calculer l'avion complet, en remplaçant le plan de symétrie par des connectivités avec les blocs miroirs, est-ce possible et comment procéder avec Cassiopée ?

Et si mon demi-maillage a déjà subit des opérations de masquage et qu'il contient, des OversetHoles des connectivités overlap et autres filouteries, que faire ?

Merci aux experts pour leur aide !

Ip enregistré Statut: déconnecté Profil | Site Web 
Ordre des réponses: Première réponse en dernier :: Première réponse en premier
Sylvain Mouton
Junior Member
Image


Messages: 66
RE: transform.symetrize() pour symétriser un maillage ? (lundi, 20 juin 2011, 12:56) citation  
Ayant l'intuition que la plupart des réponses aux questions de mon post sont 'non', je propose XTree.transform.mirrorY() aux personnes intéressées par la fonctionnalité décrite.
Sylvain

Ip enregistré Statut: déconnecté Profil | Site Web 
StephaniePeron
Full Member
Image


Messages: 159
RE: transform.symetrize() pour symétriser un maillage ? (mardi, 21 juin 2011, 16:41) citation  
Bonjour Sylvain

Pour répondre à tes questions:
1- le maillage d'origine est conservé si tu fais b = symetrize(a) bien entendu
2- les blocs obtenus peuvent être indirects effectivement
3- les pointRange ne sont pas touchés, ni le flow solution : symetrize n'agit que sur les coordonnées

Attention, le nom des zones est identique au nom des zones avant symétrie. A toi de changer le nom (faut voir si c'est mieux que ce soit fait en interne par la fonction, à réfléchir selon les usages de chacun)

-> pour remplacer le plan de symétrie, tu élimines les BC de type BCSymmetryPlane (C.rmBCOfType le fait par exemple)
puis un coup de connectMatch

Comme les indices ne sont pas modifiés : les noeuds OversetHoles non plus. Attention aux connectivités overlap, si tu mets des blocs d'interpolation (donorZone)





Ip enregistré Statut: déconnecté Profil | Site Web 
Sylvain Mouton
Junior Member
Image


Messages: 66
RE: transform.symetrize() pour symétriser un maillage ? (jeudi, 23 juin 2011, 11:17) citation  
Merci Stéphanie pour cette réponse.
Malheureusement, le fait d'avoir des blocks indirects est rédhibitoire pour elsA, il faut donc absolument swaper l'un des indices i,j,k et rectifier tous les tableaux et PointRange derrière.
De plus, étant donné que connectMatch ne gère pas les dégénérescences de mailles (voir d'autres post), je préfère éviter au maximum de l'utiliser. Qui plus est c'est une opération assez couteuse.
De manière générale je trouve dommage (et souvent dangereux) d'avoir à reconstruire des informations qui était disponibles au départ simplement parce qu'elles ont été détruites par une fonction. Mieux vaut faire évoluer la fonction en question pour qu'elle traite l'ensemble des info correctement.
Enfin, il peut y avoir plusieurs plans de symétrie dans un même maillage et donc il faut distinguer autour de quel plan le miroir est appliqué ce qui n'est pas possible avec rmBCOfType


Ip enregistré Statut: déconnecté Profil | Site Web 
Sylvain Mouton
Junior Member
Image


Messages: 66
RE: transform.symetrize() pour symétriser un maillage ? (jeudi, 7 juillet 2011, 14:38) citation  
Pour ceux qui auraient été tentés d'utiliser XTree.transform.mirrorY() comme suggéré dans mon post, je signale que jusqu'à ce matin 07/07/2011 la fonction était assez lourdement buggée.
La situation est à présent rétablie.

Ip enregistré Statut: déconnecté Profil | Site Web 
Tristan Soubrié
Newbie
Image
Pas d'avatar


Messages: 11
RE: transform.symetrize() pour symétriser un maillage ? (mercredi, 9 novembre 2011, 18:57) citation  
Bonjour,

Si ça peut motiver un développement, je suis également intéressé à symétriser un maillage sous Cassiopée, à savoir:
- symétriser
- réordonner en trièdres directs
- mettre à jour les connectivités
Pour l'instant, j'ai réussi à symétriser en faisant les étapes suivantes:
- charger le cgns
- symétriser avec Transform.symetrize
- renommer à la main les domaines symétrisés (domain.1 -> domain.(1+ndom))
- réordonner les blocs symétrisés en faisant Transform.reorder((-1,2,3))
- supprimer les connectivités match de la partie symétrisée avec Converter.PyTree.rmBCOfType(mesh_sym,'BCMatch')
- fusionner les deux bases (originales et symétrisées, avec Converter.PyTree.mergeTrees)
- enlever la condition de symétrie avec rmBCOfType
- recalculer les connectivités manquantes avec Connector.PyTree.connectMatch




Ip enregistré Statut: déconnecté Profil | Site Web 
Sylvain Mouton
Junior Member
Image


Messages: 66
RE: transform.symetrize() pour symétriser un maillage ? (mardi, 22 novembre 2011, 11:39) citation  
Le développement a été fait et utilisé sous XTree, mais je ne sais pas si tu y as accès...

Ip enregistré Statut: déconnecté Profil | Site Web 
Nouvelle discussion | Répondre

Software PBLang 4.65 © 2002-2003 by Martin Senftleben
Image