1 #@ MODIF co_cham_no SD DATE 06/08/2007 AUTEUR TARDIEU N.TARDIEU
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.
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.
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 # ======================================================================
23 from sd_cham_no import sd_cham_no
24 from co_champ import cham_gd_sdaster
28 # -----------------------------------------------------------------------------
30 class post_comp_cham_no :
31 def __init__(self,valeurs,noeud=None) :
35 # -----------------------------------------------------------------------------
36 class cham_no_sdaster(cham_gd_sdaster, sd_cham_no):
37 def EXTR_COMP(self,comp,lgno,topo=0) :
38 """ retourne les valeurs de la composante comp du champ sur la liste
39 de groupes de noeuds lgno avec eventuellement l'info de la
40 topologie si topo>0. Si lgno est une liste vide, c'est equivalent
41 a un TOUT='OUI' dans les commandes aster
43 - self.valeurs : Numeric.array contenant les valeurs
44 Si on a demande la topo (i.e. self.topo = 1) :
45 - self.noeud : numero de noeud """
47 raise Accas.AsException("Erreur dans cham_no.EXTR_COMP en PAR_LOT='OUI'")
50 ncham=ncham+(8-len(ncham))*' '
52 ncmp=comp+(8-len(comp))*' '
54 aster.prepcompcham(ncham,nchams,ncmp,"NO ",topo,lgno)
56 valeurs=Numeric.array(aster.getvectjev(nchams+(19-len(ncham))*' '+'.V'))
59 noeud=(aster.getvectjev(nchams+(19-len(ncham))*' '+'.N'))
63 aster.prepcompcham("__DETR__",nchams,ncmp,"NO ",topo,lgno)
65 return post_comp_cham_no(valeurs,noeud)
67 def __add__(self, other):
68 from SD.sd_nume_equa import sd_nume_equa
69 from SD.sd_maillage import sd_maillage
70 from SD.co_maillage import maillage_sdaster
71 from Cata.cata import CREA_CHAMP,_F
72 from Noyau.nommage import GetNomConceptResultat
74 __nume_ddl=sd_nume_equa(self.REFE.get()[1])
75 __gd=__nume_ddl.REFN.get()[1].strip()
77 # on recupere le nom du maillage
78 __nomMaillage=self.REFE.get()[0].strip()
79 # on recupere l'objet du maillage
80 __maillage=CONTEXT.get_current_step().sds_dict[__nomMaillage]
81 # on recupere le nom a gauche du signe "="
82 toto=GetNomConceptResultat(self)
83 print 50*'#','\n',toto,50*'#','\n'
84 __CHAM = CREA_CHAMP(OPERATION='ASSE',
88 ASSE=(_F(CHAM_GD=self,