Cassiopee Forum
CFD python modules
S'il vous plaît connectez vous ou Enregistrement'.
Date et heure en ce moment : lundi, 20 novembre 2017, 20:10

Nouvelle discussion | Répondre
Cassiopee Forum :: Discussions, suggestions, bug report :: Post :: [Résolu] Non répétabilité du calcul de la vorticité ?  ::
LucasPascal
Newbie
Image


Messages: 6
[Résolu] Non répétabilité du calcul de la vorticité ? (vendredi, 3 juillet 2015, 14:40) citation  
Bonjour,

Grâce à votre aide (discussion http://elsa.onera.fr/Cassiopee/Forum/post.php?cat=1&fid=2&pid=42&page=1) j'ai pu calculer la vorticité.

J'observe un comportement étrange à savoir la non répétabilité du calcul de la vorticité ! Si j'effectue un premier calcul et que je trace à une station donnée la vorticité en fonction de la normale à la paroi, je n'obtiens pas forcément le même profil de vorticité en répétant l'opération !

À titre d'exemple, vous pourrez voir deux profils aux adressse :
ftp://ftp.onecert.fr/incoming/figure_1.png
ftp://ftp.onecert.fr/incoming/figure_2.png

Pour info, ces images ont été générées par le code suivant :
import numpy as np
import pylab as plt

import Post.PyTree as P
import Converter.PyTree as C # Cassiopee
import Converter.Internal as Internal

import myElsa
import MyFunctions.MyMath as MyMath


extract_BL_dir='/tmp_user/ldmae306h/fpascal/Transition_CROR/Analysis/Extract_BL/'
side='pressure'

filename_data = extract_BL_dir+'Temporary_files/'+side+'_rotating_frame.tp'
filename_mesh = extract_BL_dir+'Temporary_files/'+side+'_mesh.tp'

mesh = C.convertFile2PyTree(filename_mesh,format='bin_tp') # Lit les coords en noeuds
data = C.convertFile2PyTree(filename_data,format='bin_tp') # Lit les champs en centres (var conservatives)

# Je suppose que les zones sont dans le meme ordre dans les deux fichiers
# Ajoute la solution en centres dans mesh
t= mesh
t = C.cpVars(data, 'Density', t, 'centers:Density')
t = C.cpVars(data, 'MomentumX', t, 'centers:MomentumX')
t = C.cpVars(data, 'MomentumY', t, 'centers:MomentumY')
t = C.cpVars(data, 'MomentumZ', t, 'centers:MomentumZ')
t = C.cpVars(data, 'EnergyStagnationDensity', t, 'centers:EnergyStagnationDensity')

# hack because of bug in R4 (GridLocation is missing)
nodes = Internal.getNodesFromName(t, 'FlowSolution#Centers')
for n in nodes: Internal.createUniqueChild(n, 'GridLocation', 'GridLocation_t', 'CellCenter')

# Vorticity
t = P.computeExtraVariable(t, 'centers:VorticityMagnitude')
zonename = C.getZoneNames(t)

rot_U = C.convertPyTree2Array(zonename[0]+"/FlowSolution#Centers/VorticityMagnitude", t)
rot_U, trash = myElsa.Cassiopee2array(rot_U); rot_U = rot_U[0] # Conversion en tableau de dimension ni x nj x nk


zonename = C.getZoneNames(data)
x ,trash = myElsa.Cassiopee2array(C.convertPyTree2Array(zonename[0]+"/GridCoordinates/CoordinateX" , data)); x=x[0] # Conversion en tableau de dimension ni x nj x nk
y ,trash = myElsa.Cassiopee2array(C.convertPyTree2Array(zonename[0]+"/GridCoordinates/CoordinateY" , data)); y=y[0] # Conversion en tableau de dimension ni x nj x nk
z ,trash = myElsa.Cassiopee2array(C.convertPyTree2Array(zonename[0]+"/GridCoordinates/CoordinateZ" , data)); z=z[0] # Conversion en tableau de dimension ni x nj x nk


ni = x.shape[0]
nk = x.shape[2]


id_i=6
id_k=2

point_profile = np.array([x[id_i,0,id_k],y[id_i,0,id_k],z[id_i,0,id_k]])
n = MyMath.compute_distance_to_point(x[id_i,:,id_k],y[id_i,:,id_k],z[id_i,:,id_k],point_profile)

rot_U_ik = rot_U[id_i,:,id_k]

plt.xlim([-0.05*np.max(rot_U_ik),1.1*np.max(rot_U_ik)])
plt.xlabel(r'$rot(U)$')
plt.ylabel(r'$n$')
plt.plot(rot_U_ik,n)
plt.show()

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


Messages: 158
RE: Non répétabilité du calcul de la vorticité ? (jeudi, 2 juillet 2015, 16:40) citation  
Bonjour

Est-ce que vous pouvez vérifier une chose, après la ligne :

t = P.computeExtraVariable(t, 'centers:VorticityMagnitude')

vous sauvegardez t en fichier
C.convertPyTree2File(t,"out1.cgns")

La deuxième fois vous l'appelez out2.cgns
Ensuite, dans un script à part :
t1 = C.convertFile2PyTree("out1.cgns")
t2 = C.convertFile2PyTree("out2.cgns")
ret = C.diffArrays(t2,t1)
print C.getMaxValue(ret,'centers:DVorticityMagnitude')

Cela permet de voir si les deux arbres diffèrent et si ça vient de la fonction. Si oui, vous nous envoyez le cas directement; sinon c'est que le problème vient de plus bas dans votre script...



Ip enregistré Statut: déconnecté Profil | Site Web 
LucasPascal
Newbie
Image


Messages: 6
RE: Non répétabilité du calcul de la vorticité ? (jeudi, 2 juillet 2015, 18:36) citation  
Merci pour votre réponse.

Le deuxième script affiche :

>> Reading out1.cgns (bin_adf)...done.
>> Reading out2.cgns (bin_adf)...done.
>> 140398607.076


Ip enregistré Statut: déconnecté Profil | Site Web 
LucasPascal
Newbie
Image


Messages: 6
RE: Non répétabilité du calcul de la vorticité ? (vendredi, 3 juillet 2015, 14:40) citation  
Suite à l'aide de Stéphanie, le problème a été résolu en réinstallant Cassiopee sur ma station. Par contre, je suis incapable de dire en quoi ma deuxième installation diffère de la première ...

Ip enregistré Statut: déconnecté Profil | Site Web 
Alexandre Minot
Newbie
Image


Messages: 14
RE: [Résolu] Non répétabilité du calcul de la vorticité ? (lundi, 11 juillet 2016, 10:19) citation  
Bonjour,

Je me permets de ré-ouvrir ce post car j'ai le même problème que Lucas.

J'utilise la fonction
tree = Post.computeExtraVariable(tree, 'VoticityMagnitude')
ou (sans résolution du problème)
tree = Post.computeExtraVariable(tree, 'centers:VoticityMagnitude')
sur un calcul de plaque plane elsA.

Voici une image d'extractions de profils de vorticité en différentes positions de x (y étant la normale à la paroi). Sur cette figure, on compare le calcul du module de la vorticité sortie par elsA et celui calculé par Cassiopee à partir du résultat du calcul elsA. Le script Cassiopee est lancé deux fois, pour donner les courbes 'Cassiopee' et 'Cassiopee2'.

image : https://we.tl/w0dozTZJgT

On peut voir sur ces figures que le calcul Cassiopee est faut en certains points, donnant des pics à la courbe. En comparant les courbes, on note que le calcul de la vorticité échoue en des points similaires, mais pas systématiquement les mêmes. De plus, lorsque le calcul échoue, la valeur de la vorticité est systématiquement différente entre les deux calculs Cassiopee, d'où le caractère non-répétable observé par Lucas.

Avez-vous identifié la source du problème ?
Merci d'avance,
Alexandre.

PS1 : J'ai le même problème sur les deux versions que nous avons à Safran Tech, à savoir la 2.0 et la 2.1.

PS2 :
Le script de test demandé à Lucas :
import Converter.PyTree as C
import Converter.Internal as I
import Post.PyTree as P

tree = C.convertFile2PyTree('T3B_full3D.cgns')

I.__FlowSolutionNodes__="FlowSolution#EndOfRun_Vertex" # redefine the name of the FlowSolution nodes
I.__FlowSolutionCenters__="FlowSolution#EndOfRun_CellCenter"

t1 = P.computeExtraVariable(tree, 'centers:VorticityMagnitude')
C.convertPyTree2File(t1,"out1.cgns")

t2 = P.computeExtraVariable(tree, 'centers:VorticityMagnitude')
C.convertPyTree2File(t2,"out2.cgns")

t1_new = C.convertFile2PyTree("out1.cgns")
t2_new = C.convertFile2PyTree("out2.cgns")
ret = C.diffArrays(t2_new,t1_new)
print C.getMaxValue(ret,'centers:DVorticityMagnitude')

>> 996158.034605
ou si on relance:
>> 860789.153197
ou encore :
>> 491679.656503



Ip enregistré Statut: déconnecté Profil | Site Web 
Alexandre Minot
Newbie
Image


Messages: 14
RE: [Résolu] Non répétabilité du calcul de la vorticité ? (lundi, 11 juillet 2016, 10:07) citation  


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


Messages: 158
RE: [Résolu] Non répétabilité du calcul de la vorticité ? (lundi, 11 juillet 2016, 14:46) citation  
Bonjour Alexandre
Est-ce qu'il est possible de récupérer le fichier T3B_full3D.cgns pour faire le même test ?
Sur le forum, les pièces jointes ne marchent pas, on n'a pas les visus, mais si tu peux nous les envoyer par mail à l'adresse dmfn-cassiopee, merci.
Merci
Stéphanie

Ip enregistré Statut: déconnecté Profil | Site Web 
Alexandre Minot
Newbie
Image


Messages: 14
RE: [Résolu] Non répétabilité du calcul de la vorticité ? (mardi, 5 septembre 2017, 17:25) citation  
Pour ceux qui tombent sur ce post :

La source du problème n'a pas été identifiée, mais il a disparu en recompilant plus proprement.

Plus de soucis depuis.

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

Software PBLang 4.65 © 2002-2003 by Martin Senftleben
Image