]> SALOME platform Git repositories - modules/eficas.git/commitdiff
Salome HOME
PN version NEW8 du 5/juin
authorPascale Noyret <pascale.noyret@edf.fr>
Tue, 5 Jun 2007 09:57:17 +0000 (09:57 +0000)
committerPascale Noyret <pascale.noyret@edf.fr>
Tue, 5 Jun 2007 09:57:17 +0000 (09:57 +0000)
Aster/Cata/cataSTA8/Macro/creation_donnees_homard.py
Aster/Cata/cataSTA8/Macro/defi_cable_bp_ops.py
Aster/Cata/cataSTA8/Macro/macr_adap_mail_ops.py
Aster/Cata/cataSTA8/Macro/macr_lign_coupe_ops.py

index ed50681b7e58f5266976eb43b974873264e01f3f..55cffc89b8dd4ca220b346b62e874f7a9c921510 100644 (file)
@@ -1,4 +1,4 @@
-#@ MODIF creation_donnees_homard Macro  DATE 30/10/2006   AUTEUR DURAND C.DURAND 
+#@ MODIF creation_donnees_homard Macro  DATE 04/04/2007   AUTEUR VIVAN L.VIVAN 
 # -*- coding: iso-8859-1 -*-
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
 # ======================================================================
-# RESPONSABLE MCOURTOI M.COURTOIS
+# RESPONSABLE VIVAN L.VIVAN
 """
 Cette classe crée le fichier de configuration permettant de lancer HOMARD depuis Code_Aster.
 """
-__revision__ = "V1.1"
+__revision__ = "V1.2"
 __all__ = [ ]
  
 import os
 import os.path
+from types import ListType, TupleType
+EnumTypes = (ListType, TupleType)
 
 try:
   from Utilitai.Utmess import UTMESS
@@ -183,6 +185,7 @@ class creation_donnees_homard:
         self.fic_homard_niterp1 = "M_" + self.str_niterp1 + ".hom"
       else :
         self.fic_homard_niter = None
+        self.fic_homard_niterp1 = None
 #
 #     6.1. Le pilotage de l'adaptation
 #
@@ -284,7 +287,7 @@ class creation_donnees_homard:
     if message_erreur is not None :
       UTMESS("F", self.nom_macro, message_erreur)
 #
