]> SALOME platform Git repositories - tools/eficas.git/blob - Aster/Cata/cataSTA10/SD/co_vect_asse_gene.py
Salome HOME
Modif V6_4_°
[tools/eficas.git] / Aster / Cata / cataSTA10 / SD / co_vect_asse_gene.py
1 #@ MODIF co_vect_asse_gene SD  DATE 11/05/2010   AUTEUR COURTOIS M.COURTOIS 
2 # -*- coding: iso-8859-1 -*-
3 #            CONFIGURATION MANAGEMENT OF EDF VERSION
4 # ======================================================================
5 # COPYRIGHT (C) 1991 - 2007  EDF R&D                  WWW.CODE-ASTER.ORG
6 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
7 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
8 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
9 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
10 #                                                                       
11 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
12 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
13 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
14 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
15 #                                                                       
16 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
17 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
18 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
19 # ======================================================================
20
21 import Accas
22 from SD import *
23 from sd_cham_gene import sd_cham_gene
24
25 import numpy
26
27 # -----------------------------------------------------------------------------
28
29 class vect_asse_gene(ASSD, sd_cham_gene):
30    def EXTR_VECT_GENE_R(self) :
31       """ retourne les valeurs du vecteur generalisee
32       dans un format numpy
33          Attributs retourne
34             - self.valeurs : numpy.array contenant les valeurs """
35       if not self.accessible():
36          raise Accas.AsException("Erreur dans vect_asse_gene_r.EXTR_VECT_GENE en PAR_LOT='OUI'")
37       ncham=self.get_name()
38       ncham=ncham+(8-len(ncham))*' '
39       valeur=numpy.array(aster.getvectjev(ncham+(19-len(ncham))*' '+'.VALE'))
40       return valeur
41
42    def RECU_VECT_GENE_R(self,vecteur) :
43       """ envoie les valeurs d'un tableau numpy dans un vecteur generalise
44       reel definie dans jeveux
45          Attributs ne retourne rien """
46       if not self.accessible():
47          raise Accas.AsException("Erreur dans vect_asse_gene_r.RECU_VECT_GENE en PAR_LOT='OUI'")
48
49       numpy.asarray(vecteur)
50       ncham=self.get_name()
51       ncham=ncham+(8-len(ncham))*' '
52       desc=numpy.array(aster.getvectjev(ncham+(19-len(ncham))*' '+'.DESC'))
53       # On teste si le DESC du vecteur existe
54       if (desc==None):
55          raise Accas.AsException("L'objet vecteur n'existe pas ou \
56          est mal cree par Code Aster")
57       # On teste si la taille du vecteur jeveux et python est identique
58       if desc[1]<>numpy.shape(vecteur)[0] :
59          raise Accas.AsException("La taille du vecteur python est incorrecte")
60       aster.putvectjev(ncham+(19-len(ncham))*' '+'.VALE',len(vecteur),tuple((\
61       range(1,len(vecteur)+1))),tuple(vecteur),tuple(vecteur),1)
62       return
63
64    def EXTR_VECT_GENE_C(self) :
65       """ retourne les valeurs du vecteur generalisee
66       dans un format numpy
67          Attributs retourne
68             - self.valeurs : numpy.array contenant les valeurs """
69       if not self.accessible():
70          raise Accas.AsException("Erreur dans vect_asse_gene_c.EXTR_VECT_GENE en PAR_LOT='OUI'")
71
72       ncham=self.get_name()
73       ncham=ncham+(8-len(ncham))*' '
74       valeur=numpy.array(aster.getvectjev(ncham+(19-len(ncham))*' '+'.VALE'), complex)
75
76       return valeur
77
78    def RECU_VECT_GENE_C(self,vecteur) :
79       """ envoie les valeurs d'un tableau numpy dans un vecteur generalise
80       complexe definie dans jeveux
81          Attributs ne retourne rien """
82       if not self.accessible():
83          raise Accas.AsException("Erreur dans vect_asse_gene_c.RECU_VECT_GENE en PAR_LOT='OUI'")
84
85       numpy.asarray(vecteur)
86       ncham=self.get_name()
87       ncham=ncham+(8-len(ncham))*' '
88       desc=numpy.array(aster.getvectjev(ncham+(19-len(ncham))*' '+'.DESC'))
89       # On teste si le DESC de la matrice existe
90       if (desc==None):
91          raise Accas.AsException("L'objet vecteur n'existe pas ou \
92          est mal cree par Code Aster")
93       # On teste si la taille de la matrice jeveux et python est identique
94       if desc[1]<>numpy.shape(vecteur)[0] :
95          raise Accas.AsException("La taille du vecteur python est incorrecte")
96       tmpr=vecteur.real
97       tmpc=vecteur.imag
98       aster.putvectjev(ncham+(19-len(ncham))*' '+'.VALE',len(tmpr),tuple((
99       range(1,len(tmpr)+1))),tuple(tmpr),tuple(tmpc),1)
100       return
101