-    return self.fic_homard_niter
+    return self.fic_homard_niter, self.fic_homard_niterp1
 # ------------------------------------------------------------------------------
   def ouvre_fichier (self, nomfic_local) :
     """Ouvre en écriture un fichier après l'avoir éventuellement détruit
@@ -467,8 +470,11 @@ class creation_donnees_homard:
         self.ecrire_ligne_configuration_2("CCNoMFro", self.dico_configuration["NOM_MED_MAILLAGE_FRONTIERE"])
         if self.mots_cles.has_key("GROUP_MA") :
           if self.mots_cles["GROUP_MA"] is not None :
-            for group_ma in self.mots_cles["GROUP_MA"] :
-              self.ecrire_ligne_configuration_2("CCGroFro", group_ma)
+            if not type(self.mots_cles["GROUP_MA"]) in EnumTypes :
+              self.ecrire_ligne_configuration_2("CCGroFro", self.mots_cles["GROUP_MA"])
+            else :
+              for group_ma in self.mots_cles["GROUP_MA"] :
+                self.ecrire_ligne_configuration_2("CCGroFro", group_ma)
 #
 #     8. L'éventuel maillage annexe
 #
index 5d77d5a389a63cfc8ff574231ea3da9980ee22fe..ea466d5a5e732b1929dba5bad51fac496243c39f 100644 (file)
@@ -1,4 +1,4 @@
-#@ MODIF defi_cable_bp_ops Macro  DATE 14/11/2006   AUTEUR ASSIRE A.ASSIRE 
+#@ MODIF defi_cable_bp_ops Macro  DATE 04/04/2007   AUTEUR VIVAN L.VIVAN 
 # -*- coding: iso-8859-1 -*-
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
@@ -24,7 +24,6 @@
 #           -------------------------------------
 # USAGE :
 # Entrée :
-#  - MAILLAGE
 #  - MODELE
 #  - CABLE
 #  - CHAM_MATER
@@ -46,7 +45,7 @@
 
 
 
-def defi_cable_bp_ops(self,MAILLAGE,MODELE,CHAM_MATER,CARA_ELEM,GROUP_MA_BETON,
+def defi_cable_bp_ops(self,MODELE,CHAM_MATER,CARA_ELEM,GROUP_MA_BETON,
                            DEFI_CABLE,TYPE_ANCRAGE,TENSION_INIT,RECUL_ANCRAGE,
                            RELAXATION,CONE,TITRE,INFO,**args):
 
@@ -92,25 +91,13 @@ def defi_cable_bp_ops(self,MAILLAGE,MODELE,CHAM_MATER,CARA_ELEM,GROUP_MA_BETON,
     motscles['CONE']=[]
     motscles['CONE'].append( dCONE )
 
-
-  # VERIFICATION QUE LE MAILLAGE EST COHERENT AVEC LE MODELE
-
+    # RECUPERATION DU MAILLAGE A PARTIR DU MODELE
     __MAIL = aster.getvectjev( string.ljust(MODELE.nom,8) + '.MODELE    .NOMA        ' )
-    if string.ljust(MAILLAGE.nom,8) != __MAIL[0] :
-      echo_mess=[]
-      echo_mess.append( ' \n' )
-      echo_mess.append( ' # ---------------------------------------------------------------------------\n' )
-      echo_mess.append( ' # DEFI_CABLE_BP - Erreur : LE CONCEPT MAILLAGE RENSEIGNE NE CORRESPOND       \n' )
-      echo_mess.append( ' #                          PAS A CELUI UTILISE DANS LE MODELE !              \n' )
-      echo_mess.append( ' # '+MAILLAGE.nom+' - '+__MAIL[0]+'\n' )
-      echo_mess.append( ' # ---------------------------------------------------------------------------\n' )
-      message=string.join(echo_mess)
-      UTMESS('F',message)
-
-
-  # DEFINITION DU NOM DES GROUP_NO
+    __MAIL= __MAIL[0].strip()
+    MAILLAGE = self.get_sd_avant_etape(__MAIL,self)
 
-    __NOM = '_AN_'
+    # DEFINITION DU NOM DES GROUP_NO
+    __NOM = 'AN__'
     __LGNO = MAILLAGE.LIST_GROUP_NO()
     __LGN1 = []
     for i in __LGNO : 
index 32a58b2e4029beb76dc04096c9d69f2c457c2109..feb09b5e0591a682e3ca5d1029c96c08a8a43dfc 100644 (file)
@@ -1,4 +1,4 @@
-#@ MODIF macr_adap_mail_ops Macro  DATE 30/10/2006   AUTEUR DURAND C.DURAND 
+#@ MODIF macr_adap_mail_ops Macro  DATE 04/04/2007   AUTEUR VIVAN L.VIVAN 
 # -*- coding: iso-8859-1 -*-
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
@@ -692,7 +692,7 @@ def macr_adap_mail_ops ( self,
   donnees_homard = creation_donnees_homard.creation_donnees_homard ( self.nom, args, dico_configuration )
   if ( INFO > 1 ) :
     donnees_homard.quel_mode ( )
-  fic_homard_niter = donnees_homard.creation_configuration ( )
+  fic_homard_niter, fic_homard_niterp1 = donnees_homard.creation_configuration ( )
   donnees_homard.ecrire_fichier_configuration ( )
   if ( mode_homard == "INFO" ) :
     Nom_Fichier_Donnees = donnees_homard.ecrire_fichier_donnees ( )
@@ -805,29 +805,38 @@ def macr_adap_mail_ops ( self,
                                  INFO = INFO, **motscsi )
 #
 #====================================================================
-# 8. Menage des fichiers MED et HOMARD devenus inutiles
+# 8. Menage des fichiers devenus inutiles
+#    On doit imperativement garder le dernier fichier homard produit
+#    En mode d'information, on garde également les fichiers textes
 #====================================================================
 #
-  liste_aux = [ fichier_aster_vers_homard ]
+  liste_aux = [fichier_aster_vers_homard]
+  liste_aux_bis = os.listdir(Rep_Calc_HOMARD_global)
+  for fic in liste_aux_bis :
+    fic_total = os.path.join(Rep_Calc_HOMARD_global, fic)
+    liste_aux.append(fic_total)
+  liste_aux_bis = []
   if ( mode_homard == "ADAP" ) :
     liste_aux.append(fichier_homard_vers_aster)
-    fic = os.path.join(Rep_Calc_HOMARD_global, fic_homard_niter)
-    liste_aux.append(fic)
-#gn  print "liste_aux = ",liste_aux
+    fic = os.path.join(Rep_Calc_HOMARD_global, fic_homard_niterp1)
+    liste_aux_bis.append(fic)
 #
   for fic in liste_aux :
-    if ( INFO > 1 ) :
-      print "Destruction du fichier ", fic
-    if os.path.isfile(fic) :
-      try :
-        os.remove(fic)
-      except os.error,codret_partiel :
-        self.cr.warn("Code d'erreur de remove : " + str(codret_partiel[0]) + " : " + codret_partiel[1])
-        UTMESS("F", self.nom, "Impossible de détruire le fichier : "+fic)
+    if fic not in liste_aux_bis :
+      if ( INFO > 1 ) :
+        print "Destruction du fichier ", fic
+      if os.path.isfile(fic) :
+        try :
+          os.remove(fic)
+        except os.error,codret_partiel :
+          self.cr.warn("Code d'erreur de remove : " + str(codret_partiel[0]) + " : " + codret_partiel[1])
+          UTMESS("F", self.nom, "Impossible de détruire le fichier : "+fic)
 #gn  print "Répertoire ",Rep_Calc_HOMARD_global
 #gn  os.system("ls -la "+Rep_Calc_HOMARD_global)
 #gn  print "Répertoire ",Rep_Calc_ASTER
 #gn  os.system("ls -la "+Rep_Calc_ASTER)
+#gn  print os.listdir(Rep_Calc_HOMARD_global)
+#gn  print "glop :", Rep_Calc_HOMARD_global
 #
 #====================================================================
 #  C'est fini !
index 639b6685a986700ce36c6a5ea116d75123e557ba..c9b31703a84b2d05d1538c54d1bc4d7d649cf0f6 100644 (file)
@@ -1,4 +1,4 @@
-#@ MODIF macr_lign_coupe_ops Macro  DATE 27/06/2006   AUTEUR THOMASSO D.THOMASSON 
+#@ MODIF macr_lign_coupe_ops Macro  DATE 09/05/2007   AUTEUR SALMONA L.SALMONA 
 # -*- coding: iso-8859-1 -*-
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
@@ -231,9 +231,22 @@ def macr_lign_coupe_ops(self,RESULTAT,UNITE_MAILLAGE,LIGN_COUPE,NOM_CHAM,
 
   # Expression des contraintes aux noeuds ou des déplacements dans le repere local
   __remodr=__recou
+  icham=0
+  ioc2=0
+  mcACTION=[]
   if AsType(RESULTAT).__name__ in ('evol_elas','evol_noli') :
-   for m in LIGN_COUPE :
+   if  NOM_CHAM in ('DEPL','SIEF_ELNO_ELGA','SIGM_NOEU_DEPL','SIGM_NOEU_SIEF','SIGM_NOEU_ELGA','SIGM_NOEU_COQU'):icham=1
+  # Gestion du calcul en repère local - VECT_Y
+   rep_local=0
+   if m['NB_POINTS'] !=None :
       if m['VECT_Y'] !=None :
+         if icham: rep_local=1
+         else :
+           UTMESS('A','MACR_LIGN_COUPE','LE CHAMP '+NOM_CHAM+' N EST PAS TRAITE PAR MACR_LIGNE_COUPE EN REPERE LOCAL.'
+                   +'LE CALCUL EST EFFECTUE EN REPERE GLOBAL.')
+
+   for m in LIGN_COUPE :
+      if rep_local:
         epsi=0.00000001
         # --- determination des angles nautiques
         cx1=m['COOR_EXTR'][0]-m['COOR_ORIG'][0]
@@ -299,7 +312,6 @@ def macr_lign_coupe_ops(self,RESULTAT,UNITE_MAILLAGE,LIGN_COUPE,NOM_CHAM,
         alpha=alpha*180/math.pi
         beta=beta*180/math.pi
         gamma=gamma*180/math.pi
-
         # --- MODI_REPERE
         motscles={}
         motscles['MODI_CHAM']=[]
@@ -313,7 +325,7 @@ def macr_lign_coupe_ops(self,RESULTAT,UNITE_MAILLAGE,LIGN_COUPE,NOM_CHAM,
               LCMP=['DX','DY','DZ']
               TYPE_CHAM='VECT_3D'
            motscles['MODI_CHAM'].append(_F(NOM_CHAM=NOM_CHAM,NOM_CMP=LCMP,TYPE_CHAM=TYPE_CHAM),)
-        elif NOM_CHAM in ('SIGM_NOEU_DEPL','SIGM_NOEU_SIEF','SIGM_NOEU_ELGA','SIGM_NOEU_COQU'):
+        elif NOM_CHAM in ('SIGM_NOEU_DEPL','SIEF_ELNO_ELGA','SIGM_NOEU_SIEF','SIGM_NOEU_ELGA','SIGM_NOEU_COQU'):
            if dime == 2:
               LCMP=['SIXX','SIYY','SIZZ','SIXY']
               TYPE_CHAM='TENS_2D'
@@ -321,6 +333,7 @@ def macr_lign_coupe_ops(self,RESULTAT,UNITE_MAILLAGE,LIGN_COUPE,NOM_CHAM,
               LCMP=['SIXX','SIYY','SIZZ','SIXY','SIXZ','SIYZ']
               TYPE_CHAM='TENS_3D'
            motscles['MODI_CHAM'].append(_F(NOM_CHAM=NOM_CHAM,NOM_CMP=LCMP,TYPE_CHAM=TYPE_CHAM),)
+
         # DEFI_REPERE
         ANGL_NAUT=[]
         ANGL_NAUT.append(alpha)
@@ -330,29 +343,62 @@ def macr_lign_coupe_ops(self,RESULTAT,UNITE_MAILLAGE,LIGN_COUPE,NOM_CHAM,
         motscles['DEFI_REPERE'].append(_F(REPERE='UTILISATEUR',ANGL_NAUT=ANGL_NAUT),)
         __remodr=MODI_REPERE(RESULTAT=__recou,**motscles)
 
+        if m['NB_POINTS'] !=None :
+          ioc2=ioc2+1
+          groupe='LICOU'+str(ioc2)
+          if m['INTITULE'] !=None : intitl=m['INTITULE']
+          else                    : intitl='l.coupe'+str(ioc2)
+        elif m['GROUP_NO']!=None :
+          groupe=m['GROUP_NO'].ljust(8).upper()
+          if m['INTITULE'] !=None : intitl=m['INTITULE']
+          else                    : intitl=groupe
+        mcACTION.append( _F(INTITULE  = intitl,
+                            RESULTAT  = __remodr,
+                            GROUP_NO  = groupe,
+                            NOM_CHAM  = NOM_CHAM,
+                            TOUT_CMP  = 'OUI',
+                            OPERATION = 'EXTRACTION', )           )
+
+      else:
 
 
   # Production d'une table pour toutes les lignes de coupe
-
-  ioc2=0
-  mcACTION=[]
-  for m in LIGN_COUPE :
-      if m['NB_POINTS'] !=None :
-        ioc2=ioc2+1
-        groupe='LICOU'+str(ioc2)
-        if m['INTITULE'] !=None : intitl=m['INTITULE']
-        else                    : intitl='l.coupe'+str(ioc2)
-      elif m['GROUP_NO']!=None :
-        groupe=m['GROUP_NO'].ljust(8).upper()
-        if m['INTITULE'] !=None : intitl=m['INTITULE']
-        else                    : intitl=groupe
-      mcACTION.append( _F(INTITULE  = intitl,
-                          RESULTAT  = __remodr,
-                          GROUP_NO  = groupe,
-                          NOM_CHAM  = NOM_CHAM,
-                          TOUT_CMP  = 'OUI',
-                          OPERATION = 'EXTRACTION', )           )
-
+        for m in LIGN_COUPE :
+             if m['NB_POINTS'] !=None :
+              ioc2=ioc2+1
+              groupe='LICOU'+str(ioc2)
+              if m['INTITULE'] !=None : intitl=m['INTITULE']
+              else                    : intitl='l.coupe'+str(ioc2)
+             elif m['GROUP_NO']!=None :
+              groupe=m['GROUP_NO'].ljust(8).upper()
+              if m['INTITULE'] !=None : intitl=m['INTITULE']
+              else                    : intitl=groupe
+             mcACTION.append( _F(INTITULE  = intitl,
+                                RESULTAT  = __recou,
+                                GROUP_NO  = groupe,
+                                NOM_CHAM  = NOM_CHAM,
+                                TOUT_CMP  = 'OUI',
+                                OPERATION = 'EXTRACTION', )           )
+  elif AsType(RESULTAT).__name__ in ('evol_ther',) :
+     for m in LIGN_COUPE :
+        if m['NB_POINTS'] !=None :
+          ioc2=ioc2+1
+          groupe='LICOU'+str(ioc2)
+          if m['INTITULE'] !=None : intitl=m['INTITULE']
+          else                    : intitl='l.coupe'+str(ioc2)
+        elif m['GROUP_NO']!=None :
+          groupe=m['GROUP_NO'].ljust(8).upper()
+          if m['INTITULE'] !=None : intitl=m['INTITULE']
+          else                    : intitl=groupe
+        mcACTION.append( _F(INTITULE  = intitl,
+                            RESULTAT  = __recou,
+                            GROUP_NO  = groupe,
+                            NOM_CHAM  = NOM_CHAM,
+                            TOUT_CMP  = 'OUI',
+                            OPERATION = 'EXTRACTION', )           )
   __tabitm=POST_RELEVE_T(ACTION=mcACTION,);
 
   # on repasse par les tables python pour supprimer les paramètres inutiles
@@ -360,19 +406,11 @@ def macr_lign_coupe_ops(self,RESULTAT,UNITE_MAILLAGE,LIGN_COUPE,NOM_CHAM,
 
   self.DeclareOut('nomres',self.sd)
   dictab=__tabitm.EXTR_TABLE()
-  listpara=dictab.para
-  listpara.remove('NOEUD')
-  listpara.remove('RESU')
-
-  coltab=[]
-  for key in listpara :
-      val=dictab[key].values()[key]
-      if   type(val[0])==types.IntType :
-         coltab.append(_F(PARA=key,LISTE_I=val))
-      elif type(val[0])==types.FloatType :
-         coltab.append(_F(PARA=key,LISTE_R=val))
-      elif type(val[0])==types.StringType :
-         coltab.append(_F(PARA=key,LISTE_K=val,TYPE_K='K16'))
-  nomres=CREA_TABLE(LISTE=coltab)
+
+  del dictab['NOEUD']
+  del dictab['RESU']
+  dprod = dictab.dict_CREA_TABLE()
+
+  nomres=CREA_TABLE(**dprod)
 
   return ier