Definition of ASTER_TIMER class.
"""
-__revision__ = "$Id: as_timer.py,v 1.2.6.1 2007-10-22 12:23:38 pnoyret Exp $"
+__revision__ = "$Id: as_timer.py,v 1.3.4.1 2008-11-13 10:35:09 cchris Exp $"
# ----- differ messages translation
def _(mesg):
#
__version__="$Name: $"
-__Id__="$Id: cata.py,v 1.3.8.6 2007-06-15 13:57:36 cchris Exp $"
+__Id__="$Id: cata.py,v 1.4.14.1 2008-11-13 10:35:10 cchris Exp $"
#
JdC = JDC_CATA(code='ASTER',
execmodul=None,
pass
__version__="$Name: $"
-__Id__="$Id: cata.py,v 1.4.6.1.4.1 2008-10-10 13:28:49 pnoyret Exp $"
+__Id__="$Id: cata.py,v 1.5.4.3 2008-12-08 13:50:34 pnoyret Exp $"
EnumTypes = (ListType, TupleType)
INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
TITRE =SIMP(statut='f',typ='TXM',max='**'),
) ;
-#& MODIF COMMANDE DATE 10/07/2006 AUTEUR LEBOUVIE F.LEBOUVIER
+#& MODIF COMMANDE DATE 01/10/2008 AUTEUR MACOCCO K.MACOCCO
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
GROUP_MA =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'),
),
ORIE_NORM_COQUE =FACT(statut='f',max='**',
- regles=(EXCLUS('NOEUD','GROUP_NO'),
- PRESENT_PRESENT('NOEUD','VECT_NORM'),
- PRESENT_PRESENT('GROUP_NO','VECT_NORM'),),
GROUP_MA =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'),
VECT_NORM =SIMP(statut='f',typ='R',max=3),
- NOEUD =SIMP(statut='f',typ=no),
- GROUP_NO =SIMP(statut='f',typ=grno),
+ b_vect_norm =BLOC(condition = "VECT_NORM != None",
+ regles=UN_PARMI('NOEUD','GROUP_NO'),
+ NOEUD =SIMP(statut='f',typ=no),
+ GROUP_NO =SIMP(statut='f',typ=grno),
+ ),
),
PLAQ_TUBE =FACT(statut='f',
DEXT =SIMP(statut='o',typ='R' ),
VECT_X =SIMP(statut='o',typ='R',min=2,max=3),
VECT_Y =SIMP(statut='f',typ='R',min=2,max=3),
),
- ECHELLE =SIMP(statut='f',typ='R',),
+ ECHELLE =SIMP(statut='f',typ='R',),
TRANSLATION =SIMP(statut='f',typ='R',min=2,max=3),
ROTATION =FACT(statut='f',max='**',
POIN_1 =SIMP(statut='o',typ='R',min=2,max=3),
--- /dev/null
+#@ MODIF __init__ Intranet DATE 18/09/2007 AUTEUR DURAND C.DURAND
+
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# ======================================================================
--- /dev/null
+#@ MODIF calc_eolienne Intranet DATE 18/09/2007 AUTEUR DURAND C.DURAND
+
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# ======================================================================
+#
+# LISTE DES FONCTIONS, MACROS et CATALOGUES
+#
+# MACROS
+#
+# calc_char_houle
+# macr_calc_eolienne
+#
+# FONCTIONS
+#
+# mail_eolienne
+# eolien_regression
+# lect_resu_stream
+# donn_boucle_pas_temps
+# extr_char_houle
+#
+# CATALOGUES
+#
+# CALC_CHAR_HOULE
+# MACR_CALC_EOLIENNE
+#
+#____________________________________________________________________
+#
+# On charge les modules necessaires
+import os
+import Numeric
+import re
+import math
+#
+# permet de definir dans le meme fichier les catalogues et les macros
+from Cata.cata import *
+#
+#____________________________________________________________________
+#____________________________________________________________________
+#
+#____________________________________________________________________
+#___________________ DEBUT MACRO calc_char_houle ____________________
+#
+#
+def calc_char_houle_ops(self, INFO, STREAM, IMPRESSION, **args):
+#
+# 1. args est le dictionnaire des arguments
+# args.keys() est la liste des mots-clés
+# args.keys()[0] est la premiere valeur de cette liste
+# args.keys()[1:] est la liste des valeurs suivantes dans cette liste
+# args.keys(mot_cle) représente le contenu de la variable mot_cle dans la macro appelante.
+
+ """ Calcule le chargement du a la houle. """
+
+# On charge les modules nécessaires
+ from Accas import _F
+ import aster
+
+#____________________________________________________________________
+#
+# 1. Préalables
+#____________________________________________________________________
+
+# 1.1 ==> La macro compte pour 1 dans l'exécution des commandes
+
+ self.set_icmd(1)
+
+# 1.2 ==> On importe les définitions des commandes Aster utilisées
+# dans la macro
+
+ EXEC_LOGICIEL = self.get_cmd("EXEC_LOGICIEL")
+ IMPR_TABLE= self.get_cmd("IMPR_TABLE")
+ DEFI_FICHIER= self.get_cmd("DEFI_FICHIER")
+
+# 1.3 ==> Le nom des programmes à lancer
+
+# repertoire_outils = "/home/eolien/ASTER_EOLIEN/"
+ repertoire_outils = aster.repout()
+ calc_houle = repertoire_outils + "calc_houle"
+
+# 1.4 ==> Initialisations
+
+ erreur = 0
+ erreur_partiel = [0]
+ Rep_Calc_ASTER = os.getcwd()
+
+ messages_erreur = { 0 : "<CALC_CHAR_HOULE> Tout va bien.",
+ 1 : "<CALC_CHAR_HOULE> Impossible de créer le répertoire de travail pour le logiciel de calcul de houle.",
+ 100 : "<CALC_CHAR_HOULE> Erreur." }
+
+ while not erreur :
+
+#____________________________________________________________________
+#
+# 2. Répertoires et fichiers
+#____________________________________________________________________
+#
+
+# 2.1. ==> Création du répertoire pour l'exécution du logiciel STREAM_FM
+
+ Nom_Rep_local_houle = "tmp_stream"
+ Rep_Calc_LOGICIEL_local_houle = os.path.join(".",Nom_Rep_local_houle)
+ Rep_Calc_LOGICIEL_global_houle = os.path.join(Rep_Calc_ASTER,Nom_Rep_local_houle)
+
+ try :
+ os.mkdir(Rep_Calc_LOGICIEL_global_houle)
+ except os.error,erreur_partiel :
+ self.cr.warn("Code d'erreur de mkdir : " + str(erreur_partiel[0]) + " : " + erreur_partiel[1])
+ self.cr.fatal("Impossible de créer le répertoire de travail pour le logiciel de calcul de houle : "+Rep_Calc_LOGICIEL_global_houle)
+ erreur = 1
+ break
+
+# 2.2. ==> On cree un fichier annexe pour transmettre des infos à la procédure de lancement
+# de STREAM_FM
+
+ fic_Info_ASTER = os.path.join(Rep_Calc_LOGICIEL_global_houle,"InfoExecASTER")
+ f_execAster = open(fic_Info_ASTER, "w")
+ f_execAster.write(str(INFO)+"\n")
+ f_execAster.close()
+
+#____________________________________________________________________
+#
+# 3. Décodage des arguments de la macro-commande
+# et création des fichiers pour STREAM_FM
+#____________________________________________________________________
+
+# 3.1. ==> Les fichiers pour le logiciel STREAM_FM
+# Ils sont créés dans le répertoire d'exécution du logiciel, avec leurs noms officiels
+
+ fic_data_HT = os.path.join(Rep_Calc_LOGICIEL_global_houle,"AMA_HT.par")
+ fic_data_FM = os.path.join(Rep_Calc_LOGICIEL_global_houle,"AMA_FM.par")
+
+# 3.2 ==> Construction du fichier 'data_HT'
+
+# 3.2.1 ==> Ouverture du fichier data_HT dans un répertoire temporaire
+
+ f_menu = open(fic_data_HT, "w")
+
+# 3.2.2 ==> Lecture et écriture des données nécessaires
+
+ prof = STREAM['PROFONDEUR']
+ h_houle = STREAM['H_HOULE']
+ peri_houle = STREAM['PERI_HOULE']
+ courant_euler = STREAM['COUR_EULERIEN']
+ ordre_fonc = STREAM['ORDR_FONC_COURAN']
+
+ f_menu.write(str(prof)+" <= Profondeur d'eau (m)\n")
+ f_menu.write(str(h_houle)+" <= Hauteur de houle (crete-a-creux) (m)\n")
+ f_menu.write(str(peri_houle)+" <= Periode de houle (s)\n")
+ f_menu.write(str(courant_euler)+" <= Vitesse du courant eulerien (m/s)\n")
+ f_menu.write(str(ordre_fonc)+" <= ordre de la fonction de courant (m/s)\n")
+
+# 3.2.3 ==> Fermeture du fichier data_HT
+
+ f_menu.close()
+
+ if INFO >= 2 :
+ print "===========================\n"
+ print "Contenu du fichier data_HT :"
+ fichier = open (fic_data_HT,"r")
+ les_lignes = fichier.readlines()
+ fichier.close()
+ for ligne in les_lignes :
+ print ligne[:-1]
+ print "===========================\n"
+
+# 3.3 ==> Construction du fichier "data_FM"
+
+# 3.3.1 ==> Ouverture du fichier
+
+ f_FM = open(fic_data_FM, "w")
+
+# 3.3.2 ==> Lecture et écriture des données nécessaires
+
+ diam = STREAM['DEXT_HAUT_BASE']
+ coef_trainee = STREAM['COEF_TRAINEE']
+ coef_inertie = STREAM['COEF_INERTIE']
+ nb_nive_z = STREAM['NB_POINTS_VERT']
+ nb_dt_par_t = STREAM['NB_INTER_PERI']
+
+ f_FM.write(str(diam)+" <= Diametre du cylindre (m)\n")
+ f_FM.write(str(coef_trainee)+" <= Coefficient de trainee Cd\n")
+ f_FM.write(str(coef_inertie)+" <= Coefficient d'inertie Cm\n")
+ f_FM.write(str(nb_nive_z)+" <= Nbe de points sur la verticale\n")
+ f_FM.write(str(nb_dt_par_t)+" <= Nbe de pas de temps sur une periode de houle\n")
+
+# 3.3.3 ==> Fermeture du fichier data_FM
+
+ f_FM.close()
+
+ if INFO >= 2 :
+ print "===========================\n"
+ print "Contenu du fichier data_FM :"
+ fichier = open (fic_data_FM,"r")
+ les_lignes = fichier.readlines()
+ fichier.close()
+ for ligne in les_lignes :
+ print ligne[:-1]
+ print "===========================\n"
+
+# 3.4 ==> Nom du fichier qui contiendra le résultat
+
+ if (IMPRESSION['UNITE'] != None) :
+ Unit_Fich_Resu = 'fort.'+str(IMPRESSION['UNITE'])
+
+#____________________________________________________________________
+#
+# 4. Ecriture de la commande d"exécution du logiciel STREAM
+#
+# Remarque : dans la donnée de la version du logiciel STREAM, il faut remplacer
+# le _ de la donnée par un ., qui
+# est interdit dans la syntaxe du langage de commandes ASTER
+# Remarque : il faut remplacer le N majuscule de la donnee par
+# un n minuscule, qui est interdit dans la syntaxe du langage
+# de commandes ASTER
+#____________________________________________________________________
+#
+
+ VERSION="aster"
+ LOGICIEL = "STREAM"
+
+ EXEC_LOGICIEL ( ARGUMENT = (Rep_Calc_LOGICIEL_global_houle, # nom du repertoire du calcul de houle
+ LOGICIEL, # nom du logiciel de calcul de houle
+ VERSION, # version du logiciel de calcul de houle
+ ),
+ LOGICIEL = calc_houle
+ )
+
+#____________________________________________________________________
+#
+# 5. Lecture du fichier de résultats STREAM_FM
+#____________________________________________________________________
+#
+# 5.1 ==> Ouverture, lecture et fermeture du fichier "AMA_FM.res"
+
+ if (IMPRESSION['UNITE'] != None) :
+ fic_resuStream = os.path.join(Rep_Calc_LOGICIEL_global_houle,"AMA_FM.res")
+ f_resu = open(fic_resuStream, "r")
+ lignes = f_resu.readlines()
+ f_resu.close()
+
+ Fic_Tabl_Resu = os.path.join(Rep_Calc_ASTER,Unit_Fich_Resu)
+ f_resu = open(Fic_Tabl_Resu, "w")
+ f_resu.writelines(lignes)
+ f_resu.close()
+#
+#____________________________________________________________________
+#
+# 6. C'est fini !
+#____________________________________________________________________
+#
+ break
+
+# 6.1. ==> Arret en cas d'erreur
+
+ if erreur :
+ if not messages_erreur.has_key(erreur) :
+ erreur = 100
+ self.cr.fatal(messages_erreur[erreur])
+
+ return
+
+#____________________________________________________________________
+#____________________ FIN MACRO calc_char_houle _____________________
+#
+#____________________________________________________________________
+#___________________ DEBUT FONCTION mail_eolienne ___________________
+#
+#
+# ===> Creation des fichiers de commandes GIBI
+#____________________________________________________________________
+#
+
+def mail_eolienne(H_TOTALE, H_BASE, H_IMMERGEE, H_MOYEU, H_JONCTION, DECAL_PALES,
+ DEXT_NACELLE, EPAIS_NACELLE, DEXT_HAUT_BASE, DEXT_BAS_BASE,
+ EPAIS_HAUT_BASE, EPAIS_BAS_BASE, DEXT_HAUT_FUT, DEXT_BAS_FUT,
+ EPAIS_HAUT_FUT, EPAIS_BAS_FUT, NB_ELEM_BASE, NB_ELEM_FUT,
+ NBEL_EPAIS_BASE, NBEL_EPAIS_FUT, NBEL_DCIR_BASE, NBEL_DCIR_FUT,
+ ANGLE_VENT_AXE_X,
+ MODELISATION, TYPE_ELEM, NIVE_GIBI, fichier_datg) :
+
+#
+# 1 ==> Reccuperation du repertoire dans lequel s'execute le calcul ASTER
+#
+ Rep_Calc_ASTER = os.getcwd()
+
+#
+# 2 ==> Decoupage des mailles de la base en fonction du niveau d'eau
+#
+ lb = H_BASE / NB_ELEM_BASE
+ nbi = int(H_IMMERGEE/lb)
+ hbe = H_BASE - H_IMMERGEE
+
+ # CAS 1
+ if ( ((H_IMMERGEE/lb)-nbi) < 0.5 ) :
+ lbi = H_IMMERGEE/nbi
+ if (hbe > 0.0) :
+ nbe = NB_ELEM_BASE - nbi
+ lbe = hbe/nbe
+ else :
+ nbe = 0
+ # CAS 2
+ if ( ((H_IMMERGEE/lb)-nbi) >= 0.5 ) :
+ lbi = H_IMMERGEE/(nbi+1)
+ nbe = NB_ELEM_BASE - (nbi+1)
+ lbe = hbe/nbe
+ nbi = nbi + 1
+
+#
+# 3 ==> Ecriture des donnees necessaires dans le fichier auxiliaire
+#
+ if MODELISATION == 'POUTRE' :
+
+ # 3.1 ==> Ouverture du fichier auxiliaire
+
+ fichier_auxi = os.path.join(Rep_Calc_ASTER,"fichaux")
+ fdaux = open (fichier_auxi,'w')
+
+ # 3.2 ==> Ecriture des donnees dans le fichier auxiliaire
+
+ j = 0
+
+ for i in range(nbi) :
+ j = j+1
+ fdaux.write("base"+str(j)+" = baset . "+str(j)+";\n")
+ if hbe > 0.0 :
+ for i in range(nbe) :
+ j = j+1
+ fdaux.write("base"+str(j)+" = baset . "+str(j)+";\n")
+
+ for i in range(NB_ELEM_FUT) :
+ fdaux.write("fut"+str(i+1)+" = futt . "+str(i+1)+";\n")
+
+ fdaux.write("SAUV FORM eolienne;\n")
+ fdaux.write("FIN;\n")
+
+ # 3.3 ==> Fermeture du fichier auxiliaire
+
+ fdaux.close()
+
+#
+# 4 ==> Ecriture des donnees necessaires dans le fichier de donnees GIBI
+#
+
+# 4.1 ==> Ouverture du fichier de données GIBI
+
+ fdgib = open (fichier_datg,'w')
+
+
+# 4.2 ==> Ecriture des donnees dans le fichier de donnees GIBI
+
+ fdgib.write("*********************************\n")
+ fdgib.write("** Maillage d'une eolienne en mer\n")
+ fdgib.write("*********************************\n")
+ fdgib.write("***********************\n")
+ fdgib.write("***********************\n")
+ fdgib.write("** donnees geometriques\n")
+ fdgib.write("***********************\n")
+
+ fdgib.write("opti nive "+str(NIVE_GIBI)+";\n")
+
+ if MODELISATION == 'POUTRE' :
+ fdgib.write("modbase = 'poutre';\n")
+ fdgib.write("modfut = 'poutre';\n")
+ if MODELISATION == 'COQUE' :
+ fdgib.write("modbase = 'coque';\n")
+ fdgib.write("modfut = 'coque';\n")
+ if MODELISATION == '3D' :
+ fdgib.write("modbase = '3D';\n")
+ fdgib.write("modfut = '3D';\n")
+ if TYPE_ELEM == 'CUB8' : fdgib.write("quad = 'non';\n")
+ if TYPE_ELEM == 'CU20' : fdgib.write("quad = 'oui';\n")
+
+ fdgib.write("**** hauteur totale du monopode (hors nacelle)\n")
+ fdgib.write("h_totale = "+str(H_TOTALE)+";\n")
+ fdgib.write("**** hauteur de la base du monopode\n")
+ fdgib.write("hb = "+str(H_BASE)+";\n")
+ fdgib.write("**** hauteur immergee (deduite du calcul par STREAM)\n")
+ fdgib.write("hbi = "+str(H_IMMERGEE)+";\n")
+ fdgib.write("**** nombre de mailles immergees de la base\n")
+ fdgib.write("nbi = "+str(nbi)+";\n")
+ fdgib.write("**** hauteur emergee\n")
+ fdgib.write("hbe = "+str(hbe)+";\n")
+ fdgib.write("**** nombre de mailles emergees de la base\n")
+ fdgib.write("nbe = "+str(nbe)+";\n")
+ fdgib.write("**** decoupage vertical\n")
+ fdgib.write("nb_base = "+str(NB_ELEM_BASE)+";\n")
+ fdgib.write("nb_fut = "+str(NB_ELEM_FUT)+";\n")
+ fdgib.write("**** diametre et epaisseur bas du fut\n")
+ fdgib.write("dex_bfut = "+str(DEXT_BAS_FUT)+";\n")
+ fdgib.write("ep_bfut = "+str(EPAIS_BAS_FUT)+";\n")
+ fdgib.write("**** diametre et epaisseur haut du fut\n")
+ fdgib.write("dex_hfut = "+str(DEXT_HAUT_FUT)+";\n")
+ fdgib.write("ep_hfut = "+str(EPAIS_HAUT_FUT)+";\n")
+ fdgib.write("**** diametre et epaisseur bas de la base\n")
+ fdgib.write("dex_bbas = "+str(DEXT_BAS_BASE)+";\n")
+ fdgib.write("ep_bbas = "+str(EPAIS_BAS_BASE)+";\n")
+ fdgib.write("**** diametre et epaisseur haut de la base\n")
+ fdgib.write("dex_hbas = "+str(DEXT_HAUT_BASE)+";\n")
+ fdgib.write("ep_hbas = "+str(EPAIS_HAUT_BASE)+";\n")
+
+ if MODELISATION == '3D' or MODELISATION == 'COQUE' :
+ fdgib.write("**** nombre d'elements sur un demi-cercle\n")
+ fdgib.write("nbcirfut = "+str(NBEL_DCIR_FUT)+";\n")
+ fdgib.write("nbcirbas = "+str(NBEL_DCIR_BASE)+";\n")
+ fdgib.write("**** hauteur de la jonction base/fut\n")
+ fdgib.write("hbj = "+str(H_JONCTION)+";\n")
+ if MODELISATION == '3D' :
+ fdgib.write("**** nombre d'elements dans l'epaisseur\n")
+ fdgib.write("nbep_fut = "+str(NBEL_EPAIS_FUT)+";\n")
+ fdgib.write("nbep_bas = "+str(NBEL_EPAIS_BASE)+";\n")
+
+ fdgib.write("**** angle entre la pression du vent et l'axe X (degres)\n")
+ fdgib.write("alpha = "+str(ANGLE_VENT_AXE_X)+";\n")
+ fdgib.write("**** decalage pales\n")
+ fdgib.write("dec0 = "+str(DECAL_PALES)+";\n")
+ fdgib.write("**** hauteur moyeu\n")
+ fdgib.write("hp0 = "+str(H_MOYEU)+";\n")
+
+ fdgib.write("opti echo 0;\n")
+# loc_datg = "/home/eolien/DATG/"
+ loc_datg = aster.repdex()
+ fdgib.write("* \n")
+ fdgib.write(open(os.path.join(loc_datg, 'calc_eolienne.datg'), 'r').read())
+
+# 4.3 ==> Fermeture du fichier de donnees GIBI
+
+ fdgib.close()
+
+# 5 ==> FIN
+
+ return
+
+#____________________________________________________________________
+#____________________ FIN FONCTION mail_eolienne ____________________
+#
+#____________________________________________________________________
+#
+#____________________________________________________________________
+#_________________ DEBUT FONCTION eolien_regression _________________
+#
+#
+# ===> Regression selon les moindres carres
+#____________________________________________________________________
+#
+#
+def eolien_regression (liste, INFO,) :
+#
+#
+#____________________________________________________________________
+#
+# MOINDRES CARRES
+#____________________________________________________________________
+#
+# Calcul des coefficients teta0, teta1, teta2 et teta3 de
+# l'application qui passe au mieux (au sens des moindres carres)
+# par les couples (profondeur,force lineique).
+
+
+# 1 ==> Initialisation
+
+
+# 2 ==> Nombre de points calcules par STREAM selon l'axe vertical
+
+ dim = liste.shape[0]
+
+# Controle : dim == Nb_valeur a voir
+
+# 3 ==> Definition des polynomes
+
+ global P0, P1, P2, P3
+
+ def P0():
+ return 1
+
+ def P1(alpha1, x):
+ return (x-alpha1)
+
+ def P2(alpha1, alpha2, beta2, x):
+ return (x-alpha2)*(x-alpha1) - beta2
+
+ def P3(alpha1, alpha2, alpha3, beta2, beta3, x):
+ return (x-alpha3)*((x-alpha2)*(x-alpha1) - beta2) - beta3*(x-alpha1)
+
+# 4 ==> Definition de la fonction polynomiale de degre 3
+
+ def FF3(alpha1, alpha2, alpha3, beta2, beta3, teta0, teta1, teta2, teta3, x):
+ return teta0*P0() + teta1*P1(alpha1,x) + teta2*P2(alpha1,alpha2,beta2,x) + teta3*P3(alpha1,alpha2,alpha3,beta2,beta3,x)
+
+# 5 ==> Calcul des coefficients alpha1, alpha2, alpha3, beta2 et beta3
+
+ numerateur_alpha1 = 0
+ denominateur_alpha1 = 0
+ alpha1 = 0
+ for i in range(dim) :
+ numerateur_alpha1 = numerateur_alpha1 + liste[[i,0]]*P0()**2
+ denominateur_alpha1 = denominateur_alpha1 + P0()**2
+
+ alpha1 = numerateur_alpha1/denominateur_alpha1
+
+ numerateur_alpha2 = 0
+ denominateur_alpha2 = 0
+ alpha2 = 0
+ numerateur_beta2 = 0
+ denominateur_beta2 = 0
+ beta2 = 0
+ for i in range(dim) :
+ numerateur_alpha2 = numerateur_alpha2 + liste[[i,0]]*P1(alpha1,liste[[i,0]])**2
+ denominateur_alpha2 = denominateur_alpha2 + P1(alpha1,liste[[i,0]])**2
+ numerateur_beta2 = numerateur_beta2 + P1(alpha1,liste[[i,0]])**2
+ denominateur_beta2 = denominateur_beta2 + P0()**2
+
+ alpha2 = numerateur_alpha2/denominateur_alpha2
+ beta2 = numerateur_beta2/denominateur_beta2
+
+ numerateur_alpha3 = 0
+ denominateur_alpha3 = 0
+ alpha3 = 0
+ numerateur_beta3 = 0
+ denominateur_beta3 = 0
+ beta3 = 0
+ for i in range(dim) :
+ numerateur_alpha3 = numerateur_alpha3 + liste[[i,0]]*P2(alpha1,alpha2,beta2,liste[[i,0]])**2
+ denominateur_alpha3 = denominateur_alpha3 + P2(alpha1,alpha2,beta2,liste[[i,0]])**2
+ numerateur_beta3 = numerateur_beta3 + P2(alpha1,alpha2,beta2,liste[[i,0]])**2
+ denominateur_beta3 = denominateur_beta3 + P1(alpha1,liste[[i,0]])**2
+
+ alpha3 = numerateur_alpha3/denominateur_alpha3
+ beta3 = numerateur_beta3/denominateur_beta3
+
+# 6 ==> Calcul des estimateurs cherches : teta0, teta1, teta2, teta3
+
+ numerateur_teta0 = 0
+ denominateur_teta0 = 0
+ teta0 = 0
+ for i in range(dim) :
+ numerateur_teta0 = numerateur_teta0 + liste[[i,1]]*P0()
+ denominateur_teta0 = denominateur_teta0 + P0()**2
+
+ teta0 = numerateur_teta0/denominateur_teta0
+
+ numerateur_teta1 = 0
+ denominateur_teta1 = 0
+ teta1 = 0
+ for i in range(dim) :
+ numerateur_teta1 = numerateur_teta1 + liste[[i,1]]*P1(alpha1,liste[[i,0]])
+ denominateur_teta1 = denominateur_teta1 + P1(alpha1,liste[[i,0]])**2
+
+ teta1 = numerateur_teta1/denominateur_teta1
+
+ numerateur_teta2 = 0
+ denominateur_teta2 = 0
+ teta2 = 0
+ for i in range(dim) :
+ numerateur_teta2 = numerateur_teta2 + liste[[i,1]]*P2(alpha1,alpha2,beta2,liste[[i,0]])
+ denominateur_teta2 = denominateur_teta2 + P2(alpha1,alpha2,beta2,liste[[i,0]])**2
+
+ teta2 = numerateur_teta2/denominateur_teta2
+
+ numerateur_teta3 = 0
+ denominateur_teta3 = 0
+ teta3 = 0
+ for i in range(dim) :
+ numerateur_teta3 = numerateur_teta3 + liste[[i,1]]*P3(alpha1,alpha2,alpha3,beta2,beta3,liste[[i,0]])
+ denominateur_teta3 = denominateur_teta3 + P3(alpha1,alpha2,alpha3,beta2,beta3,liste[[i,0]])**2
+
+ teta3 = numerateur_teta3/denominateur_teta3
+
+# 7 ==> Impression de certains resultats si INFO == 2
+
+ if (INFO == 2) :
+ print " "
+ print "<EOLIEN_REGRESSION> RESULTATS "
+ print " "
+ print "<EOLIEN_REGRESSION> teta0 = ", teta0
+ print "<EOLIEN_REGRESSION> teta1 = ", teta1
+ print "<EOLIEN_REGRESSION> teta2 = ", teta2
+ print "<EOLIEN_REGRESSION> teta3 = ", teta3
+ print " "
+
+ print "<EOLIEN_REGRESSION> ===> VERIFICATION INTERPOLATION\n"
+ print " No point - profondeur - valeur STREAM - valeur par moindres carres \n"
+ for i in range(dim) :
+ print ' %3d %12.4f %12.4f %12.4f' % (i+1,liste[[i,0]],liste[[i,1]],FF3(alpha1, alpha2, alpha3, beta2, beta3, teta0, teta1, teta2, teta3,liste[[i,0]]))
+
+ return (teta0,teta1,teta2,teta3,alpha1,alpha2,alpha3,beta2,beta3)
+
+#____________________________________________________________________
+#_________________ FIN FONCTION eolien_regression ___________________
+#
+#____________________________________________________________________
+#
+#____________________________________________________________________
+#_________________ DEBUT FONCTION lect_resu_stream __________________
+#
+#
+# ===> Lecture du fichier de resultats STREAM_FM
+#____________________________________________________________________
+#
+
+def lect_resu_stream(INFO) :
+
+# 1 ==> Ouverture, lecture et fermeture du fichier "AMA_FM.res"
+
+ Rep_Calc_ASTER = os.getcwd()
+ Nom_Rep_local_houle = "tmp_stream"
+ Rep_Calc_LOGICIEL_local_houle = os.path.join(".",Nom_Rep_local_houle)
+ Rep_Calc_LOGICIEL_global_houle = os.path.join(Rep_Calc_ASTER,Nom_Rep_local_houle)
+
+ fic_resuStream = os.path.join(Rep_Calc_LOGICIEL_global_houle,"AMA_FM.res")
+ f_resu = open(fic_resuStream, "r")
+ lignes = f_resu.readlines()
+ f_resu.close()
+
+# 2 ==> Lecture du nombre de points (valeurs de forces lineiques).
+# Lecture du nombre par lequel la periode a ete decoupee
+# ATENTION ==> le nombre de pas de temps est egal a ce nombre plus un.
+
+ compt_temps = 0
+ compt_valeur = 0
+ dict_temps = {}
+
+ for i in range(len(lignes)) :
+ ligne = lignes[i].split()
+ print"<LECT_RESU_STREAM> ligne = ",ligne
+ if ligne[0] == "/PERIODE" and ligne[2] == "HOULE.................T........:" :
+ periode_houle = float(ligne[len(ligne)-2])
+
+ if INFO == 2 :
+ print "<I> <MACR_CALC_EOLIENNE> Periode de houle = ",periode_houle
+
+ if ligne[0] == "/NB" and ligne[2] == "POINTS" :
+ Nb_valeur = int(ligne[len(ligne)-1])
+
+ if INFO == 2 :
+ print "<I> <MACR_CALC_EOLIENNE> Nb_valeur = ",Nb_valeur
+
+ if ligne[0] == "/NB" and ligne[4] == "TEMPS" :
+ Nb_pas_temps = int(ligne[len(ligne)-1])
+
+ if INFO == 2 :
+ print "<I> <MACR_CALC_EOLIENNE> Nb_pas_temps = ",Nb_pas_temps
+ break
+
+ return(periode_houle,Nb_valeur,Nb_pas_temps,lignes)
+
+#____________________________________________________________________
+#__________________ FIN FONCTION lect_resu_stream ___________________
+#
+#____________________________________________________________________
+#
+#____________________________________________________________________
+#_______________ DEBUT FONCTION donn_boucle_pas_temps _______________
+#
+#
+# ===> Preparation donnees necessaires a la boucle sur les pas de temps
+# et verification du nombre de pas de temps
+#____________________________________________________________________
+#
+
+def donn_boucle_pas_temps(lignes,Nb_pas_temps) :
+
+# 1 ==> Construction du dictionnaire contenant :
+# pas_de_temps : numeros de ligne du fichier resu_STREAM_FM
+
+ compt_temps = 0
+ dict_temps = {}
+
+ for i in range(len(lignes)) :
+ ligne = lignes[i].split()
+ if len(ligne) != 0 :
+ if ligne[0] == "#TITRE" and ligne[1] == "TEMPS" :
+ compt_temps = compt_temps + 1
+ dict_temps["TEMPS_"+str(compt_temps)] = i+1
+
+# 2 ==> Controle de l'egalite : compt_temps == Nb_pas_temps+1
+# et arret en cas d'erreur.
+
+ if compt_temps != (Nb_pas_temps+1) :
+ print"\n <F> <DONN_BOUCLE_PAS_TEMPS> IL Y A UN PROBLEME DANS DE NOMBRE DE PAS DE TEMPS.\n"
+
+ return(dict_temps)
+#
+#____________________________________________________________________
+#________________ FIN FONCTION donn_boucle_pas_temps ________________
+#
+#____________________________________________________________________
+#
+#____________________________________________________________________
+#__________________ DEBUT FONCTION extr_char_houle __________________
+#
+#
+# ===> Extraction des couples (profondeur,force lineique)
+# du fichier resu_STREAM_FM au pas de temps courant et
+# remplissage de la liste de travail.
+#____________________________________________________________________
+#
+#####################
+# VALEUR TEST
+#
+test = 'NON'
+# Nb_pas_temps = 0
+#####################
+
+def extr_char_houle(k,dict_temps,Nb_valeur,lignes) :
+
+ liste = Numeric.zeros((Nb_valeur,2), Numeric.Float)
+
+ nume_ligne_temps = dict_temps["TEMPS_"+str(k)]
+ range_depart = int(nume_ligne_temps) + 2
+ range_arrive = int(nume_ligne_temps) + Nb_valeur + 3
+ for l in range(range_depart, range_arrive) :
+ ligne = lignes[l].split()
+ if (len(ligne) != 0) :
+ Flag_Val=re.match(r'^[-]?([0-9]+\.?[0-9]*|\.[0-9]+)([eE][+-]?[0-9]+)?$',ligne[0])
+ if (Flag_Val != None) :
+ liste[[(l-range_depart),0]] = float(ligne[0])
+ liste[[(l-range_depart),1]] = float(ligne[1])
+
+ return(range_depart,range_arrive,liste)
+
+#____________________________________________________________________
+#___________________ FIN FONCTION extr_char_houle ___________________
+#
+# _____________________________
+# _______________
+# _____________________________
+#
+#____________________________________________________________________
+#__________________ DEBUT MACRO macr_calc_eolienne __________________
+#
+#
+# ===> MACRO COMMANDE MACR_CALC_EOLIENNE
+#
+#____________________________________________________________________
+#
+# SCRIPT PYTHON
+#
+def macr_calc_eolienne_ops(self, INFO, MONOPODE, EXEC_MAILLAGE, AFFE_MATERIAU, CHARGEMENT,
+ IMPRESSION, MODELISATION, NOM_MAIL_REF, TYPE_ELEM, FATIGUE, **args) :
+
+ """ Calcule la structure de l'eolienne en mer. """
+
+# On charge les modules nécessaires
+ from Accas import _F
+ import aster
+# import os
+
+#____________________________________________________________________
+#
+# 1. Préalables
+#____________________________________________________________________
+#
+# 1.1 ==> La macro compte pour 1 dans l'exécution des commandes
+
+ self.set_icmd(1)
+ erreur = 0
+
+# 1.2 ==> On importe les définitions des commandes Aster utilisées
+# dans la macro
+
+ affemateriau = AFFE_MATERIAU
+# impression = IMPRESSION
+ PRE_GIBI = self.get_cmd("PRE_GIBI")
+ EXEC_LOGICIEL = self.get_cmd("EXEC_LOGICIEL")
+ LIRE_MAILLAGE = self.get_cmd("LIRE_MAILLAGE")
+ DEFI_GROUP = self.get_cmd("DEFI_GROUP")
+ CREA_MAILLAGE = self.get_cmd("CREA_MAILLAGE")
+ MODI_MAILLAGE = self.get_cmd("MODI_MAILLAGE")
+ AFFE_CARA_ELEM = self.get_cmd("AFFE_CARA_ELEM")
+ AFFE_MODELE = self.get_cmd("AFFE_MODELE")
+ AFFE_MATERIAU = self.get_cmd("AFFE_MATERIAU")
+ FORMULE = self.get_cmd("FORMULE")
+ AFFE_CHAR_MECA_F= self.get_cmd("AFFE_CHAR_MECA_F")
+ AFFE_CHAR_MECA= self.get_cmd("AFFE_CHAR_MECA")
+ DEFI_LIST_REEL= self.get_cmd("DEFI_LIST_REEL")
+ STAT_NON_LINE= self.get_cmd("STAT_NON_LINE")
+ MECA_STATIQUE= self.get_cmd("MECA_STATIQUE")
+ CREA_CHAMP= self.get_cmd("CREA_CHAMP")
+ PROJ_CHAMP= self.get_cmd("PROJ_CHAMP")
+ CREA_RESU= self.get_cmd("CREA_RESU")
+ CALC_ELEM= self.get_cmd("CALC_ELEM")
+#
+# IMPR_CO= self.get_cmd("IMPR_CO")
+#
+ IMPR_RESU= self.get_cmd("IMPR_RESU")
+ CALC_NO= self.get_cmd("CALC_NO")
+ CALC_FATIGUE= self.get_cmd("CALC_FATIGUE")
+ DETRUIRE= self.get_cmd("DETRUIRE")
+ DEFI_FICHIER= self.get_cmd("DEFI_FICHIER")
+
+# 1.3 ==> Lecture des donnees
+
+ H_TOTALE = MONOPODE['H_TOTALE']
+ H_BASE = MONOPODE['H_BASE']
+ H_MOYEU = MONOPODE['H_MOYEU']
+ DECAL_PALES = MONOPODE['DECAL_PALES']
+ DEXT_HAUT_BASE = MONOPODE['DEXT_HAUT_BASE']
+ DEXT_BAS_BASE = MONOPODE['DEXT_BAS_BASE']
+ EPAIS_HAUT_BASE = MONOPODE['EPAIS_HAUT_BASE']
+ EPAIS_BAS_BASE = MONOPODE['EPAIS_BAS_BASE']
+ DEXT_HAUT_FUT = MONOPODE['DEXT_HAUT_FUT']
+ DEXT_BAS_FUT = MONOPODE['DEXT_BAS_FUT']
+ EPAIS_HAUT_FUT = MONOPODE['EPAIS_HAUT_FUT']
+ EPAIS_BAS_FUT = MONOPODE['EPAIS_BAS_FUT']
+ NB_ELEM_BASE = MONOPODE['NB_ELEM_BASE']
+ NB_ELEM_FUT = MONOPODE['NB_ELEM_FUT']
+ if (MODELISATION == '3D' or MODELISATION == 'COQUE') :
+ H_JONCTION = MONOPODE['H_JONCTION']
+ DEXT_NACELLE = MONOPODE['DEXT_NACELLE']
+ EPAIS_NACELLE = MONOPODE['EPAIS_NACELLE']
+ NBEL_EPAIS_BASE = MONOPODE['NBEL_EPAIS_BASE']
+ NBEL_EPAIS_FUT = MONOPODE['NBEL_EPAIS_FUT']
+ else :
+ H_JONCTION = None
+ DEXT_NACELLE = None
+ EPAIS_NACELLE = None
+ NBEL_EPAIS_BASE = None
+ NBEL_EPAIS_FUT = None
+
+ if (MODELISATION == '3D') :
+ NBEL_DCIR_BASE = MONOPODE['NBEL_DCIR_BASE']
+ NBEL_DCIR_FUT = MONOPODE['NBEL_DCIR_FUT']
+ else :
+ NBEL_DCIR_BASE = None
+ NBEL_DCIR_FUT = None
+
+ ANGLE_VENT_AXE_X = CHARGEMENT['ANGLE_VENT_AXE_X']
+
+ LOGICIEL = EXEC_MAILLAGE['LOGICIEL']
+ UNITE_DATG = EXEC_MAILLAGE['UNITE_DATG']
+ UNITE_MGIB = EXEC_MAILLAGE['UNITE_MGIB']
+ NIVE_GIBI = EXEC_MAILLAGE['NIVE_GIBI']
+
+# 1.4 ==> Creation du repertoire pour l'execution du logiciel GIBI
+
+ erreur_partiel = [0]
+ Rep_Calc_ASTER = os.getcwd()
+
+ Nom_Rep_local_mail = "tmp_dgib"
+ Rep_Calc_LOGICIEL_local_mail = os.path.join(".",Nom_Rep_local_mail)
+ Rep_Calc_LOGICIEL_global_mail = os.path.join(Rep_Calc_ASTER,Nom_Rep_local_mail)
+
+ try :
+ os.mkdir(Rep_Calc_LOGICIEL_global_mail)
+ except os.error,erreur_partiel :
+ self.cr.warn("Code d'erreur de mkdir : " + str(erreur_partiel[0]) + " : " + erreur_partiel[1])
+ self.cr.fatal("Impossible de creer le repertoire de travail pour le logiciel de maillage : "+Rep_Calc_LOGICIEL_global_mail)
+
+ aux_datg = 'fort.'+str(UNITE_DATG)
+ fichier_datg = os.path.join(Rep_Calc_LOGICIEL_global_mail,aux_datg)
+
+ aux_mgib = 'fort.'+str(UNITE_MGIB)
+ fichier_mgib = os.path.join(Rep_Calc_ASTER,aux_mgib)
+
+ repertoire_outils = aster.repout()
+ if (LOGICIEL == 'GIBI2000') : logi_mail = repertoire_outils+'gibi2000'
+ if (LOGICIEL == 'GIBI98') : logi_mail = repertoire_outils+'gibi98'
+
+# 1.5 ==> Construction du maillage et du modele de reference
+
+ if (MODELISATION == '3D') and (FATIGUE != None) :
+
+ H_IMMERGEE = MONOPODE['H_BASE']
+
+ mail_eolienne(H_TOTALE, H_BASE, H_IMMERGEE, H_MOYEU, H_JONCTION, DECAL_PALES,
+ DEXT_NACELLE, EPAIS_NACELLE, DEXT_HAUT_BASE, DEXT_BAS_BASE,
+ EPAIS_HAUT_BASE, EPAIS_BAS_BASE, DEXT_HAUT_FUT, DEXT_BAS_FUT,
+ EPAIS_HAUT_FUT, EPAIS_BAS_FUT, NB_ELEM_BASE, NB_ELEM_FUT,
+ NBEL_EPAIS_BASE, NBEL_EPAIS_FUT, NBEL_DCIR_BASE, NBEL_DCIR_FUT,
+ ANGLE_VENT_AXE_X,
+ MODELISATION, TYPE_ELEM, NIVE_GIBI, fichier_datg)
+
+ EXEC_LOGICIEL(
+ LOGICIEL=logi_mail,
+ ARGUMENT=(fichier_datg, # fichier de donnees GIBI
+ fichier_mgib, # fichier resultats format GIBI
+ )
+ )
+
+ PRE_GIBI()
+
+ if NOM_MAIL_REF!=None : self.DeclareOut('mail_ref',NOM_MAIL_REF)
+ mail_ref = LIRE_MAILLAGE()
+
+# debut test
+# IMPR_CO(CO=mail_ref,)
+# fin test
+
+ MOREF = AFFE_MODELE( MAILLAGE=mail_ref,
+ AFFE=(_F(GROUP_MA = ('MONOPODE'),
+ PHENOMENE = 'MECANIQUE',
+ MODELISATION = '3D',),),);
+
+# 1.6 ==> Lecture du fichier de resultats STREAM_FM
+
+ (periode_houle,Nb_valeur,Nb_pas_temps,lignes) = lect_resu_stream(INFO)
+
+# 1.7 ==> declaration de tableaux pour les concepts Aster
+
+ if (MODELISATION == 'COQUE') :
+ MA2 = [None] * (Nb_pas_temps+1) # pour la modelisation COQUE
+
+ MA = [None] * (Nb_pas_temps+1) # pour les modelisations POUTRE et 3D
+ __MO = [None] * (Nb_pas_temps+1)
+ CARA = [None] * (Nb_pas_temps+1)
+ __affmat = [None] * (Nb_pas_temps+1)
+
+# 1.8 ==> Construction du dictionnaire contenant :
+# pas_de_temps : numeros de ligne du fichier resu_STREAM_FM
+
+ dict_temps = donn_boucle_pas_temps(lignes,Nb_pas_temps)
+
+#____________________________________________________________________
+#
+#####################
+# VALEUR TEST
+#
+ test = 'NON'
+# Nb_pas_temps = 0
+#####################
+#____________________________________________________________________
+#
+# 2. ==> BOUCLE SUR LES PAS DE TEMPS
+# Dans cette boucle, a chaque pas de temps nous produisons :
+# 1. un maillage en fonction de la hauteur d'eau ;
+# 2. un chargement correspondant a la hauteur d'eau et a la modelisation ;
+# 3. un calcul elastique lineaire avec MECA_STATIQUE ;
+# 4. un fichier resultat qui est stocke dans un repertoire .repe ;
+# 5. dans le cas ou un calcul en fatigue est demande nous projetons
+# le champ de contrainte calcule aux noeuds sur un maillage de reference.
+#
+
+ for j in range(Nb_pas_temps+1) :
+
+ k = j + 1
+
+# 2.1 ==> Extraction des couples (profondeur,force lineique)
+# du fichier resu_STREAM_FM au pas de temps courant et
+# remplissage de la liste de travail.
+
+ (range_depart,range_arrive,liste) = extr_char_houle(k,dict_temps,Nb_valeur,lignes)
+
+# 2.2 ==> Extraction de la hauteur d'eau
+
+ H_IMMERGEE = liste[[(range_arrive-range_depart-2),0]]
+ if INFO == 2 :
+ print "<I> <MACR_CALC_EOLIENNE> ==> Numero d'ordre = ", j
+ print "<I> <MACR_CALC_EOLIENNE> ==> hauteur_eau = ", H_IMMERGEE
+
+#####################
+# VALEUR TEST
+#
+# hauteur_eau = 30.
+#####################
+ print "\n<CALC_EOLIENNE> liste = \n", liste
+ print" "
+
+# 2.3 ==> Calcul des coefficients de la regression de maniere a
+# construire un chargement continu.
+
+ (teta0,teta1,teta2,teta3,alpha1,alpha2,alpha3,beta2,beta3) = eolien_regression (liste, INFO)
+
+ print " "
+ print "<I> <MACR_CALC_EOLIENNE> RESULTATS "
+ print " "
+ print "<I> <MACR_CALC_EOLIENNE> teta0 = ", teta0
+ print "<I> <MACR_CALC_EOLIENNE> teta1 = ", teta1
+ print "<I> <MACR_CALC_EOLIENNE> teta2 = ", teta2
+ print "<I> <MACR_CALC_EOLIENNE> teta3 = ", teta3
+ print " "
+
+# 2.4 ==> Creation du maillage pour la hauteur d'eau (H_IMMERGEE) courante
+
+ mail_eolienne(H_TOTALE, H_BASE, H_IMMERGEE, H_MOYEU, H_JONCTION, DECAL_PALES,
+ DEXT_NACELLE, EPAIS_NACELLE, DEXT_HAUT_BASE, DEXT_BAS_BASE,
+ EPAIS_HAUT_BASE, EPAIS_BAS_BASE, DEXT_HAUT_FUT, DEXT_BAS_FUT,
+ EPAIS_HAUT_FUT, EPAIS_BAS_FUT, NB_ELEM_BASE, NB_ELEM_FUT,
+ NBEL_EPAIS_BASE, NBEL_EPAIS_FUT, NBEL_DCIR_BASE, NBEL_DCIR_FUT,
+ ANGLE_VENT_AXE_X,
+ MODELISATION, TYPE_ELEM, NIVE_GIBI, fichier_datg)
+
+# 2.5 ==> Lancement de GIBI
+ EXEC_LOGICIEL(
+ LOGICIEL = logi_mail,
+ ARGUMENT = (fichier_datg, # fichier de donnees GIBI
+ fichier_mgib, # fichier resultats format GIBI
+ )
+ )
+
+# 2.6 ==> Lecture du maillage et definition des groupes
+
+ PRE_GIBI()
+
+ MA[j] = LIRE_MAILLAGE()
+
+ MA[j]=DEFI_GROUP( reuse = MA[j],
+ MAILLAGE = MA[j],
+ CREA_GROUP_NO = _F( TOUT_GROUP_MA='OUI',),);
+
+# debut test
+# IMPR_CO(CO=MA[j],)
+# fin test
+
+# 2.7 ==> Modelisation POUTRE
+
+ if MODELISATION == 'POUTRE' :
+
+ __MO[j]=AFFE_MODELE(MAILLAGE=MA[j],
+ AFFE=_F(GROUP_MA='EOLIENNE',PHENOMENE='MECANIQUE',MODELISATION='POU_D_T',),);
+
+ motscle={}
+ motscle['POUTRE']=[]
+ for i in range(NB_ELEM_FUT) :
+ nom = 'FUT'+str(i+1)
+ incr = (DEXT_BAS_FUT - DEXT_HAUT_FUT)/(2.0*NB_ELEM_FUT)
+ r1 = (DEXT_BAS_FUT/2.0) - (i*incr)
+ r2 = r1 - incr
+ motscle['POUTRE'].append(_F(GROUP_MA=nom,SECTION='CERCLE',CARA=('R1','R2','EP1','EP2',),VALE=(r1,r2,EPAIS_BAS_FUT,EPAIS_HAUT_FUT,),VARI_SECT='HOMOTHETIQUE',), )
+
+ for i in range(NB_ELEM_BASE) :
+ nom = 'BASE'+str(i+1)
+ incr = (DEXT_BAS_BASE - DEXT_HAUT_BASE)/(2.0*NB_ELEM_BASE)
+ r1 = (DEXT_BAS_BASE/2.0) - (i*incr)
+ r2 = r1 - incr
+ motscle['POUTRE'].append(_F(GROUP_MA=nom,SECTION='CERCLE',CARA=('R1','R2','EP1','EP2',),VALE=(r1,r2,EPAIS_BAS_BASE,EPAIS_HAUT_BASE,),VARI_SECT='HOMOTHETIQUE',), )
+
+ CARA[j]=AFFE_CARA_ELEM( MODELE = __MO[j],
+ **motscle );
+
+# 2.8 ==> Modelisation COQUE
+
+ if MODELISATION == 'COQUE' :
+
+ MA2[j] = CREA_MAILLAGE( MAILLAGE=MA[j],
+ MODI_MAILLE=( _F( OPTION = 'QUAD8_9',
+ GROUP_MA = ('PARTEM','PARTIM',),),
+ _F( OPTION = 'TRIA6_7',
+ GROUP_MA = ('JONCTION',),),),
+ );
+
+ __MO[j] = AFFE_MODELE( MAILLAGE=MA2[j],
+ AFFE=( _F( GROUP_MA = ('PARTEM','PARTIM','JONCTION','CHAUTE'),
+ PHENOMENE = 'MECANIQUE',
+ MODELISATION = 'COQUE_3D',),
+ _F( GROUP_MA = 'NACELLE',
+ PHENOMENE = 'MECANIQUE',
+ MODELISATION = 'POU_D_E',),),
+ );
+
+
+ MA2[j] = MODI_MAILLAGE( reuse = MA2[j],
+ MAILLAGE = MA2[j],
+ ORIE_NORM_COQUE = _F(
+ GROUP_MA = ('PARTEM','PARTIM','JONCTION'),),);
+
+ CARA[j] = AFFE_CARA_ELEM( MODELE=__MO[j],
+ POUTRE=( _F(GROUP_MA = 'NACELLE',
+ SECTION = 'CERCLE',
+ CARA = ('R','EP',),
+ VALE = (dex_nacelle/2.,ep_nacelle,), ),
+ ),
+ COQUE=( _F( GROUP_MA = ('PARTEM','PARTIM','CHAUTE'),
+ EPAIS = ep_b_fut,
+ ANGL_REP = (0.0,90.0,), ),
+
+ _F( GROUP_MA = ('JONCTION'),
+ EPAIS = h_jonction, ),
+ ),
+ );
+
+# 2.9 ==> Modelisation 3D
+
+ if MODELISATION == '3D' :
+
+ __MO[j] = AFFE_MODELE( MAILLAGE=MA[j],
+ AFFE=(_F( GROUP_MA = ('BASE','FUT','JONCTION','CHAUTE','SI1','SE1'),
+ PHENOMENE = 'MECANIQUE',
+ MODELISATION = '3D',),
+ _F( GROUP_MA ='NACELLE',
+ PHENOMENE ='MECANIQUE',
+ MODELISATION ='POU_D_E',),),
+ );
+
+ MA[j] = MODI_MAILLAGE( reuse = MA[j],
+ MAILLAGE = MA[j],
+ ORIE_PEAU_3D = _F(
+ GROUP_MA = ('SE1','SI1','CHAUTE'),),
+ );
+
+ CARA[j] = AFFE_CARA_ELEM( MODELE =__MO[j],
+ POUTRE =(
+ _F( GROUP_MA = 'NACELLE',
+ SECTION = 'CERCLE',
+ CARA = ('R','EP',),
+ VALE = (DEXT_NACELLE/2.0,EPAIS_NACELLE,), ),
+ ),
+ );
+
+# 2.10 ==> Affectation du materiau
+
+ motscles={}
+ motscles['AFFE_MATERIAU']=[]
+ for mat in affemateriau :
+ if mat['TOUT'] == None :
+ # Creation de mots-cles pour les AFFE_CHAR_MECA
+ motscles['AFFE_MATERIAU'].append(_F( GROUP_MA = mat['GROUP_MA'],
+ MATER = mat['MATER'],
+ TEMP_REF = mat['TEMP_REF'],) )
+ else :
+ # Creation de mots-cles pour les AFFE_CHAR_MECA
+ motscles['AFFE_MATERIAU'].append(_F( TOUT = 'OUI',
+ MATER = mat['MATER'],
+ TEMP_REF = mat['TEMP_REF'],) )
+ if MODELISATION == 'COQUE' :
+ __affmat[j] = AFFE_MATERIAU( MAILLAGE = MA2[j],
+ MODELE = __MO[j],
+ AFFE = motscles['AFFE_MATERIAU'],
+ )
+ else :
+ __affmat[j] = AFFE_MATERIAU( MAILLAGE = MA[j],
+ MODELE = __MO[j],
+ AFFE = motscles['AFFE_MATERIAU'],
+ )
+
+# 2.11 ==> Chargement et conditions aux limites
+
+ RAUMER = 1027.42 # masse volumique de l'eau de mer (kg/m3)
+ l_elem_stream = 0.3 # longueur des elements de STREAM_FM (m)
+
+ if test == 'OUI':
+ # FC3 poutre
+ if MODELISATION == 'POUTRE' :
+ FC3 = FORMULE(NOM_PARA=('X','Y','Z'),VALE=' -(exp((Z+231.21)/20.187))/0.3')
+ else :
+ # FC3 coque et 3D
+ FC3 = FORMULE(NOM_PARA=('X','Y','Z'),VALE='''- (
+ (3.E-5-(1.E4*Z))+((-6.E-8*(atan(Y/(X+1.E-8)))*(atan(Y/(X+1.E-8)))*(atan(Y/(X+1.E-8)))*(atan(Y/(X+1.E-8)))+2.E-5*(atan(Y/(X+1.E-8)))*(atan(Y/(X+1.E-8)))*(atan(Y/(X+1.E-8)))
+ -0.0021*(atan(Y/(X+1.E-8)))*(atan(Y/(X+1.E-8)))+0.0224*(atan(Y/(X+1.E-8)))+0.9328)*
+ (0.5*'''+str(RAUMER)+'''*1.6**2)))''')
+ else :
+ if MODELISATION == 'POUTRE' :
+ FC3 = FORMULE(NOM_PARA=('X','Y','Z'),VALE=''' -('''
+ +str(teta0)+'''+('''
+ +str(teta1)+''')*(Z-('''+str(alpha1)+'''))+('''
+ +str(teta2)+''')*((Z-('''+str(alpha2)+'''))*(Z-('''+str(alpha1)+'''))-('''+str(beta2)+'''))+('''
+ +str(teta3)+''')*( (Z-('''+str(alpha3)+'''))*((Z-('''+str(alpha2)+'''))*(Z-('''+str(alpha1)+'''))-('''
+ +str(beta2)+'''))-('''+str(beta3)+''')*(Z-('''+str(alpha1)+'''))))/'''+str(l_elem_stream))
+ else :
+ r_bas = (DEXT_HAUT_BASE + DEXT_BAS_FUT)/4.0 # rayon moyen de la base
+ deux_pi_r_bas = 2.0*math.pi*r_bas # rayon moyen de la base multiplie par 2*pi
+ int_dp_etoil = -4.83893 # valeur de l integrale de la fonction de repartition de pression
+
+ FC3 = FORMULE(NOM_PARA=('X','Y','Z'),VALE=''' -(
+ (('''+str(H_BASE)+'''-Z)*1.0E+4)+(
+ ((('''+str(teta0)+'''+'''
+ +str(teta1)+'''*(Z-'''+str(alpha1)+''')+'''
+ +str(teta2)+'''*((Z-'''+str(alpha2)+''')*(Z-'''+str(alpha1)+''')-'''+str(beta2)+''')+'''
+ +str(teta3)+'''*( (Z-'''+str(alpha3)+''')*((Z-'''+str(alpha2)+''')*(Z-'''+str(alpha1)+''')-'''
+ +str(beta2)+''')-'''+str(beta3)+'''*(Z-'''+str(alpha1)+''')))/'''+str(l_elem_stream)+''')-'''
+ +str(deux_pi_r_bas)+'''*(('''+str(H_BASE)+'''-Z)*1.0E+4))*
+ ((-6.E-8*(atan(Y/(X+1.E-8)))*(atan(Y/(X+1.E-8)))*(atan(Y/(X+1.E-8)))*(atan(Y/(X+1.E-8)))+2.E-5*(atan(Y/(X+1.E-8)))*(atan(Y/(X+1.E-8)))*(atan(Y/(X+1.E-8)))
+ -0.0021*(atan(Y/(X+1.E-8)))*(atan(Y/(X+1.E-8)))+0.0224*(atan(Y/(X+1.E-8)))+0.9328))/('''+str(r_bas)+'''*'''+str(int_dp_etoil)+''')))''')
+
+ if CHARGEMENT['VENT'] == 'OUI' :
+ FV0 = CHARGEMENT['FORCE_VENT_FUT']
+ else :
+ FV0 = FORMULE(NOM_PARA=('X','Y','Z'),VALE='0.0*Z')
+
+ if MODELISATION == 'POUTRE' :
+ CH=AFFE_CHAR_MECA_F(MODELE=__MO[j],
+ FORCE_POUTRE=(_F(GROUP_MA='PARTIM',FX=FC3,),
+ _F(GROUP_MA='PARTEM',FX=FV0,),),)
+ if MODELISATION == 'COQUE' :
+ CH=AFFE_CHAR_MECA_F(MODELE=__MO[j],
+ FORCE_COQUE=(_F(GROUP_MA='SI1',PRES=FC3,),
+ _F(GROUP_MA='SE1',PRES=FV0,),),);
+
+ if MODELISATION == '3D' :
+ CH=AFFE_CHAR_MECA_F(MODELE=__MO[j],
+ PRES_REP=(_F(GROUP_MA='SI1',PRES=FC3,),
+ _F(GROUP_MA='SE1',PRES=FV0,),),);
+
+ # force due au poids du rotor decale de d1 (N)
+ F2 = CHARGEMENT['FORCE_POIDS_ROTOR']
+
+ # force due au poids de la nacelle (N)
+ F3 = CHARGEMENT['FORCE_POIDS_NACELLE']
+
+ # force totale en z sur le sommet
+ FCZ = F2+F3
+
+ # force du à l'effort du vent sur les pales
+ FRU = CHARGEMENT['FORCE_VENT_PALES']
+ # moment resistant
+ MRU = CHARGEMENT['MOMENT_RESISTANT']
+
+ # force et moment dus au vent sur le rotor suivant le repère global
+ ALPHAR = CHARGEMENT['ANGLE_VENT_AXE_X']*(math.pi)/180.0
+
+ F1X = FRU*math.cos(ALPHAR)
+ F1Y = FRU*math.sin(ALPHAR)
+ M1X = MRU*math.cos(ALPHAR)
+ M1Y = MRU*math.sin(ALPHAR)
+
+ MCY = M1Y-(MONOPODE['DECAL_PALES']*F2)+(MONOPODE['H_MOYEU']*FRU)
+
+ if MODELISATION == 'POUTRE' :
+ LIMIT=AFFE_CHAR_MECA( MODELE = __MO[j],
+ DDL_IMPO = _F( GROUP_NO='B_BASE',
+ DX=0.0,DY=0.0,DZ=0.0,
+ DRX=0.0,DRY=0.0,DRZ=0.0,),
+ FORCE_NODALE = _F( GROUP_NO='H_FUT',
+ FX=F1X,
+ FY=F1Y,
+ FZ=FCZ,
+ MX=M1X,
+ MY=MCY,
+ MZ=0.0,),)
+
+ if MODELISATION == 'COQUE' :
+ LIMIT=AFFE_CHAR_MECA(MODELE=__MO[j],
+ DDL_IMPO=_F(GROUP_NO='CBASI',
+ DX=0.0,DY=0.0,DZ=0.0,
+ DRX=0.0,DRY=0.0,DRZ=0.0,),
+
+ LIAISON_ELEM=_F(OPTION='COQ_POU',
+ CARA_ELEM = CARA[j],
+ AXE_POUTRE=(0.,0.,1.,),
+ GROUP_MA_1='CHAUTE',
+ GROUP_NO_2='H_FUT',),
+
+ FORCE_NODALE=(_F(GROUP_NO='CHP',
+ FX=F1X,FY=F1Y,FZ=F2,
+ MX=M1X,MY=M1Y,MZ=0.0,),
+
+ _F(GROUP_NO='CHP0',FZ=F3,),
+ ),)
+
+ if MODELISATION == '3D' :
+ LIMIT=AFFE_CHAR_MECA(MODELE=__MO[j],
+ DDL_IMPO=_F(GROUP_NO='CBASI',
+ DX=0.0,DY=0.0,DZ=0.0,),
+
+ LIAISON_ELEM=_F(OPTION='3D_POU',
+ CARA_ELEM = CARA[j],
+ AXE_POUTRE=(0.,0.,1.,),
+ GROUP_MA_1='CHAUTE',
+ GROUP_NO_2='H_FUT',),
+
+ FORCE_NODALE=(_F(GROUP_NO='CHP',
+ FX=F1X,FY=F1Y,FZ=F2,
+ MX=M1X,MY=M1Y,MZ=0.0,),
+
+ _F(GROUP_NO='CHP0',FZ=F3,),
+ ),)
+
+ POIDS=AFFE_CHAR_MECA( MODELE=__MO[j],
+ PESANTEUR=(9.81,0.0,0.0,-1.0,),)
+
+# 2.12 ==> Realisation du calcul
+
+ if MODELISATION == 'POUTRE' :
+
+ TEMPS=DEFI_LIST_REEL(DEBUT=0.0,
+ INTERVALLE=_F(JUSQU_A=1.0,
+ PAS=1.0,),)
+
+ RESU=STAT_NON_LINE(MODELE=__MO[j],
+ CHAM_MATER=__affmat[j],
+ CARA_ELEM=CARA[j],
+ EXCIT=(_F(CHARGE=POIDS,),
+ _F(CHARGE=CH,),
+ _F(CHARGE=LIMIT,),),
+ COMP_INCR=_F(RELATION='ELAS',
+ GROUP_MA='EOLIENNE',),
+ INCREMENT=_F(LIST_INST=TEMPS,
+ NUME_INST_FIN=1,),)
+
+ RESU=CALC_ELEM( reuse =RESU,
+ RESULTAT=RESU,
+ OPTION=('SIEF_ELNO_ELGA','SIGM_ELNO_SIEF','SIPO_ELNO_SIEF',),)
+
+ if MODELISATION == 'COQUE' :
+ RESU=MECA_STATIQUE( MODELE=__MO[j],
+ CHAM_MATER=__affmat[j],
+ CARA_ELEM=CARA[j],
+ EXCIT=(_F(CHARGE=POIDS,),
+ _F(CHARGE=CH,),
+ _F(CHARGE=LIMIT,),),
+ NIVE_COUCHE='MOY',
+ );
+ RESU=CALC_ELEM( reuse =RESU,
+ RESULTAT=RESU,
+ OPTION=('SIGM_ELNO_DEPL','EQUI_ELNO_SIGM',),)
+
+ RESU = CALC_NO( reuse =RESU,
+ RESULTAT=RESU,
+ OPTION=('SIGM_NOEU_DEPL','EQUI_NOEU_SIGM',),);
+
+ if MODELISATION == '3D' :
+ RESU=MECA_STATIQUE( MODELE=__MO[j],
+ CHAM_MATER=__affmat[j],
+ CARA_ELEM=CARA[j],
+ EXCIT=(_F(CHARGE=POIDS,),
+ _F(CHARGE=CH,),
+ _F(CHARGE=LIMIT,),),
+ );
+ RESU=CALC_ELEM( reuse =RESU,
+ RESULTAT=RESU,
+ REPE_COQUE=_F(NIVE_COUCHE='MOY',),
+ OPTION=('SIGM_ELNO_DEPL','EQUI_ELNO_SIGM',));
+
+ RESU = CALC_NO( reuse =RESU,
+ RESULTAT=RESU,
+ OPTION=('SIGM_NOEU_DEPL','EQUI_NOEU_SIGM',),);
+
+# 2.13 ==> Preparation du modele de reference si modelisation 3D calcul de la fatigue
+
+ delta = periode_houle/Nb_pas_temps
+ inst = -periode_houle/2.0 + j*delta
+ if (MODELISATION == '3D') and (FATIGUE != None) :
+
+ if (k == 1) :
+ CHAMREF = AFFE_MATERIAU( MAILLAGE = mail_ref,
+ MODELE = MOREF,
+ AFFE = motscles['AFFE_MATERIAU'],)
+
+ RESPRO = PROJ_CHAMP( METHODE = 'ELEM',
+ NOM_CHAM = 'SIGM_NOEU_DEPL',
+ RESULTAT = RESU,
+ MODELE_1 = __MO[j],
+ MODELE_2 = MOREF,
+ VIS_A_VIS=(
+ _F( GROUP_MA_2='MONOPODE',
+ GROUP_MA_1='MONOPODE' ),
+ ),
+ )
+
+ SIG_PRO = CREA_CHAMP( TYPE_CHAM = 'NOEU_SIEF_R',
+ OPERATION = 'EXTR',
+ RESULTAT = RESPRO ,
+ NOM_CHAM = 'SIGM_NOEU_DEPL',
+ NUME_ORDRE = 1,
+ )
+
+ if (k==1) :
+ RESREF = CREA_RESU(
+ OPERATION = 'AFFE',
+ TYPE_RESU = 'EVOL_ELAS',
+ NOM_CHAM = 'SIGM_NOEU_DEPL',
+ AFFE = _F( CHAM_GD = SIG_PRO,
+ INST = (inst), ),
+ )
+ else :
+ RESREF = CREA_RESU( reuse = RESREF,
+ OPERATION = 'AFFE',
+ TYPE_RESU = 'EVOL_ELAS',
+ NOM_CHAM = 'SIGM_NOEU_DEPL',
+ AFFE = _F( CHAM_GD = SIG_PRO,
+ INST = (inst), ),
+ )
+
+# 2.14 ==> Impression des resultats
+
+ if MODELISATION == 'POUTRE' :
+ fich1='poutre_t='+str(inst)+'.resu'
+ fich2='poutre_t='+str(inst)+'.cast'
+ fich3='poutre_t='+str(inst)+'.ensi'
+ fich4='poutre_t='+str(inst)+'.unv'
+ if MODELISATION == 'COQUE' :
+ fich1='coque_t='+str(inst)+'.resu'
+ fich2='coque_t='+str(inst)+'.cast'
+ fich3='coque_t='+str(inst)+'.ensi'
+ fich4='coque_t='+str(inst)+'.unv'
+ if MODELISATION == '3D' :
+ fich1='3D_t='+str(inst)+'.resu'
+ fich2='3D_t='+str(inst)+'.cast'
+ fich3='3D_t='+str(inst)+'.ensi'
+ fich4='3D_t='+str(inst)+'.unv'
+
+ fich1b = './REPE_OUT/'+fich1
+ fich2b = './REPE_OUT/'+fich2
+ fich3b = './REPE_OUT/'+fich3
+ fich4b = './REPE_OUT/'+fich4
+
+ if IMPRESSION != None :
+ motscles={}
+ motscles['IMPRESSION']=[]
+ # Creation de mots-cles pour les IMPR_RESU
+ for impr in IMPRESSION :
+ if impr['FORMAT']=='RESULTAT':
+ UNIT_1B=DEFI_FICHIER(FICHIER=fich1b)
+ unitr = UNIT_1B
+ if impr['FORMAT']=='CASTEM':
+ UNIT_2B=DEFI_FICHIER(FICHIER=fich2b)
+ unitr = UNIT_2B
+ if impr['FORMAT']=='ENSIGHT':
+ UNIT_3B=DEFI_FICHIER(FICHIER=fich3b)
+ unitr = UNIT_3B
+ if impr['FORMAT']=='IDEAS':
+ UNIT_4B=DEFI_FICHIER(FICHIER=fich4b)
+ unitr = UNIT_4B
+ if MODELISATION == '3D':
+ motscles['IMPRESSION'].append(_F(MAILLAGE=MA[j],RESULTAT=RESU,
+ NOM_CHAM=('DEPL','SIGM_ELNO_DEPL','EQUI_ELNO_SIGM',),) )
+ if MODELISATION == 'COQUE':
+ motscles['IMPRESSION'].append(_F(MAILLAGE=MA2[j],RESULTAT=RESU,
+ NOM_CHAM=('DEPL','SIGM_ELNO_DEPL','EQUI_ELNO_SIGM',),) )
+ if MODELISATION == 'POUTRE':
+ motscles['IMPRESSION'].append(_F(MAILLAGE=MA[j],RESULTAT=RESU,
+ NOM_CHAM=('DEPL','SIGM_ELNO_SIEF','SIPO_ELNO_SIEF',),) )
+
+ IMPR_RESU(FORMAT=impr['FORMAT'],UNITE=unitr,
+ RESU=motscles['IMPRESSION'],)
+
+ for impr in IMPRESSION :
+ if impr['FORMAT']=='RESULTAT':
+ DEFI_FICHIER(ACTION='LIBERER',FICHIER=fich1b)
+ DETRUIRE(CONCEPT=_F( NOM = UNIT_1B))
+ if impr['FORMAT']=='CASTEM':
+ DEFI_FICHIER(ACTION='LIBERER',FICHIER=fich2b)
+ DETRUIRE(CONCEPT=_F( NOM = UNIT_2B))
+ if impr['FORMAT']=='ENSIGHT':
+ DEFI_FICHIER(ACTION='LIBERER',FICHIER=fich3b)
+ DETRUIRE(CONCEPT=_F( NOM = UNIT_3B))
+ if impr['FORMAT']=='IDEAS':
+ DEFI_FICHIER(ACTION='LIBERER',FICHIER=fich4b)
+ DETRUIRE(CONCEPT=_F( NOM = UNIT_4B))
+
+ if (MODELISATION == '3D') and (FATIGUE != None) :
+ DETRUIRE(CONCEPT=_F( NOM = SIG_PRO))
+ DETRUIRE(CONCEPT=_F( NOM = RESPRO))
+ if MODELISATION == 'POUTRE' :
+ DETRUIRE(CONCEPT=_F( NOM = TEMPS))
+
+ DETRUIRE(CONCEPT=_F( NOM = FC3))
+ DETRUIRE(CONCEPT=_F( NOM = CH))
+ DETRUIRE(CONCEPT=_F( NOM = LIMIT))
+ DETRUIRE(CONCEPT=_F( NOM = POIDS))
+ DETRUIRE(CONCEPT=_F( NOM = RESU))
+#
+#____________________________________________________________________
+#
+# 3. Calcul de fatigue.
+# On calcule la fatigue si la modelisation est 3D et si le mot clef
+# fatigue est present.
+#____________________________________________________________________
+#
+# 3.1 ==> Calcul de la fatigue
+#
+ if (MODELISATION == '3D') and (FATIGUE != None) :
+
+ self.DeclareOut('CHFATI',self.sd)
+ CHFATI = CALC_FATIGUE (
+ TYPE_CALCUL = 'FATIGUE_MULTI',
+ TYPE_CHARGE = 'PERIODIQUE',
+ OPTION = 'DOMA_NOEUD',
+ RESULTAT = RESREF,
+ CHAM_MATER = CHAMREF,
+ GROUP_MA = ('BASE','FUT'),
+ MAILLAGE = mail_ref,
+ CRITERE=FATIGUE['CRITERE'],
+ METHODE='CERCLE_EXACT',
+ INFO = 2, )
+
+#____________________________________________________________________
+#
+# 3.2 ==> Impression des resultats de fatigue
+#
+ if IMPRESSION != None :
+ motscles={}
+ motscles['IMPRESSION']=[]
+
+ motscles['IMPRESSION'].append(_F(MAILLAGE=mail_ref,CHAM_GD=CHFATI,) )
+
+ IMPR_RESU( FORMAT=impr['FORMAT'],
+ MODELE = MOREF,
+ RESU=motscles['IMPRESSION'],)
+
+#____________________________________________________________________
+#
+# 4. C'est fini !
+#____________________________________________________________________
+#
+ if erreur :
+ if not messages_erreur.has_key(erreur) :
+ erreur = 100
+ self.cr.fatal(messages_erreur[erreur])
+
+ return
+#
+#____________________________________________________________________
+#____________________________________________________________________
+#
+# CATALOGUES DES MACRO-COMMANDES
+#____________________________________________________________________
+#____________________________________________________________________
+#
+# ________________________________________
+#
+#____________________________________________________________________
+#____________________________________________________________________
+#
+# CATALOGUE DE LA MACRO COMMANDE CALC_CHAR_HOULE
+#____________________________________________________________________
+#____________________________________________________________________
+#
+
+CALC_CHAR_HOULE=MACRO( nom="CALC_CHAR_HOULE",op=calc_char_houle_ops,
+ fr="Calcul le chargement du a la houle.",
+ ang=".",reentrant='n',
+ docu="Ux.xx.xx-a",
+
+ STREAM =FACT(statut='o',max=1,
+ PROFONDEUR =SIMP(statut='o',typ='R'),
+ H_HOULE =SIMP(statut='o',typ='R'),
+ PERI_HOULE =SIMP(statut='o',typ='R'),
+ COUR_EULERIEN =SIMP(statut='o',typ='R'),
+ COEF_TRAINEE =SIMP(statut='o',typ='R'),
+ COEF_INERTIE =SIMP(statut='o',typ='R'),
+ ORDR_FONC_COURAN =SIMP(statut='o',typ='I'),
+ NB_POINTS_VERT =SIMP(statut='o',typ='I'),
+ NB_INTER_PERI =SIMP(statut='o',typ='I'),
+ DEXT_HAUT_BASE =SIMP(statut='o',typ='R'),
+ ),
+
+ IMPRESSION =FACT(statut='f',
+ UNITE =SIMP(statut='o',typ='I'),
+ ),
+
+ INFO = SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
+
+);
+
+#
+#____________________________________________________________________
+#____________________________________________________________________
+#
+# CATALOGUE DE LA MACRO COMMANDE MACR_CALC_EOLIENNE
+#____________________________________________________________________
+#____________________________________________________________________
+#
+
+def macr_calc_eolienne_prod(self,NOM_MAIL_REF,**args):
+ if NOM_MAIL_REF != None : self.type_sdprod(NOM_MAIL_REF,maillage_sdaster)
+ return cham_no_sdaster
+
+
+MACR_CALC_EOLIENNE=MACRO(nom="MACR_CALC_EOLIENNE",op=macr_calc_eolienne_ops,
+ sd_prod=macr_calc_eolienne_prod,
+ fr="Calcul d une eolienne en mer.",
+ ang=".",reentrant='n',
+ docu="U2.09.04-a",
+
+ EXEC_MAILLAGE =FACT(statut='o',
+ LOGICIEL =SIMP(statut='o',typ='TXM',defaut="GIBI2000",into=("GIBI98","GIBI2000") ),
+ UNITE_DATG =SIMP(statut='f',typ='I',defaut=70),
+ UNITE_MGIB =SIMP(statut='f',typ='I',defaut=19),
+ NIVE_GIBI =SIMP(statut='f',typ='I',defaut=10,into=(3,4,5,6,7,8,9,10,11)),
+ ),
+
+ MODELISATION =SIMP(statut='o',typ='TXM', into=("POUTRE","COQUE","3D") ),
+ NOM_MAIL_REF =SIMP(statut='f',typ=(CO,maillage_sdaster)),
+
+ TYPE_ELEM =SIMP(statut='f',typ='TXM',defaut="CUB8",into=("CUB8","CU20") ),
+
+ b_model_3D =BLOC(condition = "MODELISATION == '3D'",
+
+ MONOPODE =FACT(statut='o',max=1,
+
+ H_TOTALE =SIMP(statut='o',typ='R' ),
+ H_BASE =SIMP(statut='o',typ='R' ),
+ H_MOYEU =SIMP(statut='o',typ='R' ),
+ H_JONCTION =SIMP(statut='o',typ='R' ),
+ DECAL_PALES =SIMP(statut='o',typ='R' ),
+ DEXT_NACELLE =SIMP(statut='o',typ='R' ),
+ EPAIS_NACELLE =SIMP(statut='o',typ='R' ),
+ DEXT_HAUT_BASE =SIMP(statut='o',typ='R' ),
+ DEXT_BAS_BASE =SIMP(statut='f',typ='R' ),
+ EPAIS_HAUT_BASE =SIMP(statut='o',typ='R' ),
+ EPAIS_BAS_BASE =SIMP(statut='f',typ='R' ),
+ DEXT_HAUT_FUT =SIMP(statut='o',typ='R' ),
+ DEXT_BAS_FUT =SIMP(statut='f',typ='R' ),
+ EPAIS_HAUT_FUT =SIMP(statut='o',typ='R' ),
+ EPAIS_BAS_FUT =SIMP(statut='f',typ='R' ),
+ NB_ELEM_BASE =SIMP(statut='f',typ='I',defaut=30),
+ NB_ELEM_FUT =SIMP(statut='f',typ='I',defaut=70),
+ NBEL_EPAIS_BASE =SIMP(statut='f',typ='I',defaut=3),
+ NBEL_EPAIS_FUT =SIMP(statut='f',typ='I',defaut=3),
+ NBEL_DCIR_BASE =SIMP(statut='f',typ='I',defaut=15),
+ NBEL_DCIR_FUT =SIMP(statut='f',typ='I',defaut=15),
+ ),
+ ),
+
+ b_model_coque =BLOC(condition = "MODELISATION == 'COQUE' ",
+
+ MONOPODE =FACT(statut='o',max=1,
+
+ H_TOTALE =SIMP(statut='o',typ='R' ),
+ H_BASE =SIMP(statut='o',typ='R' ),
+ H_MOYEU =SIMP(statut='o',typ='R' ),
+ H_JONCTION =SIMP(statut='o',typ='R' ),
+ DECAL_PALES =SIMP(statut='o',typ='R' ),
+ DEXT_NACELLE =SIMP(statut='o',typ='R' ),
+ EPAIS_NACELLE =SIMP(statut='o',typ='R' ),
+ DEXT_HAUT_BASE =SIMP(statut='o',typ='R' ),
+ DEXT_BAS_BASE =SIMP(statut='f',typ='R' ),
+ EPAIS_HAUT_BASE =SIMP(statut='o',typ='R' ),
+ EPAIS_BAS_BASE =SIMP(statut='f',typ='R' ),
+ DEXT_HAUT_FUT =SIMP(statut='o',typ='R' ),
+ DEXT_BAS_FUT =SIMP(statut='f',typ='R' ),
+ EPAIS_HAUT_FUT =SIMP(statut='o',typ='R' ),
+ EPAIS_BAS_FUT =SIMP(statut='f',typ='R' ),
+ NB_ELEM_BASE =SIMP(statut='f',typ='I',defaut=30),
+ NB_ELEM_FUT =SIMP(statut='f',typ='I',defaut=70),
+ NBEL_DCIR_BASE =SIMP(statut='f',typ='I',defaut=15),
+ NBEL_DCIR_FUT =SIMP(statut='f',typ='I',defaut=15),
+ ),
+ ),
+
+ b_model_poutre =BLOC(condition = "MODELISATION == 'POUTRE' ",
+
+ MONOPODE =FACT(statut='o',max=1,
+
+ H_TOTALE =SIMP(statut='o',typ='R' ),
+ H_BASE =SIMP(statut='o',typ='R' ),
+ H_MOYEU =SIMP(statut='o',typ='R' ),
+ DECAL_PALES =SIMP(statut='o',typ='R' ),
+ DEXT_HAUT_BASE =SIMP(statut='o',typ='R' ),
+ DEXT_BAS_BASE =SIMP(statut='f',typ='R' ),
+ EPAIS_HAUT_BASE =SIMP(statut='o',typ='R' ),
+ EPAIS_BAS_BASE =SIMP(statut='f',typ='R' ),
+ DEXT_HAUT_FUT =SIMP(statut='o',typ='R' ),
+ DEXT_BAS_FUT =SIMP(statut='f',typ='R' ),
+ EPAIS_HAUT_FUT =SIMP(statut='o',typ='R' ),
+ EPAIS_BAS_FUT =SIMP(statut='f',typ='R' ),
+ NB_ELEM_BASE =SIMP(statut='f',typ='I',defaut=30),
+ NB_ELEM_FUT =SIMP(statut='f',typ='I',defaut=70),
+ ),
+ ),
+
+ AFFE_MATERIAU =FACT(statut='o',max=3,
+ regles=(UN_PARMI('TOUT','GROUP_MA'),),
+ TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
+ GROUP_MA =SIMP(statut='f',typ='TXM',into=("BASE","FUT") ),
+ MATER =SIMP(statut='o',typ=mater_sdaster ),
+ TEMP_REF =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
+ ),
+
+ CHARGEMENT =FACT(statut='o',
+ FORCE_POIDS_ROTOR =SIMP(statut='o',typ='R' ),
+ FORCE_POIDS_NACELLE =SIMP(statut='o',typ='R' ),
+ FORCE_VENT_PALES =SIMP(statut='o',typ='R' ),
+ ANGLE_VENT_AXE_X =SIMP(statut='o',typ='R' ),
+ MOMENT_RESISTANT =SIMP(statut='o',typ='R' ),
+ FORCE_VENT_FUT =SIMP(statut='o',typ=(fonction_sdaster,formule) ),
+ VENT =SIMP(statut='o',typ='TXM',into=("OUI","NON") ),
+ HOULE =SIMP(statut='o',typ='TXM',into=("OUI","NON") ),
+ ),
+
+ FATIGUE =FACT(statut='f',
+ CRITERE =SIMP(statut='f',typ='TXM',defaut="DANG_VAN_MODI_AC",into=("MATAKE","DANG_VAN_MODI_AC") ),
+ ),
+
+ SOLVEUR =FACT(statut='d',
+ METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ),
+ b_mult_front =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale",
+ RENUM =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
+ ),
+ b_ldlt =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT",
+ RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
+ ),
+ b_ldlt_mult =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ",
+ fr="Paramètres relatifs à la non inversibilité de la matrice à factorise",
+ NPREC =SIMP(statut='f',typ='I',defaut= 8 ),
+ STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
+ ),
+ b_gcpc =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué",
+ PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ),
+ NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ),
+ RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ),
+ RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
+ NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ),
+ ),
+ SYME =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
+ ),
+
+ IMPRESSION =FACT(statut='f',
+ FORMAT =SIMP(statut='f',typ='TXM',defaut="RESULTAT",
+ into=("RESULTAT","CASTEM","IDEAS","ENSIGHT")),
+
+ b_format_ideas =BLOC(condition="FORMAT=='IDEAS'",fr="version Ideas",
+ VERSION =SIMP(statut='f',typ='I',defaut=5,into=(4,5)),
+ ),
+
+ b_format_castem =BLOC(condition="FORMAT=='CASTEM'",fr="version Castem",
+ NIVE_GIBI =SIMP(statut='f',typ='I',defaut=10,into=(3,10)),
+ ),
+
+ TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ),
+ NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
+ INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
+ ),
+
+ INFO = SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
+
+);
--- /dev/null
+#@ MODIF macr_cabri_calc_cata Intranet DATE 28/01/2008 AUTEUR PELLET J.PELLET
+# -*- coding: iso-8859-1 -*-
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2008 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# ======================================================================
+
+from Intranet.macr_cabri_calc_ops import macr_cabri_calc_ops
+from Cata.cata import *
+
+def macr_cabri_calc_prod(self,MODELE_THER,MODELE_MECA,CHAM_MATER,
+ CHAR_THER,CHAR_MECA,RESU_THER,**args):
+ if MODELE_THER != None:
+ self.type_sdprod(MODELE_THER,modele_sdaster)
+ if MODELE_MECA != None:
+ self.type_sdprod(MODELE_MECA,modele_sdaster)
+ if RESU_THER != None:
+ self.type_sdprod(RESU_THER,evol_ther)
+ if CHAM_MATER != None:
+ self.type_sdprod(CHAM_MATER,cham_mater)
+ if CHAR_THER != None:
+ for m in CHAR_THER:
+ self.type_sdprod(m['CHARGE'],char_ther)
+ if CHAR_MECA != None:
+ for m in CHAR_MECA:
+ self.type_sdprod(m['CHARGE'],char_meca)
+ return evol_noli
+
+
+MACR_CABRI_CALC=MACRO(nom="MACR_CABRI_CALC",
+ op=macr_cabri_calc_ops,
+ sd_prod=macr_cabri_calc_prod,
+ fr="Calcul thermo-mécanique d'une jonction boulonnée de tuyauterie",
+ reentrant='n',
+ UIinfo={"groupes":("Outils métier",)},
+ MAILLAGE = SIMP(statut='o',typ=maillage_sdaster,),
+ AFFE_MATERIAU = FACT(statut='o',max='**',
+ regles=(UN_PARMI('TOUT','GROUP_MA',),),
+ TOUT = SIMP(statut='f',typ='TXM',into=("OUI",) ),
+ GROUP_MA = SIMP(statut='f',typ='TXM',into=(
+ "BRIDE",
+ "GOUJON",
+ "ROND",
+ "ECROU",
+ "JOINT",) ),
+ MATER = SIMP(statut='o',typ=mater_sdaster),
+ TEMP_REF = SIMP(statut='d',typ='R',defaut= 25. ),
+ ),
+ CHAM_MATER = SIMP(statut = 'f',typ=CO,),
+ MODELE_THER= SIMP(statut = 'f',typ=CO,),
+
+ DEFI_CHAR_THER = FACT(statut ='d',
+ TEMP_INIT = SIMP(statut='d',typ='R',defaut= 25.,),
+ COEF_H_FLUI = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster),),
+ TEMP_EXT_FLUI = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster),),
+ COEF_H_AIR = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster),),
+ TEMP_EXT_AIR = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster),),
+ LIST_INST = SIMP(statut='f',typ=listr8_sdaster),
+ ),
+
+ CHAR_THER = FACT(statut = 'f',max=4,
+ CHARGE = SIMP(statut='o',typ=CO),
+ TYPE = SIMP(statut='o',typ='TXM',
+ into=("BRIDE_FLUIDE","BRIDE_AIR","ECROU_GOUJON",
+ "BRIDE_JOINT"),)
+ ),
+
+ RESU_THER = SIMP(statut = 'f',typ=CO,),
+
+
+ MODELE_MECA= SIMP(statut = 'f',typ=CO,),
+
+ DEFI_CHAR_MECA = FACT(statut='o',
+ PRETENS = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster),),
+ PRES_REP = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster),),
+ EFFE_FOND = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster),),
+ ),
+
+ CHAR_MECA = FACT(statut = 'f',max=11,
+ CHARGE = SIMP(statut='o',typ=CO),
+ TYPE = SIMP(statut='o',typ='TXM',
+ into=("BLOC_BAS_GOUJ","BLOC_BAS_JOINT",
+ "BLOC_LAT_ALES","BLOC_LAT_NALES",
+ "PLAN_TUBE",
+ "PRES_FLU","EFFET_FOND",
+ "CONT_JOINT",
+ "DEFO_THER",
+ "SERR_ECROU_1","SERR_ECROU_2",),)
+ ),
+
+ RELATION = SIMP(statut='f',typ='TXM',
+ into=('VMIS_ISOT_TRAC','ELAS','ELAS_VMIS_TRAC',),),
+
+ SOLVEUR = FACT(statut='d',
+ METHODE = SIMP(statut='d',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT",) ),
+ b_mult_front = BLOC(condition = "METHODE == 'MULT_FRONT' ",
+ fr="Paramètres de la méthode multi frontale",
+ RENUM = SIMP(statut='d',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
+ NPREC = SIMP(statut='d',typ='I',defaut=8),
+ STOP_SINGULIER = SIMP(statut='d',typ='TXM',defaut="OUI",into=("OUI","NON") ),
+ ),
+ ),
+ INCREMENT = FACT(statut='f',
+ regles=(EXCLUS('NUME_INST_INIT','INST_INIT'),
+ EXCLUS('NUME_INST_FIN','INST_FIN'),),
+ LIST_INST =SIMP(statut='f',typ=listr8_sdaster),
+ EVOLUTION =SIMP(statut='f',typ='TXM',defaut="CHRONOLOGIQUE",
+ into=("CHRONOLOGIQUE",) ),
+ NUME_INST_INIT =SIMP(statut='f',typ='I'),
+ INST_INIT =SIMP(statut='f',typ='R'),
+ NUME_INST_FIN =SIMP(statut='f',typ='I'),
+ INST_FIN =SIMP(statut='f',typ='R'),
+ PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3 ),
+ # DEBUT DE BLOC POUR LA SUBDIVISION DES PAS DE TEMPS
+ SUBD_METHODE =SIMP( statut='f',typ='TXM',
+ into =("AUCUNE","UNIFORME","EXTRAPOLE"),
+ defaut="AUCUNE",
+ fr="Méthode de subdivision des pas de temps en cas de non-convergence"
+ ),
+ b_subd_unif=BLOC(condition = "SUBD_METHODE == 'UNIFORME'",
+ regles=(AU_MOINS_UN('SUBD_NIVEAU','SUBD_PAS_MINI'),),
+ SUBD_COEF_PAS_1=SIMP(statut='f',typ='R',defaut=1.0,val_min=0.0,
+ fr="Coefficient multiplicateur de la 1ère subdivision"),
+ SUBD_PAS =SIMP(statut='f',typ='I',defaut=4,val_min=2,
+ fr="Nombre de subdivision d'un pas de temps"),
+ SUBD_NIVEAU=SIMP(statut='f',typ='I',val_min=2,
+ fr="Nombre maximum de niveau de subdivision d'un pas de temps"),
+ SUBD_PAS_MINI=SIMP(statut='f',typ='R',val_min=0.0,
+ fr="Pas de temps en dessous duquel on ne subdivise plus"),
+ ),
+ b_subd_extr=BLOC(condition = "SUBD_METHODE == 'EXTRAPOLE'",
+ regles=(AU_MOINS_UN('SUBD_NIVEAU','SUBD_PAS_MINI'),),
+ SUBD_OPTION =SIMP(statut='f',typ='TXM',
+ into =("IGNORE_PREMIERES","GARDE_DERNIERES",),
+ defaut="IGNORE_PREMIERES",
+ fr="Technique d'extrapolation : les 1ere itérations sont ignorées ou les dernières sont gardées"),
+ SUBD_ITER_IGNO =SIMP(statut='c',typ='I',defaut=3,val_min=0,
+ fr="Les n premières itérations sont ignorées pour l'extrapolation"),
+ SUBD_ITER_FIN =SIMP(statut='c',typ='I',defaut=8,val_min=3,
+ fr="Seules les n dernières itérations sont prises pour l'extrapolation"),
+ SUBD_PAS =SIMP(statut='c',typ='I',defaut=4,val_min=2,
+ fr="Nombre de subdivision d'un pas de temps en cas divergence"),
+ SUBD_NIVEAU=SIMP(statut='f',typ='I',val_min=2,
+ fr="Nombre maximum de niveau de subdivision d'un pas de temps"),
+ SUBD_PAS_MINI=SIMP(statut='f',typ='R',val_min=0.0,
+ fr="Pas de temps en dessous duquel on ne subdivise plus"),
+ SUBD_ITER_PLUS =SIMP(statut='c',typ='I',defaut=50,val_min=20,
+ fr="% itération autorisée en plus"),
+ ),
+ # FIN DE BLOC POUR LA SUBDIVISION DES PAS DE TEMPS
+ OPTI_LIST_INST =SIMP(statut='f',typ='TXM',into=("INCR_MAXI",),),
+ NOM_CHAM =SIMP(statut='f',typ='TXM',),
+ NOM_CMP =SIMP(statut='f',typ='TXM',),
+ VALE =SIMP(statut='f',typ='R'),
+ ),
+ NEWTON =FACT(statut='d',
+ REAC_INCR =SIMP(statut='f',typ='I',defaut= 1 ),
+ PREDICTION =SIMP(statut='f',typ='TXM',into=("TANGENTE","ELASTIQUE","EXTRAPOL") ),
+ MATRICE =SIMP(statut='f',typ='TXM',defaut="TANGENTE",into=("TANGENTE","ELASTIQUE") ),
+ PAS_MINI_ELAS =SIMP(statut='f',typ='R',defaut=0.0E+0),
+ REAC_ITER =SIMP(statut='f',typ='I',defaut=0),
+ EVOL_NOLI =SIMP(statut='f',typ=evol_noli),
+ ),
+ RESO_INTE =SIMP(statut='f',typ='TXM',defaut="IMPLICITE",
+ into=("IMPLICITE",)),
+ CONVERGENCE =FACT(statut='d',
+ regles=(PRESENT_ABSENT('RESI_REFE_RELA','RESI_GLOB_MAXI','RESI_GLOB_RELA'),),
+ SIGM_REFE =SIMP(statut='f',typ='R'),
+ EPSI_REFE =SIMP(statut='f',typ='R'),
+ FLUX_THER_REFE =SIMP(statut='f',typ='R'),
+ RESI_REFE_RELA =SIMP(statut='f',typ='R'),
+ RESI_GLOB_MAXI =SIMP(statut='f',typ='R'),
+ RESI_GLOB_RELA =SIMP(statut='f',typ='R'),
+ ITER_GLOB_MAXI =SIMP(statut='f',typ='I',defaut=10),
+ ITER_GLOB_ELAS =SIMP(statut='f',typ='I',defaut=25),
+ ),
+ );
--- /dev/null
+#@ MODIF macr_cabri_calc_ops Intranet DATE 28/01/2008 AUTEUR PELLET J.PELLET
+# -*- coding: iso-8859-1 -*-
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2008 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# ======================================================================
+
+
+def macr_cabri_calc_ops(self,MAILLAGE,MODELE_MECA,MODELE_THER,CHAR_THER,
+ CHAR_MECA,RESU_THER,RESO_INTE,
+ AFFE_MATERIAU,DEFI_CHAR_THER,DEFI_CHAR_MECA,RELATION,SOLVEUR,CONVERGENCE,NEWTON,
+ INCREMENT,CHAM_MATER,**args):
+ """
+ Ecriture de la macro MACR_CABRI_CALC
+ """
+
+ #################################################################
+ ########## PREPARATION MACRO
+ #################################################################
+
+ from Accas import _F
+
+ ier =0
+
+ # On met certains mots-clefs dans des variables locales pour les proteger
+ affemateriau = AFFE_MATERIAU
+ mail = MAILLAGE
+ resointe = RESO_INTE
+
+ # On importe les definitions des commandes a utiliser dans la macro
+ # Le nom de la variable doit etre obligatoirement le nom de la commande
+ DEFI_GROUP = self.get_cmd('DEFI_GROUP')
+ AFFE_MATERIAU = self.get_cmd('AFFE_MATERIAU')
+ AFFE_MODELE = self.get_cmd('AFFE_MODELE')
+ MODI_MAILLAGE = self.get_cmd('MODI_MAILLAGE')
+ AFFE_CHAR_THER_F = self.get_cmd('AFFE_CHAR_THER_F')
+ AFFE_CHAR_THER = self.get_cmd('AFFE_CHAR_THER')
+ AFFE_CHAR_MECA_F = self.get_cmd('AFFE_CHAR_MECA_F')
+ AFFE_CHAR_MECA = self.get_cmd('AFFE_CHAR_MECA')
+ DEFI_FONCTION = self.get_cmd('DEFI_FONCTION')
+ DEFI_LIST_REEL = self.get_cmd('DEFI_LIST_REEL')
+ THER_LINEAIRE = self.get_cmd('THER_LINEAIRE')
+ STAT_NON_LINE = self.get_cmd('STAT_NON_LINE')
+
+ # La macro compte pour 1 dans la numerotation des commandes
+ self.set_icmd(1)
+
+ # Le concept sortant (de type evol_noli) est nomme 'resumeca' dans
+ # le contexte de la macro
+ self.DeclareOut('resumeca',self.sd)
+ self.DeclareOut('mail',MAILLAGE)
+
+ #################################################################
+ ########## PREPARATION DES MODELES
+ #################################################################
+
+ # Definition des groupes
+ mail=DEFI_GROUP(reuse =mail,MAILLAGE=mail,
+ CREA_GROUP_NO=(
+ _F(GROUP_MA='M_GOU',NOM='N_M_GOU',),
+ _F(GROUP_MA='M_JOI',NOM='N_M_JOI',),
+ _F(GROUP_MA='SCBJ',NOM='N_SCBJ',),
+ _F(GROUP_MA='SCJB',NOM='N_SCJB',),
+ _F(GROUP_MA='M_L_AA',NOM='N_M_L_AA',),
+ _F(GROUP_MA='SCEG',NOM='N_SCEG',),
+ _F(GROUP_MA='SCGE',NOM='N_SCGE',),),)
+
+ # Creation du modele thermique
+ if MODELE_THER != None:
+ self.DeclareOut('modther',MODELE_THER)
+
+ modther=AFFE_MODELE(MAILLAGE=mail,
+ AFFE=_F(GROUP_MA=('VTOT','M_GOU','M_TUB','M_JOI','SCBJ','SCJB',
+ 'M_L_AA','M_INT','M_L_SA','M_EXT','SCEG','SCGE',),
+ PHENOMENE='THERMIQUE',
+ MODELISATION='3D_DIAG',),
+ );
+
+ # Creation du modele mecanique
+ if MODELE_MECA != None:
+ self.DeclareOut('modmeca',MODELE_MECA)
+
+ modmeca = AFFE_MODELE(MAILLAGE=mail,
+ AFFE=_F(GROUP_MA=('VTOT','M_GOU','M_TUB','M_JOI','SCBJ','SCJB',
+ 'M_L_AA','M_L_SA','SCEG','SCGE','M_INT','M_EXT',),
+ PHENOMENE='MECANIQUE',
+ MODELISATION='3D',),
+ );
+
+ # Orientation des mailles
+ mail=MODI_MAILLAGE(reuse =mail,
+ MAILLAGE=mail,
+ ORIE_PEAU_3D=(_F(GROUP_MA=('M_INT','M_TUB',),),
+ _F(GROUP_MA=('M_L_AA','M_JOI','M_L_SA',),),),
+ );
+
+
+
+ # Affectation des materiaux (thermique)
+ motscles={}
+ motscles['AFFE']=[]
+ for mat in affemateriau:
+ if mat['TOUT'] == None:
+ # Creation de mots-cles pour les AFFE_CHAR_MECA
+ motscles['AFFE'].append(_F(GROUP_MA=mat['GROUP_MA'],
+ MATER = mat['MATER']))
+ else:
+ # Creation de mots-cles pour les AFFE_CHAR_MECA
+ motscles['AFFE'].append(_F(TOUT='OUI',
+ MATER = mat['MATER']))
+
+ __cham = AFFE_MATERIAU(MAILLAGE=mail,
+ MODELE=modther,
+ AFFE=motscles['AFFE'],
+ )
+
+ #################################################################
+ ########## CONDITIONS AUX LIMITES THERMIQUES
+ #################################################################
+ # Recuperation des parametres thermiques
+
+ if DEFI_CHAR_THER != None:
+ temp_ini = DEFI_CHAR_THER['TEMP_INIT']
+ if DEFI_CHAR_THER['COEF_H_FLUI']!=None:
+ coef_int = DEFI_CHAR_THER['COEF_H_FLUI']
+ else:
+ coef_int = DEFI_FONCTION(NOM_PARA='INST',
+ VALE=(0.0,0.016,
+ 7200.0,0.016,),
+ PROL_DROITE='CONSTANT',
+ PROL_GAUCHE='CONSTANT',);
+ if DEFI_CHAR_THER['TEMP_EXT_FLUI']!=None:
+ temp_int = DEFI_CHAR_THER['TEMP_EXT_FLUI']
+ else:
+ temp_int = DEFI_FONCTION(NOM_PARA='INST',
+ VALE=(0.0,temp_ini,1.0,temp_ini,11.0,60.0,
+ 600.0,60.0,610.0,280.0,1800.0,280.0,7200.0,280.0,),
+ PROL_DROITE='CONSTANT',
+ PROL_GAUCHE='CONSTANT',);
+ if DEFI_CHAR_THER['COEF_H_AIR']!=None:
+ coef_ext = DEFI_CHAR_THER['COEF_H_AIR']
+ else:
+ coef_ext = DEFI_FONCTION(NOM_PARA='INST',
+ VALE=(0.0,1e-05,7200.0,1e-05,),
+ PROL_DROITE='CONSTANT',
+ PROL_GAUCHE='CONSTANT',);
+
+ if DEFI_CHAR_THER['TEMP_EXT_AIR']!=None:
+ temp_ext = DEFI_CHAR_THER['TEMP_EXT_AIR']
+ else:
+ temp_ext = DEFI_FONCTION(NOM_PARA='INST',
+ VALE=(0.0,20.0,7200.0,20.0,),
+ PROL_DROITE='CONSTANT',
+ PROL_GAUCHE='CONSTANT',);
+ if DEFI_CHAR_THER['LIST_INST']!=None:
+ transi1 = DEFI_CHAR_THER['LIST_INST']
+ else:
+ transi1 = DEFI_LIST_REEL(DEBUT=0.0,
+ INTERVALLE=(_F(JUSQU_A=1.0,
+ NOMBRE=1,),
+ _F(JUSQU_A=11.0,
+ NOMBRE=10,),
+ _F(JUSQU_A=600.0,
+ NOMBRE=10,),
+ _F(JUSQU_A=610.0,
+ NOMBRE=30,),
+ _F(JUSQU_A=1800.0,
+ NOMBRE=30,),
+ _F(JUSQU_A=7200.0,
+ NOMBRE=10,),),);
+ else:
+ temp_ini = DEFI_CHAR_THER['TEMP_INIT']
+ coef_int = DEFI_FONCTION(NOM_PARA='INST',
+ VALE=(0.0,0.016,
+ 7200.0,0.016,),
+ PROL_DROITE='CONSTANT',
+ PROL_GAUCHE='CONSTANT',);
+ temp_int = DEFI_FONCTION(NOM_PARA='INST',
+ VALE=(0.0,temp_ini,1.0,temp_ini,11.0,60.0,
+ 600.0,60.0,610.0,280.0,1800.0,280.0,7200.0,280.0,),
+ PROL_DROITE='CONSTANT',
+ PROL_GAUCHE='CONSTANT',);
+ coef_ext = DEFI_FONCTION(NOM_PARA='INST',
+ VALE=(0.0,1e-05,7200.0,1e-05,),
+ PROL_DROITE='CONSTANT',
+ PROL_GAUCHE='CONSTANT',);
+ temp_ext = DEFI_FONCTION(NOM_PARA='INST',
+ VALE=(0.0,20.0,7200.0,20.0,),
+ PROL_DROITE='CONSTANT',
+ PROL_GAUCHE='CONSTANT',);
+ transi1 = DEFI_LIST_REEL(DEBUT=0.0,
+ INTERVALLE=(_F(JUSQU_A=1.0,
+ NOMBRE=1,),
+ _F(JUSQU_A=11.0,
+ NOMBRE=10,),
+ _F(JUSQU_A=600.0,
+ NOMBRE=10,),
+ _F(JUSQU_A=610.0,
+ NOMBRE=30,),
+ _F(JUSQU_A=1800.0,
+ NOMBRE=30,),
+ _F(JUSQU_A=7200.0,
+ NOMBRE=10,),),);
+ # Que sauver ?
+ if CHAR_THER != None:
+ for m in CHAR_THER:
+ if m['TYPE']=="BRIDE_FLUIDE":
+ self.DeclareOut('cl_th1',m['CHARGE'])
+ if m['TYPE']=="BRIDE_AIR":
+ self.DeclareOut('cl_th2',m['CHARGE'])
+ if m['TYPE']=="ECROU_GOUJON":
+ self.DeclareOut('cl_th3',m['CHARGE'])
+ if m['TYPE']=="BRIDE_JOINT":
+ self.DeclareOut('cl_th4',m['CHARGE'])
+
+ # Echanges thermiques internes entre le fluide et la bride
+ cl_th1=AFFE_CHAR_THER_F(MODELE=modther,
+ ECHANGE=_F(GROUP_MA = 'M_INT',
+ COEF_H = coef_int,
+ TEMP_EXT = temp_int,),);
+
+ # Echanges thermiques externes entre bride et air ambiant
+ cl_th2=AFFE_CHAR_THER_F(MODELE=modther,
+ ECHANGE=_F(GROUP_MA='M_EXT',
+ COEF_H=coef_ext,
+ TEMP_EXT=temp_ext,),);
+
+ # Echanges thermiques entre ecrou et goujon
+ cl_th3=AFFE_CHAR_THER(MODELE=modther,
+ LIAISON_GROUP=_F(GROUP_NO_1='N_SCEG',
+ GROUP_NO_2='N_SCGE',
+ DDL_1='TEMP',
+ COEF_MULT_1=1.0,
+ DDL_2='TEMP',
+ COEF_MULT_2=-1.0,
+ COEF_IMPO=0.0,),);
+
+ # Echanges thermiques entre bride et joint
+ cl_th4=AFFE_CHAR_THER(MODELE=modther,
+ LIAISON_GROUP=_F(GROUP_NO_1='N_SCBJ',
+ GROUP_NO_2='N_SCJB',
+ DDL_1='TEMP',
+ COEF_MULT_1=1.0,
+ DDL_2='TEMP',
+ COEF_MULT_2=-1.0,
+ COEF_IMPO=0.0,),);
+
+
+
+ #################################################################
+ ########## CALCUL THERMIQUE
+ #################################################################
+ if RESU_THER != None:
+ self.DeclareOut('resuther',RESU_THER)
+
+ resuther=THER_LINEAIRE(MODELE=modther,
+ CHAM_MATER=__cham,
+ EXCIT=(_F(CHARGE=cl_th1,),
+ _F(CHARGE=cl_th2,),
+ _F(CHARGE=cl_th3,),
+ _F(CHARGE=cl_th4,),),
+ INCREMENT=_F(LIST_INST=transi1,),
+ ETAT_INIT=_F(VALE=temp_ini,),
+ TITRE='CABRI THERMIQUE &DATE &HEURE',);
+
+ # Affectation des materiaux (mécanique)
+ if CHAM_MATER != None:
+ self.DeclareOut('_chamt',CHAM_MATER)
+ motscles={}
+ motscles['AFFE']=[]
+ motscles['AFFE_VARC']=[]
+ for mat in affemateriau:
+ if mat['TOUT'] == None:
+ # Creation de mots-cles pour les AFFE_CHAR_MECA
+ motscles['AFFE'].append(_F(GROUP_MA=mat['GROUP_MA'],
+ MATER = mat['MATER'],) )
+ motscles['AFFE_VARC'].append(_F(NOM_VARC='TEMP',GROUP_MA=mat['GROUP_MA'],
+ EVOL=resuther,NOM_CHAM='TEMP',
+ VALE_REF = mat['TEMP_REF'],))
+ else:
+ # Creation de mots-cles pour les AFFE_CHAR_MECA
+ motscles['AFFE'].append(_F(TOUT='OUI',
+ MATER = mat['MATER']) )
+ motscles['AFFE_VARC'].append(_F(NOM_VARC='TEMP',TOUT='OUI',
+ EVOL=resuther,NOM_CHAM='TEMP',
+ VALE_REF = mat['TEMP_REF'],))
+
+ _chamt = AFFE_MATERIAU(MAILLAGE=mail,
+ MODELE=modther,
+ AFFE=motscles['AFFE'],
+ AFFE_VARC=motscles['AFFE_VARC'],
+ )
+
+ #################################################################
+ ########## CONDITIONS AUX LIMITES MECANIQUES
+ #################################################################
+ # Recuperation des parametres mecaniques
+ if DEFI_CHAR_MECA != None:
+ if DEFI_CHAR_MECA['PRETENS']!=None:
+ f_pret = DEFI_CHAR_MECA['PRETENS']
+ else:
+ f_pret=DEFI_FONCTION(NOM_PARA='INST',
+ VALE=(0.0,0.0,1.0,-0.02,),
+ PROL_DROITE='CONSTANT',
+ PROL_GAUCHE='CONSTANT',);
+ if DEFI_CHAR_MECA['PRES_REP']!=None:
+ pre_int = DEFI_CHAR_MECA['PRES_REP']
+ else:
+ pre_int = DEFI_FONCTION(NOM_PARA='INST',
+ VALE=(0.0,0.0,1.0,0.0,11.0,16.0,),
+ PROL_DROITE='CONSTANT',
+ PROL_GAUCHE='CONSTANT',);
+ if DEFI_CHAR_MECA['EFFE_FOND']!=None:
+ eff_fond = DEFI_CHAR_MECA['EFFE_FOND']
+ else:
+ eff_fond=DEFI_FONCTION(NOM_PARA='INST',
+ VALE=(0.0,-0.0,1.0,-0.0,11.0,-20.607059,),
+ PROL_DROITE='CONSTANT',
+ PROL_GAUCHE='CONSTANT',);
+ else:
+ f_pret=DEFI_FONCTION(NOM_PARA='INST',
+ VALE=(0.0,0.0,1.0,-0.02,),
+ PROL_DROITE='CONSTANT',
+ PROL_GAUCHE='CONSTANT',);
+
+ pre_int = DEFI_FONCTION(NOM_PARA='INST',
+ VALE=(0.0,0.0,1.0,0.0,11.0,16.0,),
+ PROL_DROITE='CONSTANT',
+ PROL_GAUCHE='CONSTANT',);
+
+ eff_fond=DEFI_FONCTION(NOM_PARA='INST',
+ VALE=(0.0,-0.0,1.0,-0.0,11.0,-20.607059,),
+ PROL_DROITE='CONSTANT',
+ PROL_GAUCHE='CONSTANT',);
+ # Que sauver ?
+ if CHAR_MECA != None:
+ for m in CHAR_MECA:
+ if m['TYPE']=="BLOC_BAS_GOUJ":
+ self.DeclareOut('cl_me1',m['CHARGE'])
+ if m['TYPE']=="BLOC_BAS_JOINT":
+ self.DeclareOut('cl_me2',m['CHARGE'])
+ if m['TYPE']=="BLOC_LAT_ALES":
+ self.DeclareOut('cl_me3',m['CHARGE'])
+ if m['TYPE']=="BLOC_LAT_NALES":
+ self.DeclareOut('cl_me4',m['CHARGE'])
+ if m['TYPE']=="PLAN_TUBE":
+ self.DeclareOut('cl_me5',m['CHARGE'])
+ if m['TYPE']=="PRES_FLU":
+ self.DeclareOut('cl_me6',m['CHARGE'])
+ if m['TYPE']=="EFFET_FOND":
+ self.DeclareOut('cl_me7',m['CHARGE'])
+ if m['TYPE']=="CONT_JOINT":
+ self.DeclareOut('cl_me8',m['CHARGE'])
+ if m['TYPE']=="SERR_ECROU_1":
+ self.DeclareOut('cl_me10',m['CHARGE'])
+ if m['TYPE']=="SERR_ECROU_2":
+ self.DeclareOut('cl_me11',m['CHARGE'])
+
+
+ # Blocage bas du goujon
+ cl_me1=AFFE_CHAR_MECA(MODELE=modmeca,
+ DDL_IMPO=_F(GROUP_NO='N_M_GOU',
+ DZ=0.0,),
+ INFO=2,);
+ # Blocage bas du joint
+ cl_me2=AFFE_CHAR_MECA(MODELE=modmeca,
+ DDL_IMPO=_F(GROUP_NO='N_M_JOI',
+ DZ=0.0,),
+ INFO=2,);
+
+ # Blocage lateral, face laterale avec alesage
+ cl_me3=AFFE_CHAR_MECA(MODELE=modmeca,
+ DDL_IMPO=_F(GROUP_NO='N_M_L_AA',
+ DY=0.0,),
+ INFO=2,);
+
+ # Face laterale sans alesage
+ cl_me4=AFFE_CHAR_MECA(MODELE=modmeca,
+ FACE_IMPO=_F(GROUP_MA='M_L_SA',
+ DNOR=0.0,),
+ INFO=2,);
+
+ # Condition de planeite de la face de coupe du tube
+ cl_me5=AFFE_CHAR_MECA(MODELE=modmeca,
+ LIAISON_UNIF=_F(GROUP_MA='M_TUB',
+ DDL='DZ',),
+ INFO=2,);
+ # Pression due au fluide
+ cl_me6=AFFE_CHAR_MECA_F(MODELE=modmeca,
+ PRES_REP=_F(GROUP_MA='M_INT',
+ PRES=pre_int,),
+ INFO=2,);
+
+ # Effet de fond
+ cl_me7=AFFE_CHAR_MECA_F(MODELE=modmeca,
+ PRES_REP=_F(GROUP_MA='M_TUB',
+ PRES=eff_fond,),
+ INFO=2,);
+
+ # Contact zone de joint
+ cl_me8=AFFE_CHAR_MECA(MODELE=modmeca,
+ CONTACT=_F(GROUP_MA_MAIT='SCBJ',
+ GROUP_MA_ESCL='SCJB',),
+ INFO=2,);
+
+ # Serrage ecrou/goujon (pre-tensionnement)
+ cl_me10=AFFE_CHAR_MECA_F(MODELE=modmeca,
+ LIAISON_GROUP=_F(GROUP_NO_1='N_SCEG',
+ GROUP_NO_2='N_SCGE',
+ DDL_1='DZ',
+ COEF_MULT_1=1.0,
+ DDL_2='DZ',
+ COEF_MULT_2=-1.0,
+ COEF_IMPO=f_pret,),
+ INFO=2,);
+
+ cl_me11=AFFE_CHAR_MECA(MODELE=modmeca,
+ LIAISON_GROUP=_F(GROUP_NO_1='N_SCEG',
+ GROUP_NO_2='N_SCGE',
+ DDL_1='DX',
+ COEF_MULT_1=1.0,
+ DDL_2='DX',
+ COEF_MULT_2=-1.0,
+ COEF_IMPO=0.0,),
+ INFO=2,);
+
+
+ #################################################################
+ ########## CALCUL MECANIQUE
+ #################################################################
+ # Options de convergence
+ solveur=SOLVEUR[0].cree_dict_valeurs(SOLVEUR[0].mc_liste)
+
+ # Elimination des valeurs "None"
+ for i in solveur.keys():
+ if solveur[i]==None : del solveur[i]
+
+
+ transi2 = DEFI_LIST_REEL(DEBUT=0.0,
+ INTERVALLE=(_F(JUSQU_A=1.0,
+ NOMBRE=2,),
+ _F(JUSQU_A=11.0,
+ NOMBRE=20,),
+ _F(JUSQU_A=600.0,
+ NOMBRE=20,),
+ _F(JUSQU_A=610.0,
+ NOMBRE=20,),
+ _F(JUSQU_A=1800.0,
+ NOMBRE=20,),
+ _F(JUSQU_A=7200.0,
+ NOMBRE=20,),),);
+
+ # Options d'incrementation
+ if INCREMENT != None:
+ if INCREMENT['LIST_INST'] != None:
+ listinst = INCREMENT['LIST_INST']
+ else:
+ listinst = transi2
+
+ increment=INCREMENT[0].cree_dict_valeurs(INCREMENT[0].mc_liste)
+
+ # Elimination des valeurs "None"
+ for i in increment.keys():
+ if increment[i]==None : del increment[i]
+
+ increment['LIST_INST'] = listinst
+
+ else:
+ listinst = transi2
+ increment =_F(
+ LIST_INST = listinst,
+ ),
+
+ # Options de Newton
+ newton=NEWTON[0].cree_dict_valeurs(NEWTON[0].mc_liste)
+ # Elimination des valeurs "None"
+ for i in newton.keys():
+ if newton[i]==None : del newton[i]
+
+ # Options de convergence
+ convergence=CONVERGENCE[0].cree_dict_valeurs(CONVERGENCE[0].mc_liste)
+ # Elimination des valeurs "None"
+ for i in convergence.keys():
+ if convergence[i]==None : del convergence[i]
+
+ # Options de comportement
+ # Type incremental (=1) ou elastique (=0)
+ comp_incr = 0
+ if RELATION:
+ relation=RELATION
+ if relation == 'VMIS_ISOT_TRAC':
+ comp_incr = 1
+ else:
+ comp_incr = 0
+ else:
+ relation = 'ELAS'
+ comp_incr = 0
+
+
+ # Parametres du calcul
+ if comp_incr == 1:
+ resumeca=STAT_NON_LINE(MODELE=modmeca,
+ CHAM_MATER=_chamt,
+ EXCIT=(_F(CHARGE=cl_me1,),
+ _F(CHARGE=cl_me2,),
+ _F(CHARGE=cl_me3,),
+ _F(CHARGE=cl_me4,),
+ _F(CHARGE=cl_me5,),
+ _F(CHARGE=cl_me6,),
+ _F(CHARGE=cl_me7,),
+ _F(CHARGE=cl_me8,),
+ _F(CHARGE=cl_me10,),
+ _F(CHARGE=cl_me11,),
+ ),
+ SOLVEUR = solveur,
+ COMP_INCR =_F(RELATION=relation,RESO_INTE=resointe),
+ NEWTON = newton,
+ INCREMENT = increment,
+ CONVERGENCE = convergence,
+ TITRE='CABRI THERMOM\xe9CANIQUE &DATE &HEURE',);
+ else:
+ resumeca=STAT_NON_LINE(MODELE=modmeca,
+ CHAM_MATER=_chamt,
+ EXCIT=(_F(CHARGE=cl_me1,),
+ _F(CHARGE=cl_me2,),
+ _F(CHARGE=cl_me3,),
+ _F(CHARGE=cl_me4,),
+ _F(CHARGE=cl_me5,),
+ _F(CHARGE=cl_me6,),
+ _F(CHARGE=cl_me7,),
+ _F(CHARGE=cl_me8,),
+ _F(CHARGE=cl_me10,),
+ _F(CHARGE=cl_me11,),
+ ),
+ SOLVEUR = solveur,
+ COMP_ELAS =_F(RELATION=relation,RESO_INTE=resointe),
+ NEWTON = newton,
+ INCREMENT = increment,
+ CONVERGENCE = convergence,
+ TITRE='CABRI THERMOM\xe9CANIQUE &DATE &HEURE',);
+
+ return ier
--- /dev/null
+#@ MODIF macr_cabri_mail_cata Intranet DATE 28/01/2008 AUTEUR PELLET J.PELLET
+# -*- coding: iso-8859-1 -*-
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2008 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# ======================================================================
+
+from Intranet.macr_cabri_mail_ops import macr_cabri_mail_ops
+from Cata.cata import *
+
+MACR_CABRI_MAIL=MACRO(nom="MACR_CABRI_MAIL",
+ op=macr_cabri_mail_ops,
+ sd_prod=maillage_sdaster,
+ fr="maillage d'une jonction boulonnée de tuyauterie",
+ reentrant='n',
+ UIinfo={"groupes":("Outils métier",)},
+ EXEC_MAILLAGE = FACT(statut='o',
+ LOGICIEL = SIMP(statut = 'o',typ='TXM',into=("GIBI2000",),),
+ UNITE_DATG = SIMP(statut = 'f',typ='I',defaut=70,),
+ UNITE_MGIB = SIMP(statut = 'f',typ='I',defaut=19,),
+ NIVE_GIBI = SIMP(statut = 'f',typ='I',defaut=10,
+ into = (3,4,5,6,7,8,9,10,11),
+ ),
+ ),
+ RAFF_MAILLAGE = FACT(statut = 'd',
+ NB_RADIAL = SIMP(statut = 'f',typ='I',defaut=2,),
+ NB_CIRCONF = SIMP(statut = 'f',typ='I',defaut=3,),
+ NB_VERTICAL = SIMP(statut = 'f',typ='I',defaut=6,),
+ NB_ALESAGE = SIMP(statut = 'f',typ='I',defaut=5,),
+ ),
+ VERI_MAIL = FACT(statut='d',
+ VERIF = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
+ APLAT = SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
+ ),
+ GEOM_BRID = FACT(statut = 'o',
+ NORME = SIMP(statut = 'o',typ='TXM',into=("OUI","NON"),),
+ b_bride_iso = BLOC(condition = "NORME == 'OUI'",
+ TYPE = SIMP(statut='o',typ='TXM',
+ into=('A','AA','B','B1','C','D','D1','E','F',
+ 'FF','G','GG','H','H1','I','J','J1',
+ 'K','L','L1','M','N','O','P','S','T','W'),
+ ),
+ ),
+ b_bride_niso = BLOC(condition = "NORME == 'NON'",
+ TUBU_D_EXT = SIMP(statut='o',typ='R',),
+ TUBU_H = SIMP(statut='o',typ='R',),
+ BRID_D_EXT = SIMP(statut='o',typ='R',),
+ BRID_D_INT = SIMP(statut='o',typ='R',),
+ BRID_H = SIMP(statut='o',typ='R',),
+ BRID_D_CONGE = SIMP(statut='o',typ='R',),
+ BRID_R_CONGE = SIMP(statut='o',typ='R',),
+ BRID_D_EPAUL = SIMP(statut='o',typ='R',),
+ BRID_H_EPAUL = SIMP(statut='o',typ='R',),
+ BRID_D_ALESAG = SIMP(statut='o',typ='R',),
+ BRID_P_ALESAG = SIMP(statut='o',typ='R',),
+ BRID_H_ALESAG = SIMP(statut='o',typ='R',),
+ GOUJ_N_GOUJON = SIMP(statut='o',typ='I',),
+ GOUJ_D_GOUJON = SIMP(statut='o',typ='R',),
+ GOUJ_E_FILET = SIMP(statut='o',typ='R',),
+ GOUJ_D_RONDEL = SIMP(statut='o',typ='R',),
+ GOUJ_E_RONDEL = SIMP(statut='o',typ='R',),
+ GOUJ_D_ECROU = SIMP(statut='o',typ='R',),
+ GOUJ_E_ECROU = SIMP(statut='o',typ='R',),
+ ETAN_E_JOINT = SIMP(statut='o',typ='R',),
+ ),
+ ),
+ IMPRESSION = FACT(statut='d',
+ UNITE = SIMP(statut='f',typ='I'),
+ FORMAT = SIMP(statut='f',typ='TXM',defaut="ASTER",
+ into=("ASTER","CASTEM","IDEAS"),
+ ),
+ b_impr_castem = BLOC(condition = "FORMAT == 'CASTEM'",
+ NIVE_GIBI = SIMP(statut='f',typ='I',defaut=10,into=(3,10),),
+ ),
+ b_impr_ideas = BLOC(condition = "FORMAT == 'IDEAS'",
+ VERSION = SIMP(statut='f',typ='I',defaut=5,into=(4,5),),
+ ),
+ ),
+ );
--- /dev/null
+#@ MODIF macr_cabri_mail_dat Intranet DATE 28/01/2008 AUTEUR PELLET J.PELLET
+# -*- coding: iso-8859-1 -*-
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2008 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# ======================================================================
+
+# Données pour les brides standards
+
+
+
+# Pour ajouter une bride x:
+# Définir un dico_bride_x comme ci-dessous puis ajoutez-le à dico_bride_std
+
+# dictionnaire pour la description des variables
+dico_var_geo = {'nbgouj':'Nombre de goujons de la jonction boulonnée (GOUJ_N_GOUJON)',
+ 'dint':'Diamètre intérieur de la bride (BRID_D_INT)',
+ 'dex1':'Diamétre extérieur de la conduite (TUBU_D_EXT)',
+ 'dex2':'Position (diamètre) du congé de la bride (BRID_D_CONGE)',
+ 'dex3':'Diamètre de l''épaulement de la bride au niveau de l''interface d''étanchéité (BRID_D_EPAUL)',
+ 'dtrou':'Position des alésages de la bride permettant l''introduction des goujons (BRID_P_ALESAG)',
+ 'dext':'Diamètre extérieur de la bride (BRID_D_EXT)',
+ 'dt':'Diamètre des alésages de la bride permettant l''introduction des goujons (BRID_D_ALESAG)',
+ 'drd':'Diamètre de la rondelle (GOUJ_D_RONDEL)',
+ 'dg':'Diamètre des goujons de la jonction boulonnée (GOUJ_D_GOUJON)',
+ 'dec':'Diamètre de l''écrou (GOUJ_D_ECROU)',
+ 'rcong':'Rayon du congé de la bride (BRID_R_CONGE)',
+ 'he':'Epaisseur de la rondelle (GOUJ_E_RONDEL)',
+ 'e':'Epaisseur de l''écrou (GOUJ_E_ECROU)',
+ 'hc1':'Hauteur de la bride (BRID_H)',
+ 'hcg1':'Hauteur de conduite (TUBU_H)',
+ 'hb':'Hauteur de l''épaulement de la bride au niveau de l''interface d''étanchéité (BRID_H_EPAUL)',
+ 'htrou':'Hauteur des alésages de la bride permettant l''introduction des goujons (BRID_H_ALESAG)',
+ 'pf':'Profondeur (épaisseur) des filets des goujons (GOUJ_E_FILET)',
+ 'j':'Epaisseur du joint au niveau de l''interface d''étanchéité (ETAN_E_JOINT)'}
+
+dico_var_msh = {'nrad':'Nombre d''éléments radiaux (NBR_RAD)',
+ 'ncir':'Nombre d''éléments circonférentiels (NBR_CIR)',
+ 'nver':'Nombre d''éléments verticaux (NBR_VER)',
+ 'nsect':'Nombre d''éléments de l''alésage (NBR_ALE)',
+ 'temps':'Temps d''analyse'}
+
+# dictionnaires des brides standards
+dico_bride_A = {'nbgouj': 4,
+ 'dint': 15.76,
+ 'dex1': 21.3,
+ 'dex2': 38.,
+ 'dex3': 48.,
+ 'dtrou': 67.,
+ 'dext': 95.,
+ 'dt': 14.,
+ 'drd': 25.,
+ 'dg': 12.,
+ 'dec': 18.,
+ 'rcong': 3.,
+ 'he': 12.,
+ 'e': 2.5,
+ 'hc1': 46.5,
+ 'hcg1': 20,
+ 'hb': 1.5,
+ 'htrou': 20.,
+ 'pf': 1.5,
+ 'j': 2}
+
+dico_bride_AA = {'nbgouj': 32,
+ 'dint': 336.5,
+ 'dex1': 355.6,
+ 'dex2': 395.,
+ 'dex3': 415.,
+ 'dtrou': 460.,
+ 'dext': 515.,
+ 'dt': 22.,
+ 'drd': 36.,
+ 'dg': 20.,
+ 'dec': 30.,
+ 'rcong': 5.,
+ 'he': 20.,
+ 'e': 3.,
+ 'hc1': 115.,
+ 'hcg1': 115./2.,
+ 'hb': 3.,
+ 'htrou': 47.,
+ 'pf': 2.2,
+ 'j': 2}
+
+dico_bride_B = {'nbgouj': 4,
+ 'dint': 26.64,
+ 'dex1': 33.4,
+ 'dex2': 53.,
+ 'dex3': 63.,
+ 'dtrou': 88.,
+ 'dext': 123.,
+ 'dt': 16.,
+ 'drd': 27.,
+ 'dg': 14.,
+ 'dec': 21.,
+ 'rcong': 4.,
+ 'he': 14.,
+ 'e': 2.5,
+ 'hc1': 59.,
+ 'hcg1': 59./2.,
+ 'hb': 1.5,
+ 'htrou': 27.5,
+ 'pf': 1.7,
+ 'j': 2}
+dico_bride_B1 = {'nbgouj': 4,
+ 'dint': 24.3,
+ 'dex1': 33.4,
+ 'dex2': 53.,
+ 'dex3': 63.,
+ 'dtrou': 88.,
+ 'dext': 123.,
+ 'dt': 16.,
+ 'drd': 27.,
+ 'dg': 14.,
+ 'dec': 21.,
+ 'rcong': 4.,
+ 'he': 14.,
+ 'e': 2.5,
+ 'hc1': 59.,
+ 'hcg1': 59./2.,
+ 'hb': 1.5,
+ 'htrou': 27.5,
+ 'pf': 1.7,
+ 'j': 2}
+dico_bride_C = {'nbgouj': 8,
+ 'dint': 52.48,
+ 'dex1': 60.3,
+ 'dex2': 84.,
+ 'dex3': 100.,
+ 'dtrou': 127.,
+ 'dext': 165.,
+ 'dt': 18.,
+ 'drd': 30,
+ 'dg': 16.,
+ 'dec': 24.,
+ 'rcong': 4.,
+ 'he': 16.,
+ 'e': 3,
+ 'hc1': 70.,
+ 'hcg1': 70./2.,
+ 'hb': 1.5,
+ 'htrou': 21.,
+ 'pf': 1.7,
+ 'j': 2}
+dico_bride_D = {'nbgouj': 8,
+ 'dint': 42.9,
+ 'dex1': 60.3,
+ 'dex2': 84.,
+ 'dex3': 100.,
+ 'dtrou': 127.,
+ 'dext': 165.,
+ 'dt': 18.,
+ 'drd': 30,
+ 'dg': 16.,
+ 'dec': 24.,
+ 'rcong': 5.,
+ 'he': 16.,
+ 'e': 3.,
+ 'hc1': 87.6,
+ 'hcg1': 87.6/2.,
+ 'hb': 1.5,
+ 'htrou': 38.5,
+ 'pf': 1.7,
+ 'j': 2}
+dico_bride_D1 = {'nbgouj': 8,
+ 'dint': 49.22,
+ 'dex1': 60.3,
+ 'dex2': 84.,
+ 'dex3': 100.,
+ 'dtrou': 127.,
+ 'dext': 165.,
+ 'dt': 18.,
+ 'drd': 30,
+ 'dg': 16.,
+ 'dec': 24.,
+ 'rcong': 5.,
+ 'he': 16.,
+ 'e': 3.,
+ 'hc1': 87.6,
+ 'hcg1': 87.6/2.,
+ 'hb': 1.5,
+ 'htrou': 38.5,
+ 'pf': 1.7,
+ 'j': 2}
+dico_bride_E = {'nbgouj': 8,
+ 'dint': 83.1,
+ 'dex1': 88.9,
+ 'dex2': 117.5,
+ 'dex3': 135.,
+ 'dtrou': 165.,
+ 'dext': 209.,
+ 'dt': 18.,
+ 'drd': 30.,
+ 'dg': 16.,
+ 'dec': 24.,
+ 'rcong': 5.,
+ 'he': 16.,
+ 'e': 3.,
+ 'hc1': 80.,
+ 'hcg1': 80./2.,
+ 'hb': 2.,
+ 'htrou': 27.,
+ 'pf': 1.7,
+ 'j': 2}
+dico_bride_F = {'nbgouj': 8,
+ 'dint': 73.66,
+ 'dex1': 88.9,
+ 'dex2': 117.5,
+ 'dex3': 135.,
+ 'dtrou': 165.,
+ 'dext': 209.,
+ 'dt': 18.,
+ 'drd': 30.,
+ 'dg': 16.,
+ 'dec': 24.,
+ 'rcong': 5.,
+ 'he': 16.,
+ 'e': 3.,
+ 'hc1': 89.,
+ 'hcg1': 89./2.,
+ 'hb': 2.,
+ 'htrou': 36.,
+ 'pf': 1.7,
+ 'j': 2}
+dico_bride_FF = {'nbgouj': 32,
+ 'dint': 396.99,
+ 'dex1': 406.4,
+ 'dex2': 440.,
+ 'dex3': 455.,
+ 'dtrou': 485.,
+ 'dext': 535.,
+ 'dt': 18.,
+ 'drd': 30.,
+ 'dg': 16.,
+ 'dec': 24.,
+ 'rcong': 5.,
+ 'he': 16.,
+ 'e': 3.,
+ 'hc1': 99.,
+ 'hcg1': 99./2.,
+ 'hb': 3.,
+ 'htrou': 40.,
+ 'pf': 1.7,
+ 'j': 2}
+dico_bride_G = {'nbgouj': 12,
+ 'dint': 66.7,
+ 'dex1': 88.9,
+ 'dex2': 117.5,
+ 'dex3': 135.,
+ 'dtrou': 165.,
+ 'dext': 209.,
+ 'dt': 18.,
+ 'drd': 30.,
+ 'dg': 16.,
+ 'dec': 24.,
+ 'rcong': 5.,
+ 'he': 16.,
+ 'e': 3.,
+ 'hc1': 98.,
+ 'hcg1': 98./2.,
+ 'hb': 2.,
+ 'htrou': 45.,
+ 'pf': 1.7,
+ 'j': 2}
+dico_bride_GG = {'nbgouj': 36,
+ 'dint': 381.,
+ 'dex1': 406.4,
+ 'dex2': 445.,
+ 'dex3': 460.,
+ 'dtrou': 495.,
+ 'dext': 545.,
+ 'dt': 22.,
+ 'drd': 36,
+ 'dg': 20.,
+ 'dec': 30.,
+ 'rcong': 5.,
+ 'he': 20.,
+ 'e': 3.,
+ 'hc1': 129.,
+ 'hcg1': 129./2.,
+ 'hb': 3.,
+ 'htrou': 63.,
+ 'pf': 2.2,
+ 'j': 2}
+dico_bride_H = {'nbgouj': 12,
+ 'dint': 108.2,
+ 'dex1': 114.3,
+ 'dex2': 146.,
+ 'dex3': 157.,
+ 'dtrou': 190.,
+ 'dext': 225.,
+ 'dt': 18.,
+ 'drd': 30.,
+ 'dg': 16.,
+ 'dec': 24.,
+ 'rcong': 5.,
+ 'he': 16.,
+ 'e': 3.,
+ 'hc1': 89.,
+ 'hcg1': 89./2.,
+ 'hb': 2.,
+ 'htrou': 33.,
+ 'pf': 1.7,
+ 'j': 2}
+dico_bride_H1 = {'nbgouj': 12,
+ 'dint': 102.6,
+ 'dex1': 114.3,
+ 'dex2': 146.,
+ 'dex3': 157.,
+ 'dtrou': 190.,
+ 'dext': 225.,
+ 'dt': 18.,
+ 'drd': 30.,
+ 'dg': 16.,
+ 'dec': 24.,
+ 'rcong': 5.,
+ 'he': 16.,
+ 'e': 3.,
+ 'hc1': 89.,
+ 'hcg1': 89./2.,
+ 'hb': 2.,
+ 'htrou': 33.,
+ 'pf': 1.7,
+ 'j': 2}
+dico_bride_I = {'nbgouj': 18,
+ 'dint': 92.1,
+ 'dex1': 114.3,
+ 'dex2': 146.,
+ 'dex3': 160.,
+ 'dtrou': 200.,
+ 'dext': 255.,
+ 'dt': 20.,
+ 'drd': 32.,
+ 'dg': 18.,
+ 'dec': 27.,
+ 'rcong': 5.,
+ 'he': 18.,
+ 'e': 3.,
+ 'hc1': 99.,
+ 'hcg1': 99./2.,
+ 'hb': 2.,
+ 'htrou': 43.,
+ 'pf': 2.2,
+ 'j': 2}
+dico_bride_J = {'nbgouj': 18,
+ 'dint': 87.34,
+ 'dex1': 114.3,
+ 'dex2': 146.,
+ 'dex3': 160.,
+ 'dtrou': 200.,
+ 'dext': 255.,
+ 'dt': 20.,
+ 'drd': 32.,
+ 'dg': 18.,
+ 'dec': 27.,
+ 'rcong': 5.,
+ 'he': 18.,
+ 'e': 3.,
+ 'hc1': 111.,
+ 'hcg1': 111./2.,
+ 'hb': 2.,
+ 'htrou': 55.,
+ 'pf': 2.2,
+ 'j': 2}
+dico_bride_J1 = {'nbgouj': 18,
+ 'dint': 87.3,
+ 'dex1': 114.3,
+ 'dex2': 146.,
+ 'dex3': 160.,
+ 'dtrou': 200.,
+ 'dext': 255.,
+ 'dt': 22.,
+ 'drd': 36.,
+ 'dg': 20.,
+ 'dec': 30.,
+ 'rcong': 5.,
+ 'he': 20.,
+ 'e': 3.,
+ 'hc1': 111.,
+ 'hcg1': 111./2.,
+ 'hb': 2.,
+ 'htrou': 55.,
+ 'pf': 2.2,
+ 'j': 2}
+dico_bride_K = {'nbgouj': 8,
+ 'dint': 161.5,
+ 'dex1': 168.3,
+ 'dex2': 192.,
+ 'dex3': 210.,
+ 'dtrou': 235.,
+ 'dext': 280.,
+ 'dt': 18.,
+ 'drd': 30.,
+ 'dg': 16.,
+ 'dec': 24.,
+ 'rcong': 5.,
+ 'he': 16.,
+ 'e': 3.,
+ 'hc1': 84.,
+ 'hcg1': 84./2.,
+ 'hb': 2.,
+ 'htrou': 28.,
+ 'pf': 1.7,
+ 'j': 2}
+dico_bride_L = {'nbgouj': 16,
+ 'dint': 154.8,
+ 'dex1': 168.3,
+ 'dex2': 206.,
+ 'dex3': 220.,
+ 'dtrou': 255.,
+ 'dext': 317.,
+ 'dt': 18.,
+ 'drd': 30.,
+ 'dg': 16.,
+ 'dec': 24.,
+ 'rcong': 5.,
+ 'he': 16.,
+ 'e': 3.,
+ 'hc1': 96.,
+ 'hcg1': 96./2.,
+ 'hb': 2.,
+ 'htrou': 40.,
+ 'pf': 1.7,
+ 'j': 2}
+dico_bride_L1 = {'nbgouj': 16,
+ 'dint': 154.8,
+ 'dex1': 168.3,
+ 'dex2': 206.,
+ 'dex3': 220.,
+ 'dtrou': 255.,
+ 'dext': 317.,
+ 'dt': 20.,
+ 'drd': 32.,
+ 'dg': 18.,
+ 'dec': 27.,
+ 'rcong': 5.,
+ 'he': 18.,
+ 'e': 3.,
+ 'hc1': 96.,
+ 'hcg1': 96./2.,
+ 'hb': 2.,
+ 'htrou': 40.,
+ 'pf': 2.2,
+ 'j': 2}
+dico_bride_M = {'nbgouj': 16,
+ 'dint': 139.7,
+ 'dex1': 168.3,
+ 'dex2': 206.,
+ 'dex3': 220.,
+ 'dtrou': 250.,
+ 'dext': 290.,
+ 'dt': 24.,
+ 'drd': 40.,
+ 'dg': 22.,
+ 'dec': 32.,
+ 'rcong': 5.,
+ 'he': 22.,
+ 'e': 3.,
+ 'hc1': 135.,
+ 'hcg1': 135./2.,
+ 'hb': 3.,
+ 'htrou': 62.,
+ 'pf': 2.2,
+ 'j': 2}
+dico_bride_N = {'nbgouj': 12,
+ 'dint': 131.9,
+ 'dex1': 168.3,
+ 'dex2': 220.,
+ 'dex3': 240.,
+ 'dtrou': 290.,
+ 'dext': 365.,
+ 'dt': 30.,
+ 'drd': 48.,
+ 'dg': 27.,
+ 'dec': 41.,
+ 'rcong': 5.,
+ 'he': 27.,
+ 'e': 4.,
+ 'hc1': 148.,
+ 'hcg1': 148./2.,
+ 'hb': 3.,
+ 'htrou': 75.,
+ 'pf': 2.6,
+ 'j': 2}
+dico_bride_O = {'nbgouj': 12,
+ 'dint': 211.58,
+ 'dex1': 219.1,
+ 'dex2': 248.,
+ 'dex3': 260.,
+ 'dtrou': 292.,
+ 'dext': 335.,
+ 'dt': 20.,
+ 'drd': 32.,
+ 'dg': 18.,
+ 'dec': 27.,
+ 'rcong': 5.,
+ 'he': 18.,
+ 'e': 3.,
+ 'hc1': 87.,
+ 'hcg1': 87./2.,
+ 'hb': 3.,
+ 'htrou': 30.,
+ 'pf': 2.2,
+ 'j': 2}
+dico_bride_P = {'nbgouj': 16,
+ 'dint': 202.74,
+ 'dex1': 219.1,
+ 'dex2': 248.,
+ 'dex3': 260.,
+ 'dtrou': 292.,
+ 'dext': 335.,
+ 'dt': 20.,
+ 'drd': 32,
+ 'dg': 18.,
+ 'dec': 27.,
+ 'rcong': 5.,
+ 'he': 18.,
+ 'e': 3.,
+ 'hc1': 99.,
+ 'hcg1': 99./2.,
+ 'hb': 3.,
+ 'htrou': 42.,
+ 'pf': 2.2,
+ 'j': 2}
+dico_bride_S = {'nbgouj': 16,
+ 'dint': 264.62,
+ 'dex1': 273.,
+ 'dex2': 305.,
+ 'dex3': 315.,
+ 'dtrou': 350.,
+ 'dext': 390.,
+ 'dt': 18.,
+ 'drd': 30.,
+ 'dg': 16.,
+ 'dec': 24.,
+ 'rcong': 5.,
+ 'he': 16.,
+ 'e': 3.,
+ 'hc1': 89.,
+ 'hcg1': 89./2.,
+ 'hb': 3.,
+ 'htrou': 32.,
+ 'pf': 1.7,
+ 'j': 2}
+dico_bride_T = {'nbgouj': 16,
+ 'dint': 254.56,
+ 'dex1': 273.,
+ 'dex2': 320.,
+ 'dex3': 340.,
+ 'dtrou': 385.,
+ 'dext': 444.,
+ 'dt': 27.,
+ 'drd': 45.,
+ 'dg': 24.,
+ 'dec': 36.,
+ 'rcong': 5.,
+ 'he': 24.,
+ 'e': 4.,
+ 'hc1': 128.,
+ 'hcg1': 128./2.,
+ 'hb': 3.,
+ 'htrou': 55.,
+ 'pf': 2.6,
+ 'j': 2}
+dico_bride_W = {'nbgouj': 28,
+ 'dint': 314.76,
+ 'dex1': 323.9,
+ 'dex2': 360.,
+ 'dex3': 385.,
+ 'dtrou': 415.,
+ 'dext': 460.,
+ 'dt': 18.,
+ 'drd': 30.,
+ 'dg': 16.,
+ 'dec': 24.,
+ 'rcong': 5.,
+ 'he': 16.,
+ 'e': 3.,
+ 'hc1': 96.,
+ 'hcg1': 96./2.,
+ 'hb': 3.,
+ 'htrou': 37.,
+ 'pf': 1.7,
+ 'j': 2}
+
+
+# dictionnaire pour faire le lien entre l'option de bride et les valeurs normalisées
+dico_bride_std = {'AA':dico_bride_AA,
+ 'A':dico_bride_A,
+ 'B':dico_bride_B,
+ 'B1':dico_bride_B1,
+ 'C':dico_bride_C,
+ 'D':dico_bride_D,
+ 'D1':dico_bride_D1,
+ 'E':dico_bride_E,
+ 'F':dico_bride_F,
+ 'FF':dico_bride_FF,
+ 'G':dico_bride_G,
+ 'GG':dico_bride_GG,
+ 'H':dico_bride_H,
+ 'H1':dico_bride_H1,
+ 'I':dico_bride_I,
+ 'J':dico_bride_J,
+ 'J1':dico_bride_J1,
+ 'K':dico_bride_K,
+ 'L':dico_bride_L,
+ 'L1':dico_bride_L1,
+ 'M':dico_bride_M,
+ 'N':dico_bride_N,
+ 'O':dico_bride_O,
+ 'P':dico_bride_P,
+ 'S':dico_bride_S,
+ 'T':dico_bride_T,
+ 'W':dico_bride_W}
--- /dev/null
+#@ MODIF macr_cabri_mail_ops Intranet DATE 28/01/2008 AUTEUR PELLET J.PELLET
+# -*- coding: iso-8859-1 -*-
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2008 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# ======================================================================
+
+import os
+
+def macr_cabri_mail_ops(self,EXEC_MAILLAGE,RAFF_MAILLAGE,VERI_MAIL,GEOM_BRID,
+ IMPRESSION,**args):
+ """
+ Ecriture de la macro MACR_CABRI_MAIL
+ """
+ import types
+ from Accas import _F
+
+ ier=0
+
+ # On importe les definitions des commandes a utiliser dans la macro
+ # Le nom de la variable doit etre obligatoirement le nom de la commande
+ EXEC_LOGICIEL = self.get_cmd('EXEC_LOGICIEL')
+ LIRE_MAILLAGE = self.get_cmd('LIRE_MAILLAGE')
+ PRE_GIBI = self.get_cmd('PRE_GIBI')
+ IMPR_RESU = self.get_cmd('IMPR_RESU')
+
+ # La macro compte pour 1 dans la numerotation des commandes
+ self.set_icmd(1)
+
+ # Le concept sortant (de type mail) est nommé 'nomres' dans
+ # le contexte de la macro
+
+ self.DeclareOut('nomres',self.sd)
+
+ # Chemin de Gibi
+ import aster
+ loc_gibi=aster.repout()
+ gibi2000=loc_gibi+'gibi'
+
+ # Unité pour le fichier maillage produit (format GIBI)
+ unite_mgib = EXEC_MAILLAGE['UNITE_MGIB']
+ # Unité pour le fichier de commandes GIBI
+ unite_datg = EXEC_MAILLAGE['UNITE_DATG']
+ # Niveau gibi
+ niveau_gibi = EXEC_MAILLAGE['NIVE_GIBI']
+
+ # Verif mail
+ ver_apla = VERI_MAIL['APLAT']
+ ver_veri = VERI_MAIL['VERIF']
+
+ # Impression
+ if IMPRESSION['UNITE']!=None:
+ imp_unit = IMPRESSION['UNITE']
+ imp_unitF = 1
+ else:
+ imp_unitF = 0
+ if IMPRESSION['FORMAT']!=None:
+ imp_form = IMPRESSION['FORMAT']
+ imp_formF = 1
+ else:
+ imp_formF = 0
+# if IMPRESSION['FICHIER']!=None:
+# imp_fich = IMPRESSION['FICHIER']
+# imp_fichF = 1
+# else:
+# imp_fichF = 0
+
+ # Maillage
+ nrad = RAFF_MAILLAGE['NB_RADIAL']
+ ncir = RAFF_MAILLAGE['NB_CIRCONF']
+ nver = RAFF_MAILLAGE['NB_VERTICAL']
+ nsect = RAFF_MAILLAGE['NB_ALESAGE']
+ temps = 5.
+
+ maillage = {'nrad': nrad,
+ 'ncir': ncir,
+ 'nver': nver,
+ 'nsect': nsect,
+ 'temps' : temps,}
+
+ # Création du fichier datg
+
+ if GEOM_BRID['NORME'] == 'OUI':
+ # Bride standard
+ type_bride = GEOM_BRID['TYPE']
+ ### Ecriture du fichier GIBI principal (dgib) - Bride STANDARD
+ write_file_dgib_STD(unite_mgib,unite_datg,maillage,type_bride)
+ else:
+ # Bride quelconque
+ geo_bride_qqe = {'nbgouj': GEOM_BRID['GOUJ_N_GOUJON'],
+ 'dint': GEOM_BRID['BRID_D_INT'],
+ 'dex1': GEOM_BRID['TUBU_D_EXT'],
+ 'dex2': GEOM_BRID['BRID_D_CONGE'],
+ 'dex3': GEOM_BRID['BRID_D_EPAUL'],
+ 'dtrou': GEOM_BRID['BRID_P_ALESAG'],
+ 'dext': GEOM_BRID['BRID_D_EXT'],
+ 'dt': GEOM_BRID['BRID_D_ALESAG'],
+ 'drd': GEOM_BRID['GOUJ_D_RONDEL'],
+ 'dg': GEOM_BRID['GOUJ_D_GOUJON'],
+ 'dec': GEOM_BRID['GOUJ_D_ECROU'],
+ 'rcong': GEOM_BRID['BRID_R_CONGE'],
+ 'he': GEOM_BRID['GOUJ_E_ECROU'],
+ 'e': GEOM_BRID['GOUJ_E_RONDEL'],
+ 'hc1': GEOM_BRID['BRID_H'],
+ 'hcg1': GEOM_BRID['TUBU_H'],
+ 'hb': GEOM_BRID['BRID_H_EPAUL'],
+ 'htrou': GEOM_BRID['BRID_H_ALESAG'],
+ 'pf': GEOM_BRID['GOUJ_E_FILET'],
+ 'j': GEOM_BRID['ETAN_E_JOINT']}
+ ### Ecriture du fichier GIBI principal (dgib) - Bride QUELCONQUE
+ write_file_dgib_QQE(unite_mgib,unite_datg,maillage,geo_bride_qqe)
+
+ fichier_datg = 'fort.'+str(unite_datg)
+ fichier_mgib = 'fort.'+str(unite_mgib)
+
+ # Lancement de GIBI
+ EXEC_LOGICIEL(
+ LOGICIEL=gibi2000,
+ ARGUMENT=(fichier_datg, fichier_mgib),
+ )
+ # Lecture du maillage GIBI dans ASTER
+ PRE_GIBI(
+ UNITE_GIBI = unite_mgib,
+ )
+
+ nomres = LIRE_MAILLAGE(VERI_MAIL=_F(APLAT = ver_apla,
+ VERIF = ver_veri ),)
+
+# if (imp_fichF == 1):
+# print imp_fich
+ if (imp_formF == 1):
+ print imp_form
+ if (imp_unitF == 1):
+ print imp_unit
+ # Impression du fichier maillage
+ if (imp_formF == 1):
+ if (imp_form == 'CASTEM'):
+ imp_ngib = IMPRESSION['NIVE_GIBI']
+ IMPR_RESU( RESU = _F(MAILLAGE=nomres, ),
+ FORMAT = 'CASTEM', NIVE_GIBI = imp_ngib )
+ if (imp_form == 'IDEAS'):
+ imp_nver = IMPRESSION['VERSION']
+ IMPR_RESU(RESU = _F(MAILLAGE=nomres,),
+ FORMAT = 'IDEAS', VERSION = imp_nver )
+
+ return ier
+
+
+##############################################################################################
+# Liste des fonctions
+##############################################################################################
+
+#############
+## EXTERNES (appelables depuis l'extérieur)
+#############
+
+### Ecriture du fichier GIBI principal (dgib) - Bride STANDARD
+# null = write_file_dgib_STD(unite_mgib,unite_datg,msh_bride,geo_bride)
+
+### Ecriture du fichier GIBI principal (dgib) - Bride QUELCONQUE
+# null = write_file_dgib_QQE(unite_mgib,unite_datg,msh_bride,geo_bride)
+
+### Imprime tout le catalogue des brides standards disponibles dans un fichier texte
+# null = print_bride_std(nom_fichier)
+
+### Catalogue complet des brides standards disponibles
+# txt = bride_std()
+
+#############
+## INTERNES (réservées au travail interne)
+#############
+
+### Génération du nom du fichier pour le fichier maillage résultant (format GIBI)
+# NomFichier(txt) = name_file_mgib(unite_mgib):
+
+### Génération du nom du fichier pour le fichier générant le maillage (commandes GIBI)
+# NomFichier(txt) = name_file_datg(unite_datg):
+
+### Récupère un fichier texte DATG
+# Txt = text_datg(fichier_datg):
+
+### Génération du texte pour les variables
+# Txt = para_text(dico_var,var):
+
+
+
+#=============================================================================================
+# Importation des modules Python
+#=============================================================================================
+
+from Intranet.macr_cabri_mail_dat import dico_var_geo,dico_var_msh,dico_bride_std
+
+#=============================================================================================
+# Fonctions principales
+#=============================================================================================
+# Ecriture du fichier GIBI principal (dgib) - Bride STANDARD
+def write_file_dgib_STD(unite_mgib,unite_datg,msh_bride,geo_bride):
+
+ # Nom du fichier maillage produit par GIBI
+ nomFichierMGIB = name_file_mgib(unite_mgib)
+
+ # Nom du fichier de commandes pour GIBI
+ nomFichierDATG = name_file_datg(unite_datg)
+
+ # Ouverture du fichier d'entrée de commandes
+ fdgib=open(nomFichierDATG,'w')
+
+ # En-tete
+ text = "**************************************************************\n"
+ text = text + "* Fichier GIBI pour le maillage d'une bride \n"
+ text = text + "**************************************************************\n"
+ text = text + "\n"
+ text = text + "* Ce fichier a été généré automatiquement par la macro ASTER MACR_CABRI_MAIL \n"
+ text = text + "* Ne pas modifier\n"
+ text = text + "\n"
+ text = text + "**************************************************************\n"
+ text = text + "* Type bride: Bride standard \n"
+ text = text + "**************************************************************\n"
+ text = text + "titre '"+"Bride standard"+"';\n"
+ text = text + "** Type bride standard: "+geo_bride+"\n"
+
+ text = text + "\n"
+ text = text + "nomfich = CHAINE \n"
+ if len(nomFichierMGIB)>72:
+ raise Exception, 'Nom de fichier trop long (limité à 72 caractères ' \
+ 'pour GIBI) :\n',nomFichierMGIB
+ elif len(nomFichierMGIB)<=69:
+ text = text + "'"+nomFichierMGIB+"';\n"
+ else:
+ text = text + "'"+nomFichierMGIB[:69]+"'\n" \
+ + "'"+nomFichierMGIB[69:]+"';\n"
+ text = text + "opti dime 3 elem cub8 SAUV FORM nomfich;\n"
+ text = text + "dens 1;\n"
+ text = text + "\n"
+ fdgib.write(text)
+
+ # Procédures internes supplémentaires
+ text = "**************************************************************\n"
+ text = text + "* Procédures supplémentaires \n"
+ text = text + "**************************************************************\n"
+ text = text + text_datg_pro()
+ fdgib.write(text)
+
+ # Début de procédure de création du maillage
+ text = "**************************************************************\n"
+ text = text + "**************************************************************\n"
+ text = text + "********* Début de procédure de création du maillage *********\n"
+ text = text + "**************************************************************\n"
+ text = text + "**************************************************************\n"
+ text = text + "\n debproc constru;\n"
+ fdgib.write(text)
+
+ # Paramètres géométriques
+ car_bride = dico_bride_std[geo_bride]
+ text = "**************************************************************\n"
+ text = text + "* Paramètres géométriques \n"
+ text = text + "**************************************************************\n"
+ text = text + para_text(dico_var_geo,car_bride)
+ fdgib.write(text)
+
+ # Paramètres du maillage
+ text = "**************************************************************\n"
+ text = text + "* Paramètres physiques \n"
+ text = text + "**************************************************************\n"
+ text = text + para_text(dico_var_msh,msh_bride)
+ fdgib.write(text)
+
+ # Algorithme du maillage
+ text = "**************************************************************\n"
+ text = text + "* Algorithme de maillage \n"
+ text = text + "**************************************************************\n"
+ text = text + text_datg_std()
+ fdgib.write(text)
+
+ # Fermeture du fichier maillage
+ fdgib.close()
+
+
+# Ecriture du fichier GIBI principal (dgib) - Bride QUELCONQUE
+def write_file_dgib_QQE(unite_mgib,unite_datg,msh_bride,geo_bride):
+
+ # Nom du fichier maillage produit par GIBI
+ nomFichierMGIB = name_file_mgib(unite_mgib)
+
+ # Nom du fichier de commandes pour GIBI
+ nomFichierDATG = name_file_datg(unite_datg)
+
+ # Ouverture du fichier d'entree de commandes
+ fdgib=open(nomFichierDATG,'w')
+
+ # En-tete
+ text = "**************************************************************\n"
+ text = text + "* Fichier GIBI pour le maillage d'une bride \n"
+ text = text + "**************************************************************\n"
+ text = text + "\n"
+ text = text + "* Ce fichier a été généré automatiquement par la macro ASTER MACR_CABRI_MAIL \n"
+ text = text + "* Ne pas modifier\n"
+ text = text + "\n"
+ text = text + "**************************************************************\n"
+ text = text + "* Type bride: Bride quelconque\n"
+ text = text + "**************************************************************\n"
+ text = text + "titre '"+"Bride Quelconque"+"';\n"
+ text = text + "\n"
+ text = text + "nomfich = CHAINE \n"
+ if len(nomFichierMGIB)>72:
+ raise Exception, 'Nom de fichier trop long (limité à 72 caractères ' \
+ 'pour GIBI) :\n',nomFichierMGIB
+ elif len(nomFichierMGIB)<=69:
+ text = text + "'"+nomFichierMGIB+"';\n"
+ else:
+ text = text + "'"+nomFichierMGIB[:69]+"'\n" \
+ + "'"+nomFichierMGIB[69:]+"';\n"
+ text = text + "opti dime 3 elem cub8 SAUV FORM nomfich;\n"
+ text = text + "dens 1;\n"
+ text = text + "\n"
+ fdgib.write(text)
+
+ # Procédures internes supplémentaires
+ text = "**************************************************************\n"
+ text = text + "* Procédures supplémentaires \n"
+ text = text + "**************************************************************\n"
+ text = text + text_datg_pro()
+ fdgib.write(text)
+
+ # Début de procédure de création du maillage
+ text = "**************************************************************\n"
+ text = text + "**************************************************************\n"
+ text = text + "********* Début de procédure de création du maillage *********\n"
+ text = text + "**************************************************************\n"
+ text = text + "**************************************************************\n"
+ text = text + "\n debproc constru;\n"
+ fdgib.write(text)
+
+ # Paramètres géométriques
+ text = "**************************************************************\n"
+ text = text + "* Paramètres géométriques \n"
+ text = text + "**************************************************************\n"
+ text = text + para_text(dico_var_geo,geo_bride)
+ fdgib.write(text)
+
+ # Paramètres du maillage
+ text = "**************************************************************\n"
+ text = text + "* Paramètres physiques \n"
+ text = text + "**************************************************************\n"
+ text = text + para_text(dico_var_msh,msh_bride)
+ fdgib.write(text)
+
+ # Algorithme du maillage
+ text = "**************************************************************\n"
+ text = text + "* Algorithme de maillage \n"
+ text = text + "**************************************************************\n"
+ text = text + text_datg_qqe()
+ fdgib.write(text)
+
+ # Fermeture du fichier maillage
+ fdgib.close()
+
+# Génération du nom du fichier pour le fichier maillage résultant (format GIBI)
+def name_file_mgib(unite_mgib):
+ cur_dir = os.getcwd()
+ nomFichier = cur_dir+'/fort.'+str(unite_mgib)
+ return nomFichier
+
+
+# Génération du nom du fichier pour le fichier générant le maillage (commandes GIBI)
+def name_file_datg(unite_datg):
+ cur_dir = os.getcwd()
+ nomFichier = cur_dir+'/fort.'+str(unite_datg)
+ return nomFichier
+
+# Récupère un fichier texte DATG: texte GIBI pour procédures
+def text_datg_pro():
+ import aster
+ loc_datg = aster.repdex()
+ datg_bridePro = loc_datg+"macr_cabri_mail_proc.datg"
+ fproc=open(datg_bridePro,'r')
+ procText = fproc.read()
+ fproc.close()
+
+ return procText
+
+# Récupère un fichier texte DATG: texte GIBI pour bride quelconque
+def text_datg_qqe():
+ import aster
+ loc_datg = aster.repdex()
+ datg_brideQqe = loc_datg+"macr_cabri_mail_qqe.datg"
+ fproc=open(datg_brideQqe,'r')
+ procText = fproc.read()
+ fproc.close()
+
+ return procText
+
+# Récupère un fichier texte DATG: texte GIBI pour bride standard
+def text_datg_std():
+ import aster
+ loc_datg = aster.repdex()
+ datg_brideStd = loc_datg+"macr_cabri_mail_std.datg"
+ fproc=open(datg_brideStd,'r')
+ procText = fproc.read()
+ fproc.close()
+
+ return procText
+
+# Génération du texte pour les variables
+def para_text(dico_var,var):
+ text = '\n'
+ for nom_var in var.keys():
+ text = text+"* "+dico_var[nom_var]+"\n"
+ text = text+nom_var+" = "+`var[nom_var]`+";\n"
+ return text
+
+#=============================================================================================
+# Accès au catalogue des brides standards
+# (les brides standards sont décrites dans le fichier Data_Brides.py)
+#=============================================================================================
+
+
+
+# Imprime tout le catalogue des brides standards disponibles dans un fichier texte
+def print_bride_std(nom_fichier):
+ text = bride_std()
+ # Ouverture du fichier
+ finfo=open(nom_fichier,'w')
+ # Ecriture des infos
+ finfo.write(text)
+ # Fermeture du fichier
+ finfo.close()
+
+# Catalogue complet des brides standards disponibles
+def bride_std():
+ # Ligne d'info
+ text = "Liste des brides standards avec leurs dimensions\n"
+ # Première ligne
+ text = text+"\t"
+ for nom_variable in dico_var_geo.keys():
+ text = text + nom_variable+"\t\t"
+ text = text + "\n"
+ # Lignes suivantes
+ for nom_bride in dico_bride_std.keys():
+ bride = dico_bride_std[nom_bride]
+ text = text + nom_bride + '\t'
+ for nom_var in dico_var_geo.keys():
+ chaine = "%f" % (bride[nom_var])
+ text = text+chaine+"\t"
+ text = text + "\n"
+ return text
--- /dev/null
+#@ MODIF macro_bascule_schema_ops Intranet DATE 17/12/2007 AUTEUR GREFFET N.GREFFET
+# -*- coding: iso-8859-1 -*-
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# ======================================================================
+
+def macro_bascule_schema_ops (self,MODE,MATE,CARA,
+ INCR_I,INCR_E,
+ SCH_TEMPS_I,SCH_TEMPS_E,SCH_TEMPS_EQ,
+ C_INCR_I,C_INCR_E,
+ EXC_T,NEWT,INIT,TP_BAS,SCH_INI,EQUILIBRAGE,**args):
+ ier=0
+ import copy
+ import aster
+ import string
+ import types
+ from Accas import _F
+ from Noyau.N_utils import AsType
+ from Utilitai.Utmess import UTMESS
+ # On importe les definitions des commandes a utiliser dans la macro
+ DYNA_NON_LINE =self.get_cmd('DYNA_NON_LINE')
+ CREA_CHAMP =self.get_cmd('CREA_CHAMP')
+ DEFI_LIST_REEL =self.get_cmd('DEFI_LIST_REEL')
+ # La macro compte pour 1 dans la numerotation des commandes
+ self.set_icmd(1)
+ # Le concept sortant (de type evol_noli) est nommé
+ # 'nomres' dans le contexte de la macro
+ self.DeclareOut('nomres',self.sd)
+ #
+ #
+ dexct=[]
+ for j in EXC_T :
+ dexct.append(j.cree_dict_valeurs(j.mc_liste))
+ for i in dexct[-1].keys():
+ if dexct[-1][i]==None : del dexct[-1][i]
+ #
+ dComp_incri=[]
+ for j in C_INCR_I :
+ dComp_incri.append(j.cree_dict_valeurs(j.mc_liste))
+ for i in dComp_incri[-1].keys():
+ if dComp_incri[-1][i]==None : del dComp_incri[-1][i]
+ #
+ dComp_incre=[]
+ for j in C_INCR_E :
+ dComp_incre.append(j.cree_dict_valeurs(j.mc_liste))
+ for i in dComp_incre[-1].keys():
+ if dComp_incre[-1][i]==None : del dComp_incre[-1][i]
+ #
+ dincri=[]
+ for j in INCR_I :
+ dincri.append(j.cree_dict_valeurs(j.mc_liste))
+ for i in dincri[-1].keys():
+ if dincri[-1][i]==None : del dincri[-1][i]
+ #
+ dincre=[]
+ for j in INCR_E :
+ dincre.append(j.cree_dict_valeurs(j.mc_liste))
+ for i in dincre[-1].keys():
+ if dincre[-1][i]==None : del dincre[-1][i]
+ #
+ dschi=[]
+ for j in SCH_TEMPS_I :
+ dschi.append(j.cree_dict_valeurs(j.mc_liste))
+ for i in dschi[-1].keys():
+ if dschi[-1][i]==None : del dschi[-1][i]
+ #
+ dsche=[]
+ for j in SCH_TEMPS_I :
+ dsche.append(j.cree_dict_valeurs(j.mc_liste))
+ for i in dsche[-1].keys():
+ if dsche[-1][i]==None : del dsche[-1][i]
+ #
+ dscheq=[]
+ for j in SCH_TEMPS_I :
+ dscheq.append(j.cree_dict_valeurs(j.mc_liste))
+ for i in dscheq[-1].keys():
+ if dscheq[-1][i]==None : del dscheq[-1][i]
+ #
+ dnew=[]
+ for j in NEWT :
+ dnew.append(j.cree_dict_valeurs(j.mc_liste))
+ for i in dnew[-1].keys():
+ if dnew[-1][i]==None : del dnew[-1][i]
+ #
+ dini=[]
+ for j in INIT :
+ dini.append(j.cree_dict_valeurs(j.mc_liste))
+ for i in dini[-1].keys():
+ if dini[-1][i]==None : del dini[-1][i]
+ #
+ dequi=[]
+ for j in EQUILIBRAGE :
+ dequi.append(j.cree_dict_valeurs(j.mc_liste))
+ for i in dequi[-1].keys():
+ if dequi[-1][i]==None : del dequi[-1][i]
+ #
+ __L0 = TP_BAS['VALE']
+ dincri1=copy.copy(dincri)
+ dincri1[-1]['INST_FIN']= __L0[0]
+ #
+ __dtimp=dequi[-1]['DT_IMP']
+ __dtexp=dequi[-1]['DT_EXP']
+ #
+ __dim=(-1)*len(dComp_incri)
+ __lis=range(0,__dim,-1)
+ __non_lin='NON'
+ for i in __lis :
+ if (dComp_incri[i]['RELATION']!='DIS_CHOC' and dComp_incri[i]['RELATION']!='ELAS'):
+ __non_lin='OUI'
+ break
+ #
+ #
+ if SCH_INI=='IMPLICITE':
+ dincri1=copy.copy(dincri)
+ dincri1[-1]['INST_FIN']= __L0[0]
+ nomres=DYNA_NON_LINE(MODELE =MODE,
+ CHAM_MATER =MATE,
+ CARA_ELEM =CARA,
+ EXCIT =dexct,
+ COMP_INCR =dComp_incri,
+ INCREMENT =dincri1,
+ SCHEMA_TEMPS=dschi,
+ NEWTON=dnew,
+ ETAT_INIT=dini, )
+ __prc = 'IMPLICITE'
+ #
+ if SCH_INI=='EXPLICITE':
+ dincre1=copy.copy(dincre)
+ dincre1[-1]['INST_FIN']= __L0[0]
+ nomres=DYNA_NON_LINE(MODELE =MODE,
+ CHAM_MATER =MATE,
+ MASS_DIAG='OUI',
+ CARA_ELEM =CARA,
+ EXCIT =dexct,
+ COMP_INCR =dComp_incre,
+ INCREMENT =dincre1,
+ SCHEMA_TEMPS=dsche,
+ NEWTON=dnew,
+ ETAT_INIT=dini, )
+
+ __prc = 'EXPLICITE'
+
+ #
+ __nb=len(__L0)
+ j = 1
+ while 1:
+ #
+ if __prc=='IMPLICITE' :
+ __Ue=CREA_CHAMP(OPERATION='EXTR', PRECISION=1.E-7, RESULTAT=nomres,
+ TYPE_CHAM='NOEU_DEPL_R', NOM_CHAM='DEPL', INST=__L0[j-1],)
+ #
+ __Ve=CREA_CHAMP(OPERATION='EXTR', PRECISION=1.E-7, RESULTAT=nomres,
+ TYPE_CHAM='NOEU_DEPL_R', NOM_CHAM='VITE', INST=__L0[j-1],)
+ #
+ __Ae=CREA_CHAMP(OPERATION='EXTR', PRECISION=1.E-7, RESULTAT=nomres,
+ TYPE_CHAM='NOEU_DEPL_R', NOM_CHAM='ACCE', INST=__L0[j-1],)
+ #
+ __Ce=CREA_CHAMP(OPERATION='EXTR', PRECISION=1.E-7, RESULTAT=nomres,
+ TYPE_CHAM='ELGA_SIEF_R', NOM_CHAM='SIEF_ELGA', INST=__L0[j-1],)
+ #
+ __Vae=CREA_CHAMP(OPERATION='EXTR', PRECISION=1.E-7, RESULTAT=nomres,
+ TYPE_CHAM='ELGA_VARI_R', NOM_CHAM='VARI_ELGA', INST=__L0[j-1],)
+ dincre1=copy.copy(dincre)
+ dincre1[-1]['INST_FIN'] = __L0[j]
+ dincre1[-1]['INST_INIT']= __L0[j-1]
+ nomres=DYNA_NON_LINE(reuse=nomres,
+ MODELE=MODE,
+ MASS_DIAG='OUI',
+ CHAM_MATER=MATE,
+ CARA_ELEM=CARA,
+ EXCIT=dexct,
+ ETAT_INIT=_F(DEPL=__Ue, VITE=__Ve, ACCE=__Ae,
+ SIGM=__Ce, VARI=__Vae,),
+ COMP_INCR=dComp_incre,
+ INCREMENT=dincre1,
+ SCHEMA_TEMPS=dsche,
+ NEWTON=dnew,)
+ #
+ __prc='EXPLICITE'
+ j = j + 1
+ bool = (j!=(__nb))
+ if (not bool): break
+ #
+ if __prc=='EXPLICITE' :
+ # calcul sur la zone de recouvrement
+ print('calcul d''une solution explicite stabilisée')
+ __U1=CREA_CHAMP(OPERATION='EXTR', PRECISION=1.E-7, RESULTAT=nomres,
+ TYPE_CHAM='NOEU_DEPL_R', NOM_CHAM='DEPL', INST=__L0[j-1],)
+ #
+ __V1=CREA_CHAMP(OPERATION='EXTR', PRECISION=1.E-7, RESULTAT=nomres,
+ TYPE_CHAM='NOEU_DEPL_R', NOM_CHAM='VITE', INST=__L0[j-1],)
+ #
+ __A1=CREA_CHAMP(OPERATION='EXTR', PRECISION=1.E-7, RESULTAT=nomres,
+ TYPE_CHAM='NOEU_DEPL_R', NOM_CHAM='ACCE', INST=__L0[j-1],)
+ #
+ __C1=CREA_CHAMP(OPERATION='EXTR', PRECISION=1.E-7, RESULTAT=nomres,
+ TYPE_CHAM='ELGA_SIEF_R', NOM_CHAM='SIEF_ELGA', INST=__L0[j-1],)
+ #
+ __Va1=CREA_CHAMP(OPERATION='EXTR', PRECISION=1.E-7, RESULTAT=nomres,
+ TYPE_CHAM='ELGA_VARI_R', NOM_CHAM='VARI_ELGA', INST=__L0[j-1],)
+ #
+ __lrec=DEFI_LIST_REEL(DEBUT=__L0[j-1],
+ INTERVALLE=_F(JUSQU_A=(__L0[j-1])+(10*(__dtexp)),
+ PAS=__dtexp),)
+ __u_rec=DYNA_NON_LINE(MODELE=MODE,
+ CHAM_MATER=MATE,
+ MASS_DIAG='OUI',
+ CARA_ELEM=CARA,
+ EXCIT=dexct,
+ ETAT_INIT=_F(DEPL=__U1, VITE=__V1, ACCE=__A1,
+ SIGM=__C1, VARI=__Va1,),
+ COMP_INCR=dComp_incre,
+ INCREMENT=_F(LIST_INST=__lrec,
+ INST_INIT=__L0[j-1],
+ INST_FIN=(__L0[j-1])+(10*(__dtexp))),
+ SCHEMA_TEMPS=dscheq,
+ NEWTON=dnew,)
+ #
+ __Ui =CREA_CHAMP(OPERATION='EXTR', PRECISION=1.E-7, RESULTAT=__u_rec,
+ TYPE_CHAM='NOEU_DEPL_R', NOM_CHAM='DEPL', INST=(__L0[j-1])+(10*(__dtexp)),)
+ #
+ __Vi =CREA_CHAMP(OPERATION='EXTR', PRECISION=1.E-7, RESULTAT=__u_rec,
+ TYPE_CHAM='NOEU_DEPL_R', NOM_CHAM='VITE', INST=(__L0[j-1])+(10*(__dtexp)),)
+ #
+ __Ai =CREA_CHAMP(OPERATION='EXTR', PRECISION=1.E-7, RESULTAT=__u_rec,
+ TYPE_CHAM='NOEU_DEPL_R', NOM_CHAM='ACCE', INST=(__L0[j-1])+(10*(__dtexp)),)
+ #
+ # equilibrage du premier pas implicite
+ print('equilibrage du pas explicite stabilisée')
+ dincri1=copy.copy(dincri)
+ dincri1[-1]['INST_FIN'] = ((__L0[j-1])+(10*(__dtexp)))
+ dincri1[-1]['INST_INIT']= (__L0[j-1])
+ nomres=DYNA_NON_LINE(reuse=nomres,
+ MODELE=MODE,
+ CHAM_MATER=MATE,
+ CARA_ELEM=CARA,
+ EXCIT=dexct,
+ ETAT_INIT=_F(DEPL=__Ui, VITE=__Vi, ACCE=__Ai,
+ SIGM=__C1, VARI=__Va1,),
+ COMP_INCR=dComp_incri,
+ INCREMENT=dincri1,
+ SCHEMA_TEMPS=dschi,
+ NEWTON=dnew,)
+ #
+ __Ui =CREA_CHAMP(OPERATION='EXTR', PRECISION=1.E-7, RESULTAT=nomres,
+ TYPE_CHAM='NOEU_DEPL_R', NOM_CHAM='DEPL', INST=(__L0[j-1])+(10*(__dtexp)),)
+ #
+ __Vi =CREA_CHAMP(OPERATION='EXTR', PRECISION=1.E-7, RESULTAT=nomres,
+ TYPE_CHAM='NOEU_DEPL_R', NOM_CHAM='VITE', INST=(__L0[j-1])+(10*(__dtexp)),)
+ #
+ __Ai =CREA_CHAMP(OPERATION='EXTR', PRECISION=1.E-7, RESULTAT=nomres,
+ TYPE_CHAM='NOEU_DEPL_R', NOM_CHAM='ACCE', INST=(__L0[j-1])+(10*(__dtexp)),)
+ #
+ __Ci =CREA_CHAMP(OPERATION='EXTR', PRECISION=1.E-7, RESULTAT=nomres,
+ TYPE_CHAM='ELGA_SIEF_R', NOM_CHAM='SIEF_ELGA', INST=(__L0[j-1])+(10*(__dtexp)),)
+ #
+ __Vai=CREA_CHAMP(OPERATION='EXTR', PRECISION=1.E-7, RESULTAT=nomres,
+ TYPE_CHAM='ELGA_VARI_R', NOM_CHAM='VARI_ELGA', INST=(__L0[j-1])+(10*(__dtexp)),)
+ #
+ print('calcul implicite après équilibrage')
+ dincri1=copy.copy(dincri)
+ dincri1[-1]['INST_FIN'] = __L0[j]
+ dincri1[-1]['INST_INIT']= ((__L0[j-1])+(10*(__dtexp)))
+ nomres=DYNA_NON_LINE(reuse=nomres,
+ MODELE=MODE,
+ CHAM_MATER=MATE,
+ CARA_ELEM=CARA,
+ EXCIT=dexct,
+ ETAT_INIT=_F(DEPL=__Ui, VITE=__Vi, ACCE=__Ai,
+ SIGM=__Ci, VARI=__Vai,
+ ),
+ COMP_INCR=dComp_incri,
+ INCREMENT=dincri1,
+ SCHEMA_TEMPS=dschi,
+ NEWTON=dnew,)
+ #
+ __prc='IMPLICITE'
+ j = j + 1
+ bool = (j!=(__nb))
+ if (not bool): break
+ #
+ return ier
+++ /dev/null
-#@ MODIF Sensibilite Macro DATE 19/11/2007 AUTEUR COURTOIS M.COURTOIS
-# -*- coding: iso-8859-1 -*-
-# CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
-# (AT YOUR OPTION) ANY LATER VERSION.
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
-# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
-# ======================================================================
-
-"""
-Module traite de la gestion des concepts sensibles :
- - classe permettant de stocker les noms des concepts et leurs dérivées
- - corps de la macro MEMO_NOM_SENSI
-"""
-
-# protection pour eficas
-try:
- import aster
- from Utilitai.Utmess import UTMESS
-except:
- pass
-
-_VIDE_ = '????????'
-
-#-------------------------------------------------------------------------------
-def _force_list(obj):
- """Impose le type list."""
- if obj is not None and not type(obj) in (list, tuple):
- obj = (obj,)
- return obj
-
-
-#-------------------------------------------------------------------------------
-class MEMORISATION_SENSIBILITE:
- """Classe pour la mémorisation des concepts sensibles et leurs dérivées.
- """
- def __init__(self, debug=False):
- """Initialisation de la structure
- """
- self._debug = debug
- # dictionnaire de correspondance : ('nom concept', 'nom parasensi') : 'nom compose'
- self._corr = {}
- # idem que _corr mais, pour les commandes principales, on stocke sd elle-meme
- self._cosd = {}
- self._nsnp = {} # l'inverse
- # dictionnaire donnant les 3 tuples de mots-clés, valeurs, mots-clés facteurs
- self._mcle = {}
-
-
- def key(self, nosimp, nopase):
- """Retourne la clé d'accès aux dictionnaires
- """
- if not type(nosimp) in (str, unicode) or not type(nopase) in (str, unicode) or \
- len(nosimp.strip()) > 8 or len(nopase.strip()) > 8:
- UTMESS('F', 'SENSIBILITE_57', valk=(nosimp, nopase))
- return nosimp.strip(), nopase.strip()
-
-
- def set(self, nosimp, nopase, nocomp=None, limocl=None, livale=None, limofa=None,
- verbose=False):
- """On renseigne la structure de mémorisation : CHOIX='E'
- """
- key = self.key(nosimp, nopase)
- if self._corr.has_key(key):
- UTMESS('F', 'SENSIBILITE_90', valk=(nosimp, nopase))
- limocl = _force_list(limocl) or ()
- livale = _force_list(livale) or ()
- limofa = _force_list(limofa) or ()
- if not (len(limocl) == len(livale) == len(limofa)):
- UTMESS('F', 'SENSIBILITE_97')
-
- if nocomp is None:
- nocomp = aster.get_nom_concept_unique('S')
- # on ne conserve que le nom (au moins pour le moment)
- if type(nocomp) != str:
- sd = nocomp
- nocomp = nocomp.nom
- else:
- sd = None
- self._corr[key] = nocomp
- self._cosd[nocomp] = sd
- self._nsnp[nocomp] = key
- self._mcle[key] = (limocl, livale, limofa)
-
- if verbose or self._debug:
- UTMESS('I', 'SENSIBILITE_58', valk=(nosimp, nopase, nocomp))
- if len(limocl) != 0:
- UTMESS('I', 'SENSIBILITE_59', valk=(str(limocl), str(livale), str(limofa)))
-
-
- def get_nocomp(self, nosimp, nopase):
- """On récupère le nom composé associé à un nom simple.
- """
- key = self.key(nosimp, nopase)
- nocomp = self._corr.get(key, _VIDE_)
- if self._debug:
- print '<DBG> memo_sensi.get_nocomp'
- print ' nosimp, nopase = "%s", "%s"' % (nosimp, nopase)
- print ' nom composé = "%s"' % nocomp
- return nocomp
-
-
- def get_nsnp(self, nocomp):
- """On récupère le nom du concept et le parasensi associé au nom composé fourni.
- """
- key = self._nsnp.get(nocomp, (_VIDE_, _VIDE_))
- if self._debug:
- print '<DBG> memo_sensi.get_nsnp'
- print ' nom composé = "%s"' % nocomp
- print ' nosimp, nopase = "%s", "%s"' % key
- return nocomp
-
-
- def get_mcle(self, nosimp, nopase):
- """On récupère les mots-clés associés à un couple ('nom concept', 'nom parasensi')
- """
- key = self.key(nosimp, nopase)
- tup3 = self._mcle.get(key, ((), (), ()) )
- if self._debug:
- print tup3
- print '<DBG> memo_sensi.get_mcle nbmocl =',len(tup3[0])
- print ' nosimp, nopase = "%s", "%s"' % (nosimp, nopase)
- print ' mots-clés = ', tup3
- return tup3
-
-
- def psinfo(self, nosimp):
- """Pendant de l'ex-routine psnosd : retour selon le type de `nosimp`.
- """
- # est-ce une structure dérivée ?
- if nosimp in self._nsnp.keys():
- t_couples = self._nsnp[nosimp]
- ideriv = 1
- else:
- t_couples = self.get_deriv(nosimp)
- ideriv = 0
- # on met le tuple des couples à plat : un tuple de longueur double
- l_res = []
- for coupl in t_couples:
- l_res.extend(coupl)
- t_res = tuple(l_res)
- if self._debug:
- print '<DBG> memo_sensi.psinfo'
- print ' nosimp = "%s"' % nosimp
- print ' ideriv = ', ideriv
- print ' result = ', t_res
- return ideriv, t_res
-
-
- def get_deriv(self, nosimp):
- """On récupère la liste des couples ('nom composé', 'nom parasensi') associé à
- un nom simple.
- """
- res = []
- # liste des clés d'accès concernant `nosimp`.
- l_key = [(ns, np) for ns, np in self._corr.keys() if ns == nosimp.strip()]
- for ns, np in l_key:
- res.append((self._corr[ns, np], np))
- return tuple(res)
-
-
- def get_nom_sd_princ(self):
- """Retourne la liste des noms des sd dérivées produites par les commandes principales.
- """
- return tuple(self._cosd.keys())
-
-
- def delete(self, nosimp, nopase):
- """On récupère les mots-clés associés à un couple ('nom concept', 'nom parasensi')
- """
- key = self.key(nosimp, nopase)
- nocomp = self.get_nocomp(nosimp, nopase)
- if nocomp != _VIDE_:
- del self._corr[key]
- del self._cosd[nocomp]
- del self._mcle[key]
- del self._nsnp[nocomp]
-
-
-#-------------------------------------------------------------------------------
-#-------------------------------------------------------------------------------
-def memo_nom_sensi_ops(self, NOM, **args):
- """Macro MEMO_NOM_SENSI.
- Transitoire : l'appel aux méthodes de MEMORISATION_SENSIBILITE devraient
- à terme etre fait directement sans introduire de commandes MEMO_NOM_SENSI.
-
- Faut-il traiter les mots-clés NOM_ZERO et NOM_UN ?
- Il me semble que NOM_COMPOSE est toujours présent : obligatoire
- """
- import aster
-
- ier=0
- # La macro compte pour 1 dans la numerotation des commandes
- self.set_icmd(1)
-
- dNOM = NOM[0].cree_dict_valeurs(NOM[0].mc_liste)
-
- nosimp = dNOM['NOM_SD']
- nopase = dNOM['PARA_SENSI'].nom
- nocomp = dNOM['NOM_COMPOSE']
-
- self.jdc.memo_sensi.set(nosimp, nopase, nocomp,
- dNOM['MOT_CLE'], dNOM['VALEUR'], dNOM['MOT_FACT'],
- verbose=True)
-
- # s'il faut déclarer le concept dérivé dans le jdc
- if dNOM['TYPE_SD_DERIV']:
- self.DeclareOut('nocomp', dNOM['NOM_COMPOSE'])
- # enregistrement dans le tableau des concepts jeveux
- icmdt = aster.co_register_jev(dNOM['NOM_COMPOSE'].nom, dNOM['TYPE_SD_DERIV'].upper(), 'MEMO_NOM_SENSI')
-
- return ier
-
-
-
--- /dev/null
+#@ MODIF calc_essai_ops Macro DATE 21/10/2008 AUTEUR NISTOR I.NISTOR
+# -*- coding: iso-8859-1 -*-
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2008 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# ======================================================================
+
+## \package calc_essai_ops Implémentation de la macro CALC_ESSAI
+#
+# Ce module contient la partie controle de la macro CALC_ESSAI
+# l'implémetation de cette macro se trouve dans les modules
+# meidee_help, meidee_mac, meidee_massamor, meidee_turbulent
+# on utilise aussi une librairie de support
+# pour la gestion de l'interface graphique dans meidee_iface
+
+
+def calc_essai_ops( self,
+ INTERACTIF = None,
+ UNITE_FIMEN = None,
+ UNITE_RESU = None,
+ EXPANSION = None,
+ MEIDEE_FLUDELA = None,
+ MEIDEE_TURBULENT = None,
+ IDENTIFICATION = None,
+ MODIFSTRUCT = None,
+ GROUP_NO_CAPTEURS = None,
+ GROUP_NO_EXTERIEUR = None,
+ RESU_FLUDELA = None,
+ RESU_TURBULENT = None,
+ RESU_IDENTIFICATION = None,
+ RESU_MODIFSTRU = None,
+ **args):
+ import aster
+ from Meidee.meidee_cata import MeideeObjects
+ ier = 0
+
+ prev = aster.onFatalError()
+ aster.onFatalError("EXCEPTION")
+
+ # La macro compte pour 1 dans la numerotation des commandes
+ self.set_icmd(1)
+
+
+ # gestion des concepts sortants de la macro, declares a priori
+ table = []
+ table_fonction = []
+
+ if not RESU_MODIFSTRU:
+ out_modifstru = {}
+ else:
+ out_modifstru = RESU_MODIFSTRU[0] # max=1 dans le capy
+
+
+ if not RESU_IDENTIFICATION:
+ RESU_IDENTIFICATION = []
+ else:
+ for res in RESU_IDENTIFICATION:
+ table_fonction.append(res['TABLE'])
+ out_identification = {"DeclareOut" : self.DeclareOut,
+ "TypeTables" : 'TABLE_FONCTION',
+ "ComptTable" : 0,
+ "TablesOut" : table_fonction}
+
+ if not RESU_FLUDELA:
+ RESU_FLUDELA = []
+ else:
+ for res in RESU_FLUDELA:
+ table.append(res['TABLE'])
+ out_fludela = {"DeclareOut" : self.DeclareOut,
+ "TypeTables" : 'TABLE',
+ "ComptTable" : 0,
+ "TablesOut" : table}
+
+ if not RESU_TURBULENT:
+ RESU_TURBULENT = []
+ else:
+ for res in RESU_TURBULENT:
+ table.append(res['FONCTION'])
+ out_meideeturb = {"DeclareOut" : self.DeclareOut,
+ "FoncOut" : table}
+
+
+ # Mode interactif : ouverture d'une fenetre Tk
+ if INTERACTIF == "OUI":
+ create_interactive_window(self,
+ UNITE_FIMEN,
+ UNITE_RESU,
+ out_fludela,
+ out_meideeturb,
+ out_identification,
+ out_modifstru)
+ else:
+ from Meidee.meidee_calcul import MessageBox
+ from Meidee.meidee_test import TestMeidee
+ mess = MessageBox(UNITE_RESU)
+ mess.disp_mess("Mode non intéractif")
+
+ objects = MeideeObjects(self, mess)
+
+ # importation des concepts aster existants de la memoire jeveux
+ TestMeidee(self,
+ mess,
+ out_fludela,
+ out_meideeturb,
+ out_identification,
+ out_modifstru,
+ objects,
+ EXPANSION,
+ MEIDEE_FLUDELA,
+ MEIDEE_TURBULENT,
+ IDENTIFICATION,
+ MODIFSTRUCT,
+ GROUP_NO_CAPTEURS,
+ GROUP_NO_EXTERIEUR
+ )
+
+ mess.close_file()
+ aster.onFatalError(prev)
+ return ier
+
+
+
+def create_tab_mess_widgets(tk, UNITE_RESU):
+ """Construits les objects table et boîte à messages."""
+ try:
+ from Pmw import PanedWidget
+ except ImportError:
+ PanedWidget = None
+
+ from Meidee.meidee_iface import MessageBoxInteractif, TabbedWindow
+
+ if PanedWidget:
+ pw = PanedWidget(tk, orient='vertical',
+ hull_borderwidth = 1,
+ hull_relief = 'sunken',
+ )
+ tabsw = pw.add("main", min=.1, max=.9)
+ msgw = pw.add("msg", min=.1, max=.2)
+ pw.grid(sticky='nsew')
+ tabsw.rowconfigure(0, weight=1)
+ tabsw.columnconfigure(0, weight=1)
+ msgw.rowconfigure(0, weight=1)
+ msgw.columnconfigure(0, weight=1)
+ else:
+ tabsw = tk
+ msgw = tk
+ tk.rowconfigure(1, weight=3)
+ tk.rowconfigure(1, weight=1)
+
+ tabs = TabbedWindow(tabsw, ["Expansion de modeles",
+ "Modification structurale",
+ "MEIDEE mono-modal fludela",
+ "MEIDEE mono-modal turbulent",
+ "Identification de chargement",
+ "Parametres de visualisation"])
+
+ tabs.grid(row=0, column=0, sticky='nsew')
+ # pack(side='top',expand=1,fill='both')
+
+ # ecriture des message dans un fichier message
+ mess = MessageBoxInteractif(msgw, UNITE_RESU)
+ if PanedWidget:
+ mess.grid(row=0, column=0, sticky='nsew')
+ #mess.pack(side='top',expand=1,fill='both')
+ else:
+ mess.grid(row=1, column=0, sticky='nsew')
+ #mess.pack(side='top',expand=1,fill='both')
+
+ return tabs, mess
+
+def get_fimen_files(UNITE_FIMEN, FIMEN=None):
+ """Fichiers fimen éventuels associés aux unités logiques en entrée"""
+ # XXX FIMEN is not defined (should it be included in the macro)
+ from Utilitai.UniteAster import UniteAster
+ fichiers_fimen = []
+ print "FIMEN:", UNITE_FIMEN
+
+ if UNITE_FIMEN:
+ if type(FIMEN)==int:
+ UNITE_FIMEN= [ UNITE_FIMEN ]
+ for unit in UNITE_FIMEN:
+ UL = UniteAster()
+ fichiers_fimen.append( (unit, UL.Nom(unit)) )
+
+ return fichiers_fimen
+
+
+class FermetureCallback:
+ """Opérations à appliquer lors de la fermeture de la
+ fenêtre Tk.
+ """
+
+ def __init__(self, main_tk, turbulent):
+ self.main_tk = main_tk
+ self.turbulent = turbulent
+
+ def apply(self):
+ """Enlève les fichiers temporaires de Xmgrace"""
+ if self.turbulent.param_visu.logiciel_courbes is not None:
+ self.turbulent.param_visu.logiciel_courbes.fermer()
+ self.main_tk.quit()
+
+
+def create_interactive_window(macro,
+ UNITE_FIMEN,
+ UNITE_RESU,
+ out_fludela,
+ out_meideeturb,
+ out_identification,
+ out_modifstru):
+ """Construit la fenêtre interactive comprenant une table pour
+ les 4 domaines de Meidee."""
+ from Tkinter import Tk
+
+ from Meidee.meidee_cata import MeideeObjects
+ from Meidee.meidee_correlation import InterfaceCorrelation
+ from Meidee.meidee_modifstruct import InterfaceModifStruct
+ from Meidee.meidee_fludela import InterfaceFludela, InterfaceTurbMonomod
+ from Meidee.meidee_turbulent import InterfaceTurbulent
+ from Meidee.meidee_parametres import InterfaceParametres
+
+ # fenetre principale
+ tk = Tk()
+ tk.rowconfigure(0, weight=1)
+ tk.columnconfigure(0,weight=1)
+
+ tabs, mess = create_tab_mess_widgets(tk, UNITE_RESU)
+ main = tabs.root()
+
+ # importation des concepts aster de la memoire jeveux
+ objects = MeideeObjects(macro, mess)
+ tabs.set_objects(objects)
+
+ param_visu = InterfaceParametres(main, mess)
+
+ iface = InterfaceCorrelation(main, objects, macro, mess, param_visu)
+ imodifstruct = InterfaceModifStruct(main, objects, macro,
+ mess, out_modifstru, param_visu)
+ fludelamonomod = InterfaceFludela(main, objects,
+ get_fimen_files(UNITE_FIMEN), mess, out_fludela, param_visu)
+ turbmonomod = InterfaceTurbMonomod(main, objects,get_fimen_files(UNITE_FIMEN) ,mess, out_meideeturb, param_visu)
+ turbulent = InterfaceTurbulent(main, objects, mess, out_identification, param_visu)
+
+ tabs.set_tab("Expansion de modeles", iface.main)
+ tabs.set_tab("Modification structurale", imodifstruct.main)
+ tabs.set_tab("MEIDEE mono-modal fludela", fludelamonomod )
+ tabs.set_tab("MEIDEE mono-modal turbulent", turbmonomod )
+ tabs.set_tab("Identification de chargement", turbulent)
+ tabs.set_tab("Parametres de visualisation", param_visu)
+
+ #tabs.set_current_tab("Modifstruct")
+ tabs.set_current_tab("Expansion de modeles")
+
+ tk.protocol("WM_DELETE_WINDOW", FermetureCallback(tk, turbulent).apply)
+
+ try:
+ tk.mainloop()
+ except :
+ print "MEIDEE : *ERREUR*"
+
+
--- /dev/null
+#@ MODIF calc_europlexus_ops Macro DATE 24/11/2008 AUTEUR ASSIRE A.ASSIRE
+# -*- coding: iso-8859-1 -*-
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2008 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# ======================================================================
+# RESPONSABLE ASSIRE A.ASSIRE
+
+#-----------------------------------------------------------------------
+#----------------------------- Importation des modules ----------------
+#-----------------------------------------------------------------------
+debug = False
+dryrun = False
+
+import types,string
+import os
+import Numeric as N
+import math
+import copy
+import sets
+
+# Protection pour Eficas
+try:
+ import aster
+ from Accas import _F
+ from Utilitai.partition import MAIL_PY
+except:
+ pass
+
+#----------------------------- Precision -------------------------------
+tst = 1.0E-10
+
+#-----------------------------------------------------------------------
+#----------------------------- Fonctions de calcul vectoriel -----------
+#-----------------------------------------------------------------------
+
+def norme(u) :
+ return N.sqrt(N.dot(u,u))
+
+def vecteurs_egaux(v1,v2):
+ diff = v1-v2
+ #print 'v1',v1
+ #print 'v2',v2
+ for v in diff:
+ if abs(v) > tst : return False
+ return True
+
+#-----------------------------------------------------------------------
+#----------------------------- Operateur de la Macro-commande ----------
+#-----------------------------------------------------------------------
+
+
+def calc_europlexus_ops(self,MODELE,CARA_ELEM,CHAM_MATER,EXCIT,FONC_PARASOL=None,
+ DIME=None,OBSERVATION=None,ARCHIVAGE=None,COURBE=None,
+ CALCUL=None,DOMAINES=None,INTERFACES=None,INFO=1,**args):
+
+# import aster
+# from Accas import _F
+
+ ier=0
+ # La macro compte pour 1 dans la numerotation des commandes
+ self.set_icmd(1)
+
+ # On importe les definitions des commandes a utiliser dans la macro
+ # Le nom de la variable doit etre obligatoirement le nom de la commande
+
+ global _F,INFO_EXEC_ASTER,DETRUIRE,IMPR_RESU,DEFI_FICHIER,LIRE_RESU,CREA_MAILLAGE
+ global DEFI_GROUP,LIRE_MAILLAGE,CREA_TABLE,IMPR_TABLE,AFFE_MODELE,EXEC_LOGICIEL
+ global LIRE_CHAMP,CREA_CHAMP,CREA_RESU,FORMULE
+
+ INFO_EXEC_ASTER = self.get_cmd('INFO_EXEC_ASTER')
+ DETRUIRE = self.get_cmd('DETRUIRE')
+ IMPR_RESU = self.get_cmd('IMPR_RESU')
+ DEFI_FICHIER = self.get_cmd('DEFI_FICHIER')
+ LIRE_RESU = self.get_cmd('LIRE_RESU')
+ CREA_MAILLAGE = self.get_cmd('CREA_MAILLAGE')
+ DEFI_GROUP = self.get_cmd('DEFI_GROUP')
+ LIRE_MAILLAGE = self.get_cmd('LIRE_MAILLAGE')
+ CREA_TABLE = self.get_cmd('CREA_TABLE')
+ IMPR_TABLE = self.get_cmd('IMPR_TABLE')
+ AFFE_MODELE = self.get_cmd('AFFE_MODELE')
+ EXEC_LOGICIEL = self.get_cmd('EXEC_LOGICIEL')
+ LIRE_CHAMP = self.get_cmd('LIRE_CHAMP')
+ CREA_CHAMP = self.get_cmd('CREA_CHAMP')
+ CREA_RESU = self.get_cmd('CREA_RESU')
+ FORMULE = self.get_cmd('FORMULE')
+
+ # Pour la gestion des Exceptions
+ prev_onFatalError = aster.onFatalError()
+ aster.onFatalError('EXCEPTION')
+
+
+ # Pour masquer certaines alarmes
+ from Utilitai.Utmess import UTMESS, MasquerAlarme, RetablirAlarme
+ MasquerAlarme('MED_1')
+
+ # Ligne de commande d'Europlexus
+ if args.has_key('LOGICIEL'): EXEC = args['LOGICIEL']
+ else: EXEC = '/home/europlex/EPXD/EUROPLEXUS_GESTION/runepx_d'
+ if debug: print 'args_keys : %s'%args.keys()
+ if args.has_key('PAS_NBRE_COURBE') :
+ if debug: print 'PAS NBRE COURBE = ok (%s)'%args['PAS_NBRE_COURBE']
+ else :
+ if debug: print 'PAS NBRE COURBE = nook'
+ # La macro compte pour 1 dans la numerotation des commandes
+ self.set_icmd(1)
+
+ # classs Europlexus permettant de faire le chainage avec le Code_Aster
+ EPX = EUROPLEXUS(MODELE,CARA_ELEM,CHAM_MATER,FONC_PARASOL,EXCIT,DIME,
+# AA ECRITURE,CALCUL,REPE='REPE_OUT',EXEC=EXEC)
+ OBSERVATION,ARCHIVAGE,COURBE,CALCUL,DOMAINES,INTERFACES,
+ REPE='REPE_OUT',EXEC=EXEC, INFO=INFO, args=args)
+
+ # Eriture du fichier de commande Europlexus
+ EPX.ecrire_fichier()
+
+ # Si dryrun alors on ne lance pas le calcul Europlexus
+ if dryrun: return ier
+
+ # Lancement du calcul Europlexus
+ EPX.lancer_calcul()
+
+ # Recuperer le resulat Europlexus a l'aide d'un concept aster de type evol_noli
+ fichier_med = 'auto'
+ fichier_pun = 'auto'
+# if debug :
+# fichier_med='fort.81'
+# fichier_pun ='fort.85'
+
+ self.DeclareOut('resu',self.sd) # Le concept sortant (de type evol_noli) est nomme 'resu'
+ global resu # pour que le nom du concept prenne celui defini par l'utilisateur
+ EPX.get_resu(fichier_med=fichier_med)
+
+ #Recuperer les concepts table
+ if COURBE is not None:
+ global table
+ # icourbe = 0
+ # for fonc in COURBE['TABLE'] :
+ # icourbe += 1
+ self.DeclareOut('table',args['TABLE_COURBE'])
+ EPX.get_table()
+ # EPX.get_table(icourbe=icourbe,fichier=fichier_pun)
+
+
+ # Pour la gestion des Exceptions
+ aster.onFatalError(prev_onFatalError)
+
+ # Pour la gestion des alarmes
+ RetablirAlarme('MED_1')
+
+ return ier
+
+#-----------------------------------------------------------------------
+#----------------------------- class EUROPLEXUS ------------------------
+#-----------------------------------------------------------------------
+
+class EUROPLEXUS:
+# AA def __init__(self,MODELE,CARA_ELEM,CHAM_MATER,FONC_PARASOL,EXCIT,DIME,ECRITURE,CALCUL,REPE,EXEC,**args):
+ def __init__(self,MODELE,CARA_ELEM,CHAM_MATER,FONC_PARASOL,EXCIT,DIME,OBSERVATION,ARCHIVAGE,COURBE,CALCUL,DOMAINES,INTERFACES,REPE,EXEC,INFO,args):
+
+ if debug: print 'args_key %s'%args.keys()
+ # Mettre toutes les entrees en attributs
+ self.DIME = DIME
+ self.MODELE = MODELE
+ self.CARA_ELEM = CARA_ELEM
+ self.CHAM_MATER = CHAM_MATER
+ self.FONC_PARASOL = FONC_PARASOL
+ self.EXCIT = EXCIT
+# self.ECRITURE = ECRITURE
+ self.OBSERVATION = OBSERVATION
+ self.ARCHIVAGE = ARCHIVAGE
+ self.COURBE = COURBE
+ self.CALCUL = CALCUL
+ self.DOMAINES = DOMAINES
+ self.INTERFACES = INTERFACES
+ self.INFO = INFO
+
+ # Repertoire de calcul Europlexus
+ self.REPE = REPE
+ # Commande d'execution de Europlexus
+ self.EXEC = EXEC
+
+ if args.has_key('UNITE_COURBE'): self.UNITE_COURBE = args['UNITE_COURBE']
+ else: self.UNITE_COURBE = None
+
+ if args.has_key('PAS_INST_COURBE'): self.PAS_INST_COURBE = args['PAS_INST_COURBE']
+ else: self.PAS_INST_COURBE = None
+
+ if args.has_key('PAS_NBRE_COURBE'): self.PAS_NBRE_COURBE = args['PAS_NBRE_COURBE']
+ else: self.PAS_NBRE_COURBE = None
+
+ if args.has_key('TABLE_COURBE'): self.TABLE_COURBE = args['TABLE_COURBE']
+ else: self.TABLE_COURBE = None
+ # Dictionnaire contenant le texte associé au fichier de commande Europlexus
+ self.epx = {}
+
+ if debug: print 'pas nbre courbe = %s'%self.PAS_NBRE_COURBE
+
+ # Concept pour un nouveau maillage si on utilise RIGI_PARASOL ou
+ # si on regroupe separement les mailles tria3 et quad4
+ self.NEW_MA = None
+
+ # Nom des fichiers de Europlexus (commande et sorties)
+ self.nom_fichiers = {'COMMANDE' : 'commandes.epx',
+ 'MAILLAGE' : 'maillage_epx',
+ 'ALIT' : 'champ.alit',
+ 'MED' : 'champ.e2m',
+ 'PUN' : 'courbes.pun',
+ }
+
+ # Chemin du repertoire courant ou le calcul Aster est lance
+ self.pwd = os.getcwd() + os.sep
+
+
+
+#-----------------------------------------------------------------------
+ def get_unite_libre(self,):
+
+ _UL=INFO_EXEC_ASTER(LISTE_INFO='UNITE_LIBRE')
+ unite=_UL['UNITE_LIBRE',1]
+ DETRUIRE(CONCEPT=(_F(NOM=_UL),), INFO=1)
+ return(unite)
+
+
+#-----------------------------------------------------------------------
+ def reupere_structure(self,concept,mot_cle=None):
+
+ try : structure = concept.etape.valeur
+ except : UTMESS('F','PLEXUS_1')
+
+ if mot_cle :
+ if structure.has_key(mot_cle) : return structure[mot_cle]
+ else : return None
+ return structure
+#-----------------------------------------------------------------------
+ def get_motcle(self,fact,mot_cle,code_mess='F'):
+ try :
+ out = fact[mot_cle]
+ except :
+ out = None
+ if not out is None : return out
+ if not code_mess is None and code_mess: UTMESS(code_mess,'PLEXUS_2',valk=mot_cle)
+ return None
+
+#-----------------------------------------------------------------------
+ def get_group_ma(self,fact):
+ group_ma = self.get_motcle(fact,'GROUP_MA',code_mess='F')
+ if types.TypeType(group_ma) == types.StringType : group_ma = (group_ma,)
+ # elif types.TypeType(group_ma) == types.ListType : group_ma = tupel(group_ma)
+ return group_ma
+
+#-----------------------------------------------------------------------
+ def get_group_ma_f(self,fact):
+ group_ma = self.get_motcle(fact,'GROUP_MA',None)
+ if types.TypeType(group_ma) == types.StringType : group_ma = (group_ma,)
+ # elif types.TypeType(group_ma) == types.ListType : group_ma = tupel(group_ma)
+ if not group_ma : group_ma=[]
+ return group_ma
+
+#-----------------------------------------------------------------------
+ def setlist(self,fact):
+ #print 'types.TypeType(fact)',types.TypeType(fact)
+ if fact is None : return fact
+ if not types.TypeType(fact) in [types.ListType,types.TupleType] : fact= [fact]
+ return fact
+
+#-----------------------------------------------------------------------
+ def lire_fichier(self,fichier,):
+ fd = open(fichier,'r')
+ lignes = fd.readlines()
+ fd.close()
+ valeurs = []
+ commentaires = ['#','%','$','*']
+ for ll in lignes:
+ add = 1
+ for comment in commentaires :
+ if string.find(ll,comment) != -1 : add = 0;break
+ if add :
+ data = [val for val in ll.split(None)]
+ valeurs.append(data)
+ return valeurs
+
+#-----------------------------------------------------------------------
+ def fichier2dic(self,fichier):
+ valeurs = self.lire_fichier(fichier)
+ dic = {}
+ mot_cle = None
+ for ll in valeurs:
+ if len(ll) > 1 :
+ for mot in ll :
+ try :
+ val = float(mot)
+ if not mot_cle is None : dic[mot_cle].append(val)
+ except :
+ mot_cle = mot
+ dic[mot_cle] = []
+
+ return dic
+
+#-----------------------------------------------------------------------
+ def lire_pun(self,fichier):
+ if debug: print 'lire_pun : fichier = %s'%fichier
+ data = self.lire_fichier(fichier)
+ icourbe = 0
+ courbes = {}
+ for ligne in data:
+ if debug: print 'lire_pun : %s'%ligne
+ if ligne[0] in ('VALEURS','VALUES'):
+ icourbe += 1;
+ nb = int(ligne[1])
+ courbes[icourbe] = []
+ else:
+ ligne_vale = [float(val) for val in ligne]
+ courbes[icourbe].append(ligne_vale)
+ for courbe in courbes :
+ courbes[courbe]=N.transpose(N.array(courbes[courbe]))
+ return courbes
+
+#-----------------------------------------------------------------------
+ def export_DEBUT(self):
+
+ epx = self.epx
+
+ # Cle identifiant
+ MODULE = 'DEBUT'
+
+ # Entete de la commande Europlexus courante
+ epx[MODULE] = ['*--FICHIER CREE PAR CALC_EUROPLEXUS/Code_Aster']
+
+ # Texte declarant le debut
+ epx[MODULE].append('TITRE')
+ epx[MODULE].append('ECHO')
+ options = 'TRID NONL'
+# AA champ_fact = self.ECRITURE['CHAMP']
+ champ_fact = self.ARCHIVAGE
+ if champ_fact is not None : options += ' MEDE'
+ epx[MODULE].append(options)
+ epx[MODULE].append('\n')
+
+#-----------------------------------------------------------------------
+ def export_MAILLAGE(self,format='CASTEM'):
+
+ epx = self.epx
+
+ # Cle identifiant
+ MODULE = 'MAILLAGE'
+
+ # Entete de la commande Europlexus courante
+ epx[MODULE] = ['*--LECTURE MAILLAGE']
+
+ # Recuperer la concept maillage modifie ou initial
+ if self.NEW_MA is None :
+ concept_maillage = self.reupere_structure(self.MODELE,'MAILLAGE')
+ else :
+ concept_maillage = copy.copy(self.NEW_MA)
+
+ # Ecrire le maillage, qui peut etre a ete enrichi avec des commandes Aster, sous le format souhaite (MED ou CASTEM)
+ unite = self.get_unite_libre()
+
+ # Extensions des formats de maillage
+ extension = {'CASTEM' : '.mgib', 'MED':'.med'}
+
+ # donner un nom au fichier de maillage parce que le fort.unite peut etre ecrase par d'autre operation d'ecriture
+ nom_fichier = self.REPE + os.sep + self.nom_fichiers['MAILLAGE'] + extension[format]
+ DEFI_FICHIER(UNITE=unite,FICHIER=nom_fichier,ACTION='ASSOCIER')
+ IMPR_RESU(UNITE=unite,
+ FORMAT=format,
+ RESU = _F(MAILLAGE=concept_maillage)
+ )
+ DEFI_FICHIER(UNITE=unite,ACTION='LIBERER');
+
+ # Ecriture de la commande Europlexus associee
+ fichier_maillage = self.pwd + nom_fichier
+
+ #epx[MODULE].append('OPNF FORMAT 9')
+ epx[MODULE].append('%s '%format)
+ epx[MODULE].append("'%s' TOUT" %fichier_maillage)
+ #epx[MODULE].append('CASTEM 9 TOUT')
+
+ epx[MODULE].append('\n')
+
+#-----------------------------------------------------------------------
+ def export_DIME(self,):
+ epx = self.epx
+
+ # Cle identifiant
+ MODULE = 'DIME'
+
+ # Entete de la commande Europlexus courante
+ epx[MODULE] = ['*--DIMENSIONNEMENT']
+ epx[MODULE].append('\n')
+
+ # Test si des parametres de dime seront introuduites à l'aide d'un fichier externe
+ try : unite_dime = self.DIME['UNITE_DIME']
+ except : unite_dime = None
+
+ # Recuperer le dictionnaire issu du fichier associe à UNITE_DIME (s'il existe)
+ if unite_dime is not None :
+ fort = 'fort.%i' %unite_dime
+ dic_fichier = self.fichier2dic(fort)
+ else:
+ dic_fichier = {}
+
+ # mettre a jour les cles definis dans le fichier par celles qui sont
+ # definies directement sous le mot-cle facteur DIME
+ cles = ['Q4GS', 'FORCE', 'PT6L', 'ZONE', 'POUT',
+ 'ECRO', 'APPU', 'BLOQ', 'PRESS', 'PMAT',
+ 'FTAB', 'DKT3', 'DEPL', 'FNOM', 'TABLE',
+ 'LIAI', 'MTTI', 'PT1L','NEPE']
+
+ for cle in cles:
+ try:
+ if self.DIME[cle] is not None :
+ dic_fichier[cle] = self.DIME[cle]
+ except : pass
+
+ # Imprimer les mot-cles et leurs dans epx
+ epx[MODULE].append('DIME')
+ for cle in dic_fichier:
+ vale = dic_fichier[cle]
+ st = 5*' ' + cle
+ for v in vale:
+ st += ' %i' %v
+ epx[MODULE].append(st)
+ epx[MODULE].append('TERM')
+
+ epx[MODULE].append('\n')
+
+#-----------------------------------------------------------------------
+ def export_MODELE(self):
+
+ epx = self.epx
+
+ # Cle identifiant
+ MODULE = 'MODELE'
+
+ epx[MODULE] = ['*--DEFINITION DE LA GEOMETRIE']
+
+ # Entete de la commande Europlexus courante
+ epx[MODULE].append('GEOMETRIE')
+
+ # Recuperer la structure sous le mot_cle facteur AFFE de AFFE_MODELE
+ affe_modele = self.reupere_structure(self.MODELE,'AFFE')
+ affe_modele = self.setlist(affe_modele)
+
+
+ # Correspondance de modelisation aster/europlexus
+ dic_modele = {'DKT':'DKT3','DKTG':'Q4GS','POU_D_E':'POUT'}
+
+ # Correspondance de modelisation europlexus/aster
+ dic_modele_epx = {}
+ for cle in dic_modele.keys():
+ dic_modele_epx[dic_modele[cle]] = cle
+
+ # initialisation du dictioannaire qui contient les group_ma en fonction de la modelisation
+ dic_gma = {}
+ for cle in dic_modele.values():
+ dic_gma[cle] = []
+
+ for affe in affe_modele:
+ modelisation = affe['MODELISATION']
+ phenomene = affe['PHENOMENE']
+ if phenomene == 'MECANIQUE' and modelisation in dic_modele.keys():
+ if affe.has_key('GROUP_MA') :
+ group_ma = self.get_group_ma(affe)
+ dic_gma[dic_modele[modelisation]].extend(group_ma)
+ else :
+ UTMESS('F','PLEXUS_3')
+
+ # Regrouper separement les mailles tria3 et quad4 de la modilisation DKT (s'il y a lieu)
+ # parce que leurs modilisations dans europlexus sont differentes:
+ # tria3 : DKT3
+ # quad4 : Q4GS
+
+ # Initialisation du dictionnaire contenant les elements du modele de type TRIA3 et QUAD4
+ nom_groups= {'TRIA3':[],'QUAD4':[]}
+
+ if len(dic_gma['DKT3']) > 0:
+ concept_maillage = self.reupere_structure(self.MODELE,'MAILLAGE')
+ class_dkt = DKT(MAILLAGE=concept_maillage,)
+ nom_groups = class_dkt.aster2epx(groups=dic_gma['DKT3'])
+ if debug: print 'nom_groups = %s'%nom_groups
+ # mettre a jour les groups de chaque modelisation
+ dic_gma['DKT3'] = nom_groups['TRIA3']
+ dic_gma['Q4GS'].extend(nom_groups['QUAD4'])
+
+
+ # liste comportant les modelisations definis dans le module GEOMETRIE
+ # cette liste va servir à determiner les indices des champs stockes dans le fichier med (get_resu)
+ self.modelisations = []
+ # Ecriture sous format europlexus
+ for modelisation in dic_gma.keys() :
+ len_groups = len(dic_gma[modelisation])
+ if len_groups > 0 :
+ self.modelisations.append(modelisation)
+ epx[MODULE].append(5*' ' + modelisation + 2*' ' + dic_gma[modelisation][0])
+ if len_groups > 1 :
+ for ig in range(1,len_groups) :
+ group_ma = dic_gma[modelisation][ig]
+ epx[MODULE].append((len(modelisation)+5+2)*' ' + group_ma)
+
+
+
+ # Mettre a jour le modele dans le cas ou le maillage a ete modifie pour la seperation de TRIA3 et QUAD4
+ # ce modele va etre utilise dans la lecture du fichier med (get_resu)
+ if len(nom_groups['QUAD4']) == 0 :
+ self.NEW_MODELE = copy.copy(self.MODELE)
+ else :
+ affe_model = []
+ for modelisation in self.modelisations :
+ affe_model.append({'GROUP_MA':dic_gma[modelisation],
+ 'MODELISATION': dic_modele_epx[modelisation],
+ 'PHENOMENE':'MECANIQUE' })
+
+ __MO = AFFE_MODELE(MAILLAGE = concept_maillage,
+ AFFE = affe_model,
+ );
+
+ self.NEW_MODELE = copy.copy(__MO);
+
+ # Utiliser dans Ecriture des elements et points du fichier med
+ self.dic_gma = dic_gma
+ # Il y a une suite dans RIGI_PARSOL
+
+ #epx[MODULE].append('TERM')
+ #epx[MODULE].append('\n')
+
+
+ #-----------------------------------------------------------------------
+ def export_CARA_ELEM(self):
+
+ epx = self.epx
+
+ # Cle identifiant
+ MODULE = 'CARA_ELEM'
+
+ # Recuperer la structure du concept sorti de AFFE_CARA_ELEM
+ cara_elem_struc = self.reupere_structure(self.CARA_ELEM)
+
+ epx[MODULE] = ['*--CARACTERISTIQUES DES ELEMENTS DE STRUCTURE']
+
+ # Entete de la commande Europlexus courante
+ epx[MODULE].append('COMPLEMENT')
+
+ # Dictionnaire conteant les donnees associees aux differents elements de structure
+ dic_elem = {}
+ for cle in ['DISCRET','COQUE','POUTRE','RIGI_PARASOL']:
+ if cara_elem_struc.has_key(cle):
+ fact = cara_elem_struc[cle]
+ if fact :
+ dic_elem[cle] = self.setlist(fact)
+
+ # traduire les masses concentrees si elles existent
+ cle = 'DISCRET'
+ self.discretParasol = {}
+ if dic_elem.has_key(cle):
+ epx[MODULE].append('\n')
+ epx[MODULE].append('*--MASSES AJOUTEES')
+ for elem in dic_elem[cle]:
+ if elem['CARA'] == 'M_T_D_N' :
+ group_ma = self.get_group_ma(elem)
+ vale = elem['VALE']
+ epx[MODULE].append('MASSE 123456 %g' %vale)
+ epx[MODULE].append(7*' ' + 'LECT')
+ for group in group_ma:
+ epx[MODULE].append(11*' '+group)
+ epx[MODULE].append(7*' ' + 'TERM')
+ if elem['CARA'] == 'K_TR_D_N' :
+ group_ma = self.get_group_ma(elem)
+ vale = elem['VALE']
+ for gma in group_ma :
+ self.discretParasol[gma] = vale
+
+ # traduire les elements coques s'ils existent
+ cle = 'COQUE'
+ self.dicOrthotropie={}
+ self.listEpais=[]
+ self.listEpais2=[]
+ if dic_elem.has_key(cle):
+ epx[MODULE].append('\n')
+ epx[MODULE].append('*--ELEMENTS COQUES')
+ for elem in dic_elem[cle]:
+# print elem
+ group_ma = self.get_group_ma(elem)
+ epais = elem['EPAIS']
+ if self.ARCHIVAGE['CONT_GENER'] == 'OUI' :
+ self.listEpais.append({'VALE' : epais, 'GROUP_MA' : group_ma, 'NOM_CMP' : 'X21'})
+ self.listEpais2.append({'VALE' : epais**2/6., 'GROUP_MA' : group_ma, 'NOM_CMP' : 'X22'})
+ else :
+ self.listEpais.append({'VALE' : 1., 'GROUP_MA' : group_ma, 'NOM_CMP' : 'X21'})
+ self.listEpais2.append({'VALE' : 1., 'GROUP_MA' : group_ma, 'NOM_CMP' : 'X22'})
+ st = 'EPAIS %g ' %epais
+ #ajouter les group_ma qui ont ete affecte par ces caracteristiques
+ epx[MODULE].append(st+'LECT')
+ for group in group_ma:
+ epx[MODULE].append((len(st)+4)*' '+group)
+ epx[MODULE].append((len(st))*' '+'TERM')
+ if elem.has_key('VECTEUR'):
+# AA if elem['VECTEUR'] :
+ for group in group_ma :
+ self.dicOrthotropie[group] = elem['VECTEUR']
+
+ # traduire les elements poutres s'ils existent
+ cle = 'POUTRE'
+ if dic_elem.has_key(cle):
+ concept_maillage = self.reupere_structure(self.MODELE,'MAILLAGE')
+ #class permettant de calculer et verifier les vecteurs de poutre dans Europlexus
+ class_poutre = POUTRE(MAILLAGE=concept_maillage,CARA_ELEM=self.CARA_ELEM)
+ epx[MODULE].append('\n')
+ epx[MODULE].append('*--ELEMENTS POUTRES')
+ for elem in dic_elem[cle]:
+ group_ma = self.get_group_ma(elem)
+ vecteurs = class_poutre.getvecteurs(group_ma,verif='non')
+ vect_y = vecteurs[group_ma[0]]
+ type_section = elem['SECTION']
+ st = 'GEOP %s ' %type_section
+ if type_section == 'RECTANGLE' :
+ # Correspondance de caracteristique de poutre aster/europlexus
+ dic_corresp = {'HY':'AY','HZ':'AZ'}
+ epx[MODULE].append(st)
+ # ajouter le vecteur definisant l'orientation de la section
+ epx[MODULE].append(len(st)*' ' + 'VX %g' %vect_y[0])
+ epx[MODULE].append(len(st)*' ' + 'VY %g' %vect_y[1])
+ epx[MODULE].append(len(st)*' ' + 'VZ %g' %vect_y[2])
+ # ajouter les caracteristiques de la poutre
+ cara = elem['CARA']
+ vale = elem['VALE']
+ for icar in range(len(cara)):
+ car = cara[icar]
+ val = vale[icar]
+ car_epx = dic_corresp[car]
+ epx[MODULE].append(len(st)*' ' + '%s %g' %(car_epx,val))
+ # ajouter les group_ma qui ont ete affecte par ces caracteristiques
+ epx[MODULE].append(5*' '+'LECT')
+ for group in group_ma:
+ epx[MODULE].append(len(st)*' '+group)
+ epx[MODULE].append(5*' '+'TERM')
+ else :
+ UTMESS('A','PLEXUS_4',valk=type_section)
+
+ epx[MODULE].append('\n')
+
+#-----------------------------------------------------------------------
+ def export_RIGI_PARASOL(self):
+
+ epx = self.epx
+
+ # Cle identifiant
+ MODULE = 'RIGI_PARASOL'
+ concept_maillage = self.reupere_structure(self.MODELE,'MAILLAGE')
+ self.MApyt = MAIL_PY()
+ self.MApyt.FromAster(concept_maillage)
+
+ # Recuperer la structure du concept sorti de AFFE_CARA_ELEM
+ cara_elem_struc = self.reupere_structure(self.CARA_ELEM)
+
+ # Recuperer la structure RIGI_PARASOL si elles existe
+ list_rigi_parasol = None
+ if cara_elem_struc.has_key('RIGI_PARASOL'):
+ fact = cara_elem_struc['RIGI_PARASOL']
+ if fact :list_rigi_parasol = self.setlist(fact)
+
+ # Traduction des fonctions definies dans FONC_PARASOL
+ #dic_fonc_parasol = self.get_FONC_PARASOL(list_rigi_parasol)
+ dic_fonc_parasol = self.get_FONC_PARASOL()
+ epx[MODULE] = ['*--SUPPORT ELASTIQUE']
+
+ # si l'utilisateur a lui meme fourni des GROUP_MA de discrets : on commence par la
+ gmaParasol=self.get_group_ma_f(self.FONC_PARASOL)
+ group_union = ''
+ for gma in gmaParasol :
+ if gma not in self.discretParasol :
+ if debug: print gma
+ if debug: print self.discretParasol.keys()
+ raise 'Discret non defini'
+ vale = self.discretParasol[gma]
+ epx[MODULE].append('SUPPORT')
+ epx[MODULE].append(6*' '+'KX %g KY %g KZ %g'%(vale[0],vale[1],vale[2]))
+ epx[MODULE].append(6*' '+'KRX %g KRY %g KRZ %g'%(vale[3],vale[4],vale[5]))
+ for cle_fonc_parasol in dic_fonc_parasol.keys() :
+ epx[MODULE].append(6*' ' + '%s %i' %(cle_fonc_parasol,dic_fonc_parasol[cle_fonc_parasol]) )
+ epx[MODULE].append(6*' '+'LECT %s TERM'%gma)
+ group_union += '%s '%gma
+ if len(gmaParasol) > 0 :
+ epx['MODELE'].append(5*' ' + 'APPU ' + group_union)
+
+ # concept_maillage = self.reupere_structure(self.MODELE,'MAILLAGE')
+ # DEFI_GROUP(reuse = concept_maillage,
+ # MAILLAGE = concept_maillage,
+ # CREA_GROUP_NO = _F(GROUP_MA = gmaParasol),
+ # );
+
+
+
+ # traduire les rigi_parasol
+ if list_rigi_parasol :
+ # changement de module parce que les supports issus de RIGI_PARASOL doivent etre imprimes apres les materiaux
+ # fichiers_parasol = []
+ # cles_oblig = ['UNITE_EUROPLEXUS','GROUP_MA_POI1']
+ # for elem in list_rigi_parasol:
+ # elem_cara = elem['CARA']
+ # if elem_cara == 'K_TR_D_N':
+ # for cle_test in cles_oblig:
+ # if not elem.has_key(cle_test):
+ # pass
+ # unite = elem['UNITE_EUROPLEXUS']
+ # fichier = 'fort.%i' %unite
+ # if fichier not in fichiers_parasol : fichiers_parasol.append(fichier)
+ # else :
+ # pass
+ # Lecture des valeurs de rigidites generees par aster a partir des rigidites globales definis dans PARA_RIGISOL
+ # ressorts = []
+ # for fichier in fichiers_parasol :
+ # ressorts.extend(self.lire_fichier(fichier))
+ ressorts = self.CARA_ELEM.toEPX()
+ # Creer un maillage qui, pour chaque noeud de l'interface utilisee dans rigi_parsol, asscocie un group_ma asscie
+ # parce que on n'a pas les memes numeros des noeuds dans Europlexus
+ crea_poi1 = []
+ dic_gma = {}
+ igr = -1
+ # Liste des group_ma associes au noeuds ou le RIGI_PARSOL a ete applique
+ groups_parasol = []
+
+ for noeud in ressorts.keys() :
+ # noeud = ressor[0]
+ if not dic_gma.has_key(noeud):
+ igr += 1
+ group_ma = 'SUP%i' %igr
+ dic_gma[noeud] = group_ma
+ groups_parasol.append(group_ma)
+ crea_poi1.append(_F(NOEUD=noeud,NOM_GROUP_MA=group_ma))
+
+ # ATTENTION : a deplacer
+ # crea_maillage a faire de facon centraliser pour RIGI_PARASOL et le POST-TRAITEMENT ailleurs
+ courbe_fact = self.COURBE
+ if courbe_fact is None: courbe_fact = []
+ lnoeuds=sets.Set([])
+ lmailles=sets.Set([])
+ dicma=[]
+ for courbe in courbe_fact :
+ if courbe['GROUP_NO'] != None :
+ noeuds = courbe['GROUP_NO']
+ if type(noeuds) == tuple :
+ for el in noeuds :
+ lnoeuds.add(el)
+ else :
+ lnoeuds.add(noeuds)
+ if courbe['GROUP_MA'] != None :
+ mailles = courbe['GROUP_MA']
+ if type(mailles) == tuple :
+ for el in mailles :
+ lmailles.add(el)
+ else :
+ lmailles.add(mailles)
+ for maille in lmailles :
+ dicma.append({'NOM' : maille, 'MAILLE' : maille})
+
+ for no in lnoeuds :
+ if not self.MApyt.gno.has_key(no) :
+ crea_poi1.append(_F(NOEUD=no,NOM_GROUP_MA=no))
+
+ __NEW = CREA_MAILLAGE(MAILLAGE=concept_maillage,
+ CREA_POI1 = crea_poi1,
+ );
+ self.NEW_MA = copy.copy(__NEW)
+
+ # Ecriture sous format europlexus
+ # Indices des composantes
+ indices_comps = {'KX':1,'KY':2,'KZ':3,'KRX':4,'KRY':5,'KRZ':6}
+ for noeud in ressorts :
+ valeurs = ressorts[noeud]
+ epx[MODULE].append('SUPPORT')
+ # ecriture des composantes et de leurs valeurs associees
+ for comp in indices_comps.keys():
+ if debug: print len(valeurs),indices_comps[comp]-1
+ vale = valeurs[indices_comps[comp]-1]
+ epx[MODULE].append(3*' ' + '%s %s' %(comp,vale))
+ # caracteristiques des translations et des rotations
+ for cle_fonc_parasol in dic_fonc_parasol.keys() :
+ epx[MODULE].append(3*' ' + '%s %i' %(cle_fonc_parasol,dic_fonc_parasol[cle_fonc_parasol]) )
+
+ # ecriture du group_ma associe
+ # noeud = ressor[0]
+ group_ma = dic_gma[noeud]
+ epx[MODULE].append(3*' ' + 'LECT %s TERM' %group_ma)
+
+ epx[MODULE].append('\n')
+
+ group_union = 'PARASOL'
+ dicma.append({'NOM' : group_union, 'UNION' : groups_parasol})
+ __NEW = DEFI_GROUP(reuse = __NEW,
+ MAILLAGE = __NEW,
+ CREA_GROUP_MA = dicma
+ )
+
+ # Mettre a jour le module modele qd les ressots existent
+ epx['MODELE'].append(5*' ' + 'APPU ' + group_union)
+ # Fermer le module modele dans tous les cas
+ self.multidomaine = 0
+ listInterfaces = self.INTERFACES
+ self.gmaInterfaces=[]
+ if listInterfaces :
+ i=0
+ self.multidomaine = 1
+ for interface in listInterfaces :
+ Lgma1 = self.setlist(interface['GROUP_MA_1'])
+ Lgma2 = self.setlist(interface['GROUP_MA_2'])
+ self.gmaInterfaces.extend(Lgma1)
+ self.gmaInterfaces.extend(Lgma2)
+ for gma in Lgma1 :
+ if i==0 :
+ epx['MODELE'].append(5*' ' + 'CL3L' + 2*' ' + gma)
+ else :
+ epx['MODELE'].append(11*' ' + gma)
+ for gma in Lgma2 :
+ epx['MODELE'].append(11*' ' + gma)
+ i+=1
+ epx['MODELE'].append('TERM')
+ epx['MODELE'].append('\n')
+
+ if self.gmaInterfaces :
+ epx['CHAM_MATER'].append('FANTOME 0. LECT')
+ for gma in self.gmaInterfaces :
+ epx['CHAM_MATER'].append(15*' '+'%s'%gma)
+ epx['CHAM_MATER'].append(' TERM')
+ epx['CHAM_MATER'].append('\n')
+
+
+ # DEFINITION REPERES ORTHOTROPIE QUI DOIT ETRE APRES LES SUPPORTS
+ for gma in self.gmaGLRC :
+ if gma not in self.dicOrthotropie :
+ raise "Erreur : %s non affecte par un repere d'orthotropie : ajouter le mot-cle 'VECTEUR' dans AFFE_CARA_ELEM"%gma
+ vale = self.dicOrthotropie[gma]
+ epx[MODULE].append('COMP ORTS %g %g %g'%(vale[0],vale[1],vale[2]))
+ epx[MODULE].append(3*' '+'LECT')
+ epx[MODULE].append(7*' '+'%s'%gma)
+ epx[MODULE].append(3*' '+'TERM')
+
+ epx[MODULE].append('\n')
+
+#-----------------------------------------------------------------------
+ def get_FONC_PARASOL(self,list_rigi_parasol=None) :
+
+ epx = self.epx
+
+ MODULE = 'FONC_PARASOL'
+ if list_rigi_parasol is not None :
+ if self.FONC_PARASOL is None : UTMESS('F','PLEXUS_12')
+ # else : return None
+
+ epx[MODULE] = ['*--DEFINITIONS DES FONCTIONS']
+
+ # Entete de la commande europlexus
+ epx[MODULE].append('FONC')
+
+ # Cles de FONC_PARASOL dans l'ordre
+ cles = ['NFKT','NFKR']
+ # Dictionnaire faisant la correspondance entre la fonction et son numero europlexus
+ dic_fonc = {}
+ try :
+ ifonc = self.ifonc
+ if debug: print 'self.ifonc = %s'%ifonc
+ except :
+ self.ifonc=0
+ ifonc = self.ifonc
+ if debug: print 'ifonc = %s'%ifonc
+ if epx.has_key('FONC_MATER') :
+ epx[MODULE].extend(epx['FONC_MATER'])
+ for cle in cles:
+ ifonc += 1
+ dic_fonc[cle] = ifonc
+ fonction = self.get_motcle(self.FONC_PARASOL,cle,code_mess='A')
+ (temps,valeurs) = fonction.Valeurs()
+ # imprimer les valeurs de la table
+ epx[MODULE].append(5*' ' +'NOPA %i TABLE %i' %(ifonc,len(temps)) )
+ for ival in range(len(temps)):
+ epx[MODULE].append(17*' ' +'%g %g' %(temps[ival],valeurs[ival]))
+ self.ifonc = ifonc
+ self.dic_fonc = dic_fonc
+ epx[MODULE].append('\n')
+ return dic_fonc
+
+#-----------------------------------------------------------------------
+ def export_CHAM_MATER(self):
+
+ epx = self.epx
+
+ # CLe identifiant
+ MODULE = 'CHAM_MATER'
+
+ epx[MODULE] = ['*--DEFINITION DES MATERIAUX']
+
+ # Entete de la commande Europlexus courante
+ epx[MODULE].append('MATERIAUX')
+
+ # Recuperer la structure sous le mot_cle facteur AFFE de AFFE_MATER
+ affe_mater = self.reupere_structure(self.CHAM_MATER,'AFFE')
+ affe_mater = self.setlist(affe_mater)
+
+ # Dictionnaire stoquant les caracteristiques mecaniques et les group_ma associe a chaque materiau
+ dic_mater = {}
+ typMat = {}
+ # GLRC impose de définir l'orientation : on stocke dans gmaGLRC les GMA dont il faudra retrouver l'orientation dans MODI_MAILLAGE/ORIE_NORM_COQUE
+ self.gmaGLRC = []
+ epx['FONC_MATER'] = []
+ ref_fonc=[]
+ for affe in affe_mater :
+ # Recuperer le concept du materiau defini par DEFI_MATERIAU
+ concept_mater = affe['MATER']
+ # Recuperer le nom du materiau
+ nom_mater = concept_mater.get_name()
+ # Recuperer le group_ma concerne
+ group_ma = self.get_group_ma(affe)
+ if debug: print 'type(group_ma) = %s'%type(group_ma)
+ if not dic_mater.has_key(nom_mater):
+ dic_mater[nom_mater] = {'GROUP_MA':[]}
+ # Recuperer les caracteristiques elastiques du materiau
+ elas = self.reupere_structure(concept_mater,'ELAS')
+ if elas :
+ typMat[nom_mater] = 'ELAS'
+ for car in ['E','RHO','NU']:
+ dic_mater[nom_mater][car] = elas[car]
+ for car in ['AMOR_ALPHA','AMOR_BETA'] :
+ if elas.has_key(car) :
+ dic_mater[nom_mater][car] = elas[car]
+ else :
+ dic_mater[nom_mater][car] = None
+ beton = self.reupere_structure(concept_mater,'BETON')
+ if beton :
+ typMat[nom_mater] = 'GLRC'
+ self.gmaGLRC.extend(group_ma)
+ dic_mater[nom_mater]['LINER']=[]
+ dic_mater[nom_mater]['NAPPE']=[]
+ materBeton = beton['MATER']
+ elasBeton = self.reupere_structure(materBeton,'ELAS')
+ dic_mater[nom_mater]['BETON']={}
+ for car in ['E','RHO','NU']:
+ dic_mater[nom_mater]['BETON'][car] = self.get_motcle(elasBeton,car)
+ for car in ['AMOR_ALPHA','AMOR_BETA']:
+ dic_mater[nom_mater]['BETON'][car] = self.get_motcle(elasBeton,car,None)
+ ecroBeton = self.reupere_structure(materBeton,'BETON_ECRO_LINE')
+ for car in ['SYT','SYC']:
+ dic_mater[nom_mater]['BETON'][car] = self.get_motcle(ecroBeton,car,None)
+ for car in ['EPAIS','GAMMA','QP1','QP2','C1N1','C1N2','C1N3','C2N1','C2N2','C2N3','C1M1','C1M2','C1M3','C2M1','C2M2','C2M3'] :
+ dic_mater[nom_mater]['BETON'][car] = self.get_motcle(beton,car)
+ for car in ['OMT','EAT','BT1','BT2'] :
+ dic_mater[nom_mater]['BETON'][car] = self.get_motcle(beton,car,None)
+ for car in ['MP1X','MP1Y','MP2X','MP2Y'] :
+ car_temp = self.get_motcle(beton,car,None)
+ if debug: print 'type(car_temp) = %s'%type(car_temp)
+ dic_mater[nom_mater]['BETON'][car] = None
+ if car_temp :
+ if type(car_temp) == float :
+ dic_mater[nom_mater]['BETON'][car] = car_temp
+ else :
+ if debug: print dir(car_temp)
+ try :
+ ifonc = self.ifonc
+ except :
+ self.ifonc=0
+ ifonc = self.ifonc
+ ifonc += 1
+ val = car_temp.Valeurs()
+ x = val[:len(val):2]
+ y = val[1:len(val):2]
+ # imprimer les valeurs de la table
+ epx['FONC_MATER'].append(5*' ' +'%i LSQU 2 TABLE %i' %(ifonc,len(x)) )
+ for ival in range(len(x)):
+ epx['FONC_MATER'].append(17*' ' +'%g %g' %(x[ival],y[ival]))
+ dic_mater[nom_mater]['BETON'][car] = 'FONC %i'%ifonc
+ self.ifonc=ifonc
+
+
+ cable = self.reupere_structure(concept_mater,'CABLE_PREC')
+ if cable :
+ materCable = cable['MATER']
+ elasCable = self.reupere_structure(materCable,'ELAS')
+ ecroCable = self.reupere_structure(materCable,'ECRO_LINE')
+ dic_mater[nom_mater]['CABLE']={}
+ for car in ['E','NU']:
+ dic_mater[nom_mater]['CABLE'][car] = elasCable[car]
+ for car in ['SY']:
+ dic_mater[nom_mater]['CABLE'][car] = ecroCable[car]
+ for car in ['OMX','OMY','RX','RY','PREX','PREY'] :
+ dic_mater[nom_mater]['CABLE'][car] = cable[car]
+ Lnappes = self.setlist(self.reupere_structure(concept_mater,'NAPPE'))
+ if Lnappes :
+ for nappe in Lnappes :
+ dic_tmp = {}
+ materNappe = nappe['MATER']
+ elasNappe = self.reupere_structure(materNappe,'ELAS')
+ ecroNappe = self.reupere_structure(materNappe,'ECRO_LINE')
+ for car in ['E','NU']:
+ dic_tmp[car] = elasNappe[car]
+ for car in ['SY']:
+ if ecroNappe :
+ dic_tmp[car] = ecroNappe[car]
+ else :
+ dic_tmp[car] = None
+ for car in ['OMX','OMY','RX','RY'] :
+ dic_tmp[car] = nappe[car]
+ for car in ['FS',] :
+ if nappe.has_key(car) :
+ dic_tmp[car] = nappe[car]
+ else :
+ dic_tmp[car] = None
+ dic_mater[nom_mater]['NAPPE'].append(dic_tmp)
+ Lliners = self.setlist(self.reupere_structure(concept_mater,'LINER'))
+ if Lliners :
+ for liner in Lliners :
+ dic_tmp = {}
+ materLiner = liner['MATER']
+ elasLiner = self.reupere_structure(materLiner,'ELAS')
+ ecroLiner = self.reupere_structure(materLiner,'ECRO_LINE')
+ for car in ['E','NU']:
+ dic_tmp[car] = elasLiner[car]
+ for car in ['SY']:
+ dic_tmp[car] = ecroLiner[car]
+ for car in ['OML','RLR'] :
+ dic_tmp[car] = liner[car]
+ dic_mater[nom_mater]['LINER'].append(dic_tmp)
+
+
+ if debug: print 'MATER = %s \n type = %s \n dic = %s'%(nom_mater,typMat, dic_mater[nom_mater])
+ dic_mater[nom_mater]['GROUP_MA'].extend(group_ma)
+
+ # if gmaGLRC :
+ # concept_maillage = self.reupere_structure(self.MODELE,'MAILLAGE')
+ # if debug: print 'ETAPES MAILLAGES'
+ # if debug: print dir(concept_maillage)
+ # if debug: print concept_maillage.executed
+ # if debug: print concept_maillage.etape
+ # if debug: print dir(concept_maillage.etape)
+ # if debug: print concept_maillage.etape.get_liste_etapes()
+ # if debug: print concept_maillage.etape.valeur
+
+
+ # Impression au format Europlexus
+
+ for nom_mater in dic_mater.keys():
+ epx[MODULE].append('*--MATERIAU %s' %nom_mater)
+ # mot cle indicant qu'il s'agit des caracteristiques lineaires du materiau
+ if typMat[nom_mater] == 'ELAS' :
+ dic_corresp = {'E':'YOUNG','NU':'NU','RHO':'RO'}
+ dic_corresp2 ={'AMOR_ALPHA':'KRAY','AMOR_BETA':'MRAY'}
+ epx[MODULE].append('LINE')
+ for car_aster in dic_corresp.keys():
+ vale = dic_mater[nom_mater][car_aster]
+ car_epx = dic_corresp[car_aster]
+ if vale is not None :
+ epx[MODULE].append('%s %g' %(car_epx,vale))
+ for car_aster in dic_corresp2.keys():
+ vale = dic_mater[nom_mater][car_aster]
+ car_epx = dic_corresp2[car_aster]
+ if vale is not None :
+ epx[MODULE].append('%s %g' %(car_epx,vale))
+ else : #GLRC
+ dic_corres1 = {'RHO':'RO','EPAIS':'H','E':'EB','NU':'NUB'}
+ dic_corresNapp = {'E' : 'EA','SY':'FY','OMX':'OMX','OMY':'OMY','RX':'RX','RY':'RY','FS':'FS'}
+ dic_corresPrec = {'E' : 'EA','SY':'FY','OMX':'OMX','OMY':'OMY','RX':'RX','RY':'RY'}
+ dic_corresLinr = {'E' : 'EA','SY':'FY','OML':'OMLR','NU':'NULR','RLR':'RLR'}
+ dic_corres2 = {'OMT' : 'OMT','EAT':'EAT','BT1':'BT1','BT2':'BT2','SYT' : 'FT','GAMMA':'GAMM','QP1':'QP1','QP2':'QP2','C1N1':'C1N1','C1N2':'C1N2','C1N3':'C1N3','C2N1':'C2N1','C2N2':'C2N2','C2N3':'C2N3','C1M1':'C1M1','C1M2':'C1M2','C1M3':'C1M3','C2M1':'C2M1','C2M2':'C2M2','C2M3':'C2M3','SYC':'FC'}
+ dic_corres2b = {'MP1X':'MP1X','MP2X':'MP2X','MP1Y':'MP1Y','MP2Y':'MP2Y',}
+ dic_corres3 = {'PREX' : 'PREX', 'PREY' : 'PREY'}
+ dic_corres4 = {'AMOR_ALPHA':'KRAY','AMOR_BETA':'MRAY'}
+ epx[MODULE].append('GLRC DAMA')
+ for car_aster in dic_corres1.keys():
+ vale = dic_mater[nom_mater]['BETON'][car_aster]
+ car_epx = dic_corres1[car_aster]
+ if vale is not None :
+ epx[MODULE].append('%s %g' %(car_epx,vale))
+ nlit = len(dic_mater[nom_mater]['NAPPE'])+len(dic_mater[nom_mater]['LINER'])
+ if dic_mater[nom_mater].has_key('CABLE') :
+ nlit+=1
+ if nlit :
+ epx[MODULE].append('%s %g' %('NLIT',nlit))
+ for nappe in dic_mater[nom_mater]['NAPPE'] :
+ epx[MODULE].append('NAPP')
+ for car_aster in dic_corresNapp.keys():
+ if nappe.has_key(car_aster) :
+ vale = nappe[car_aster]
+ car_epx = dic_corresNapp[car_aster]
+ if vale is not None:
+ epx[MODULE].append('%s %g' %(car_epx,vale))
+ if dic_mater[nom_mater].has_key('CABLE') :
+ epx[MODULE].append('PREC')
+ for car_aster in dic_corresPrec.keys():
+ vale = dic_mater[nom_mater]['CABLE'][car_aster]
+ car_epx = dic_corresPrec[car_aster]
+ if vale is not None :
+ epx[MODULE].append('%s %g' %(car_epx,vale))
+ for liner in dic_mater[nom_mater]['LINER'] :
+ epx[MODULE].append('LINR')
+ for car_aster in dic_corresLinr.keys():
+ vale = liner[car_aster]
+ car_epx = dic_corresLinr[car_aster]
+ if vale is not None :
+ epx[MODULE].append('%s %g' %(car_epx,vale))
+ for car_aster in dic_corres2.keys():
+ vale = dic_mater[nom_mater]['BETON'][car_aster]
+ car_epx = dic_corres2[car_aster]
+ if vale is not None :
+ if type(vale) == float :
+ epx[MODULE].append('%s %g' %(car_epx,vale))
+ else :
+ epx[MODULE].append('%s %s' %(car_epx,vale))
+ for car_aster in dic_corres2b.keys():
+ vale = dic_mater[nom_mater]['BETON'][car_aster]
+ car_epx = dic_corres2b[car_aster]
+ if vale is not None :
+ if type(vale) == float :
+ epx[MODULE].append('%s %g' %(car_epx,vale))
+ else :
+ epx[MODULE].append('%s %s' %(car_epx,vale))
+ if dic_mater[nom_mater].has_key('CABLE') :
+ for car_aster in dic_corres3.keys():
+ vale = dic_mater[nom_mater]['CABLE'][car_aster]
+ car_epx = dic_corres3[car_aster]
+ if vale is not None :
+ epx[MODULE].append('%s %g' %(car_epx,vale))
+ for car_aster in dic_corres4.keys():
+ vale = dic_mater[nom_mater]['BETON'][car_aster]
+ car_epx = dic_corres4[car_aster]
+ if vale is not None :
+ epx[MODULE].append('%s %g' %(car_epx,vale))
+
+ # ajouter les group_ma qui ont ete affecte par ces caracteristiques
+ epx[MODULE].append(3*' '+'LECT')
+ for group in dic_mater[nom_mater]['GROUP_MA']:
+ epx[MODULE].append(7*' '+group)
+ epx[MODULE].append(3*' '+'TERM')
+
+
+ return epx
+
+#-----------------------------------------------------------------------
+ def export_EXCIT(self):
+
+ epx = self.epx
+
+ # CLe identifiant
+ MODULE = 'EXCIT'
+
+ epx[MODULE] = ['*--DEFINITION DES CHARGEMENTS et DES CONDITIONS AUX LIMITES']
+
+ # Entete de la commande Europlexus courante
+ #epx[MODULE].append('CHARGEMENT')
+
+ excit_list = self.setlist(self.EXCIT)
+
+ # Traduction de ddl_impo
+ dic_ddl_impo = {'DX':1,'DY':2,'DZ':3,'DRZ':4,'DRY':5,'DRZ':6}
+
+ # Initialisation des variables decrivant le chargement et les conditions de blocage
+ CHARGEMENT = []
+ LIAISON = []
+
+ for excit in excit_list:
+ concept_charge = excit['CHARGE']
+ pres_rep_list = self.reupere_structure(concept_charge,'PRES_REP')
+ ddl_impo_list = self.reupere_structure(concept_charge,'DDL_IMPO')
+ pres_rep_list = self.setlist(pres_rep_list)
+ ddl_impo_list = self.setlist(ddl_impo_list)
+ # PRES_REP
+ if pres_rep_list :
+ if len(CHARGEMENT) == 0 : CHARGEMENT = ['CHARGEMENT']
+ fonction = self.get_motcle(excit,'FONC_MULT',code_mess='A')
+ if fonction is None:
+ UTMESS('F','PLEXUS_7')
+ (temps,valeurs) = fonction.Valeurs()
+ for pres_rep in pres_rep_list :
+ pression = pres_rep['PRES']
+ group_ma = self.get_group_ma(pres_rep)
+
+ CHARGEMENT.append(2*' ' + '1 FACTO 2')
+ CHARGEMENT.append(6*' ' +'PRESS COQU %g' %pression)
+ # ajouter les group_ma qui ont ete affecte par ces caracteristiques
+ CHARGEMENT.append(6*' '+'LECT')
+ for group in group_ma:
+ CHARGEMENT.append(10*' '+group)
+ CHARGEMENT.append(6*' '+'TERM')
+ # imprimer les valeurs de la table
+ CHARGEMENT.append(6*' ' +'TABLE %i' %len(temps))
+ for ival in range(len(temps)):
+ CHARGEMENT.append(10*' ' +'%g %g' %(temps[ival],valeurs[ival]))
+ # DDL_IMPO
+ #if debug: print 'ddl_impo_list',ddl_impo_list
+ if ddl_impo_list :
+ #UTMESS('A','PLEXUS_8')
+ if len(LIAISON) == 0 : LIAISON = ['LIAISON']
+ for ddl_impo in ddl_impo_list:
+ blocage = ''
+ for cle in dic_ddl_impo.keys() :
+ vale = self.get_motcle(ddl_impo,cle,code_mess='None')
+ if vale is not None:
+ if vale != 0 : UTMESS('F','PLEXUS_13')
+ else :
+ blocage += `dic_ddl_impo[cle]`
+ # recupere les entites geometriques
+ for entite in ['GROUP_MA','GROUP_NO'] :
+ group_ma = self.get_motcle(ddl_impo,entite,code_mess='None')
+ if group_ma is not None :
+ group_ma = self.setlist(group_ma);break
+ LIAISON.append(' '*2 + 'BLOQ %s' %blocage)
+ # ajouter les group_ma qui ont ete affecte par ces caracteristiques
+ LIAISON.append(6*' '+'LECT')
+ for group in group_ma:
+ LIAISON.append(10*' '+group)
+ LIAISON.append(6*' '+'TERM')
+
+ if not ddl_impo_list and not pres_rep_list :
+ UTMESS('F','PLEXUS_9')
+
+ # Transmettre les commandes a la liste global epx
+ for var in [CHARGEMENT,LIAISON] :
+ if len(var) > 0 :
+ epx[MODULE].append('\n')
+ for ligne in var : epx[MODULE].append(ligne)
+
+ epx[MODULE].append('\n')
+
+#-----------------------------------------------------------------------
+ def Correspondance_champ(self):
+
+ # Dictionnaire de passage de champs Aster --> Europlexus
+ dic_champ = {'DEPL':'DEPLACEMENT','VITE':'VITESSE','ACCE':'ACCELERATION',
+ 'SIEF_ELGA':'CONT','EPSI_ELGA':'EPST','VARI_ELGA':'ECRO'}
+
+ # Dictionnaire de passage de composantes Aster --> Europlexus
+ dic_cmp = {}
+ for cham in ['DEPL','VITE','ACCE'] :
+ dic_cmp[cham] = {'DX' : 1,'DY':2,'DZ':3,'DRX':4,'DRY':5,'DRZ':6}
+
+ dic_cmp['SIEF_ELGA'] = {'SIXX':1,'SIYY':2,'SIZZ':3,'SIXY':4,'SIXZ':5,'SIYZ':6,'NXX':1,'NYY':2,'NXY':3,'MXX':4,'MYY':5,'MXY':6,'QX':7,'QY':8}
+ dic_cmp['VARI_ELGA'] = {}
+ for ii in range(1,25):
+ dic_cmp['VARI_ELGA']['V%i'%ii] = ii
+
+ self.dic_champ = dic_champ
+ self.dic_cmp = dic_cmp
+
+
+#-----------------------------------------------------------------------
+ def export_ECRITURE(self):
+
+ epx = self.epx
+
+ self.Correspondance_champ()
+
+ # CLe identifiant
+ MODULE = 'ECRITURE'
+
+ dcles_freq = {'FREQ':'PAS_NBRE', 'TFREQ':'PAS_INST'}
+
+ def get_freq(fact):
+ for cle_freq in dcles_freq.keys():
+# AA vale_freq = self.get_motcle(fact,cle_freq,code_mess=None)
+ vale_freq = self.get_motcle(fact,dcles_freq[cle_freq],code_mess=None)
+ if vale_freq is not None : break
+ return cle_freq,vale_freq
+
+ def get_freq2() :
+ if self.PAS_NBRE_COURBE :
+ return 'FREQ',self.PAS_NBRE_COURBE
+ elif self.PAS_INST_COURBE :
+ return 'TFREQ',self.PAS_INST_COURBE
+ else :
+ raise 'Erreur programmation'
+
+
+ def string2list(var) :
+ if types.TypeType(var) == types.StringType : var = (var,)
+ return var
+
+
+ epx[MODULE] = ['*--ECRITURES DES RESULTATS']
+ epx[MODULE] = ['opti K2GP']
+ # Entete de la commande Europlexus courante
+ epx[MODULE].append('ECRITURE')
+
+
+ # Traitement du mot-cle facteur OBSERVATION (EPX = LISTING)
+# AA listing_fact = self.ECRITURE['LISTING']
+ listing_fact = self.OBSERVATION
+ nom_cham = string2list(listing_fact['NOM_CHAM'])
+
+ cle_freq_listing, vale_freq_listing = get_freq(listing_fact)
+# AA cles_entite = ['POINTS','ELEMEMTS']
+ dcles_entite = {'POINT':'GROUP_NO', 'ELEM':'GROUP_MA'}
+# AA dcles_tout = {'POINTS':'TOUT_GROUP_NO', 'ELEMEMTS':'GROUP_MA'}
+ cles_entite = dcles_entite.keys()
+
+ # Ecriture format Europlexus
+
+ # Ecriture LISTING
+ st = 2*' '
+ for cham_aster in nom_cham:
+ cham_epx = self.dic_champ[cham_aster]
+ st += '%s ' % cham_epx
+ st += ' %s %g' % (cle_freq_listing,vale_freq_listing)
+ st += ' NOPO NOEL'
+ epx[MODULE].append(st)
+ for cle in cles_entite:
+# AA for cle in cles_entite :
+# AA entite_geo = self.get_motcle(listing_fact ,cle, code_mess=None)
+# AA entite_geo = string2list(entite_geo)
+
+ entite_geo = string2list(listing_fact[dcles_entite[cle]])
+ # if listing_fact['TOUT_%s' % dcles_entite[cle]] == 'OUI': epx[MODULE].append(2*' ' +'%s TOUS ' % cle)
+ # elif entite_geo is None: epx[MODULE].append(2*' ' +'NO%s' % cle)
+ # else:
+ # epx[MODULE].append(2*' ' +'%s LECT' %cle)
+ # for group in entite_geo :
+ # epx[MODULE].append(6*' '+group)
+ # epx[MODULE].append(2*' '+'TERM')
+
+# if entite_geo is None :
+# epx[MODULE].append(2*' ' +'NO%s' %cle)
+# elif entite_geo[0] == 'TOUS' :
+# epx[MODULE].append(2*' ' +'%s TOUS ' %cle)
+# else :
+# epx[MODULE].append(2*' ' +'%s LECT' %cle)
+# for group in entite_geo :
+# epx[MODULE].append(6*' '+group)
+# epx[MODULE].append(2*' '+'TERM')
+#
+
+ # Ecriture FICHIER ALICE UTILISE par le mot-cle facteur COURBE
+# AA courbe_fact = self.ECRITURE['COURBE']
+ courbe_fact = self.COURBE
+ if courbe_fact is not None :
+
+ # dcourbe=[]
+ # for j in courbe_fact:
+ # dcourbe.append(j.cree_dict_valeurs(j.mc_liste))
+ # for i in dcourbe[-1].keys():
+ # if dcourbe[-1][i]==None : del dcourbe[-1][i]
+
+ # if debug: print 'dcourbe=', dcourbe
+
+ cle_freq, vale_freq = get_freq2()
+ fichier_alit = self.pwd + self.REPE + os.sep + self.nom_fichiers['ALIT']
+ epx[MODULE].append(2*' ' + "FICH ALIT 11 %s %g" %(cle_freq,vale_freq))
+
+ # Liste les noeuds a postraiter
+ lnoeuds=sets.Set([])
+ lmailles=sets.Set([])
+ for courbe in courbe_fact :
+ if courbe['GROUP_NO'] != None :
+ noeuds = courbe['GROUP_NO']
+ if debug: print type(noeuds)
+ # liste de noeud ou un seul noeud ?
+ if type(noeuds) == tuple :
+ for el in noeuds :
+ lnoeuds.add(el)
+ else :
+ lnoeuds.add(noeuds)
+ elif courbe['GROUP_MA'] != None :
+ mailles = courbe['GROUP_MA']
+ if debug: print type(mailles)
+ # liste de mailles ou une seule maille ?
+ if type(mailles ) == tuple :
+ for el in mailles :
+ lmailles.add(el)
+ else :
+ lmailles.add(mailles)
+ else :
+ raise 'Erreur ni noeud ni maille'
+ # sys.exit()
+ # tables = self.get_motcle(courbe_fact,'TABLE',code_mess='F')
+ # tables = self.setlist(tables)
+
+ # icourbe = 0
+ # for table in tables:
+ # icourbe += 1
+ # noeud = table['NOEUD']
+ # list_noeuds.append(noeud)
+ # Ecriture la liste des noeuds sous format epx
+ if lnoeuds :
+ epx[MODULE].append(4*' ' +'POINTS')
+ epx[MODULE].append(6*' ' +'LECT ')
+ for noeud in lnoeuds :
+ epx[MODULE].append(8*' '+noeud)
+ epx[MODULE].append(6*' '+'TERM')
+ if lmailles :
+ epx[MODULE].append(4*' ' +'ELEM')
+ epx[MODULE].append(6*' ' +'LECT ')
+ for maille in lmailles :
+ epx[MODULE].append(8*' '+maille)
+ epx[MODULE].append(6*' '+'TERM')
+
+
+ # Pas besoin d'elements
+ # epx[MODULE].append(4*' ' + 'NOELEMENTS')
+
+ # Ecriture fichier MED representant les champs aux noeuds et aux points de gauss
+ # Traitement du mot-cle facteur ARCHIVAGE
+# # Traitement du mot-cle facteur CHAMP
+# champ_fact = self.ECRITURE['CHAMP']
+ champ_fact = self.ARCHIVAGE
+ if champ_fact is not None :
+ cle_freq_champ,vale_freq_champ = get_freq(champ_fact)
+ epx[MODULE].append(2*' ' + 'FICHIER MED')
+ # chemin complet du fichier med
+ fichier_med = self.pwd + self.REPE + os.sep + self.nom_fichiers['MED']
+ epx[MODULE].append(2*' ' + "'%s'" %fichier_med)
+ cle_freq,vale_freq = get_freq(champ_fact)
+ epx[MODULE].append(2*' ' + ' %s %g' %(cle_freq_champ,vale_freq_champ))
+
+ # groupes de mailles du modele
+ entite_geo={}
+ entite_geo['ELEM'] = []
+ for model in ['DKT3','Q4GS'] :
+ if model in self.modelisations :
+ entite_geo['ELEM'].extend(self.dic_gma[model])
+ entite_geo['POINT'] = []
+ for model in ['DKT3','Q4GS','POUT'] :
+ if model in self.modelisations :
+ entite_geo['POINT'].extend(self.dic_gma[model])
+ for cle in cles_entite :
+ epx[MODULE].append(2*' ' +'%s LECT' %cle)
+ for group in entite_geo[cle] :
+ epx[MODULE].append(6*' '+group)
+ epx[MODULE].append(2*' '+'TERM')
+
+ # Une ligne de saut
+ epx[MODULE].append('\n')
+
+#-----------------------------------------------------------------------
+
+ def export_POST_COURBE(self):
+
+ # Suite de postraitement permettant d'ecrire des fichiers ASCII
+ # des grandeurs demandees
+
+ # Tester si le mot_cle facteur COURBE a ete renseigne
+# AA courbe_fact = self.ECRITURE['COURBE']
+ courbe_fact = self.COURBE
+ if courbe_fact is None : return
+
+ epx = self.epx
+
+ # Cle identifiant
+ MODULE = 'POST_COURBE'
+
+ # Ecriture fort Europlexus
+ # Entete de la commande courante
+ epx[MODULE] = ['SUITE\n']
+ # epx[MODULE].append("'TITRE'")
+# unite_alit = self.get_motcle(courbe_fact,'UNITE_ALIT',code_mess=None)
+# if debug: print 'unite_alit=', unite_alit
+ if self.UNITE_COURBE: fichier_courbes = os.path.join(self.pwd, 'fort.%s' % str(self.UNITE_COURBE))
+ else: fichier_courbes = self.pwd + self.REPE + os.sep + self.nom_fichiers['PUN']
+ fichier_alit = self.pwd + self.REPE + os.sep + self.nom_fichiers['ALIT']
+ epx[MODULE].append("RESULTAT ALICE TEMPS 11")
+ epx[MODULE].append("OPNF FORMAT 17 '%s'" %fichier_courbes)
+ epx[MODULE].append("SORTIES GRAPHIQUES")
+ # epx[MODULE].append("PERFO '%s'"%fichier_courbes)
+ epx[MODULE].append("AXTEMPS 1. 'TEMPS(s)'")
+
+ # recuperer le mot-cle facteur COURBE
+# AA courbe_fact = self.ECRITURE['COURBE']
+ courbe_fact = self.COURBE
+ # recuperer les mot_cle TABLE
+ # tables = self.get_motcle(courbe_fact,'TABLE',code_mess='F')
+ #tables = self.setlist(tables)
+
+ # Dictionnaire decrivant les legendes des abscisses et ordodonnees des courbes imprimees
+ # et utilisee dans get_tables
+ self.legend_courbes = {}
+ entites_courbe = ['GROUP_NO','GROUP_MA']
+ entite_EPX={'GROUP_NO' : 'NOEUD', 'GROUP_MA' : 'ELEM'}
+ icourbe = 0
+ # for table in tables:
+ lnoeuds = []
+ for table in courbe_fact :
+ for entite_type in entites_courbe :
+ try : entite = table[entite_type]
+ except : entite = None
+ if entite is not None :
+ cham_aster = table['NOM_CHAM']
+ cmp_aster = table['NOM_CMP']
+ cham_epx = self.dic_champ[cham_aster]
+ cmp_epx = self.dic_cmp[cham_aster][cmp_aster]
+ # ylabel = cham_aster + '_' + cmp_aster
+ ylabel = cmp_aster
+ if type(entite) is not tuple : entite = [entite,]
+ for el in entite :
+ icourbe+=1
+ label = ylabel + '_%s'%el
+ if entite_type == 'MAILLE' :
+ label = label+'_%s'%table['NUM_GAUSS']
+ st = "COURBE %i '%s' %s COMP %i "% (icourbe,label,cham_epx,cmp_epx)
+ if entite_type == 'MAILLE' :
+ st=st+"GAUSS %i "%table['NUM_GAUSS']
+ st=st+"%s LECT %s TERM"%(entite_EPX[entite_type],el)
+ if debug: print 'st = %s'%st
+ epx[MODULE].append(st)
+ # epx[MODULE].append("LIST %i AXES 1. '%s'" % (icourbe,ylabel))
+ st = "LIST %s AXES 1. '%s'" % (icourbe,label)
+ if debug: print 'st = %s'%st
+ epx[MODULE].append(st)
+ self.legend_courbes[icourbe] = ['TEMPS',label]
+
+
+
+ # Une ligne de saut
+ epx[MODULE].append('\n')
+
+#-----------------------------------------------------------------------
+ def export_CALCUL(self):
+
+ epx = self.epx
+
+ # CLe identifiant
+ MODULE = 'CALCUL'
+
+ # Entete de la commande Europlexus courante
+ epx[MODULE] = ['*--OPTION DE CALCUL']
+ epx[MODULE].append('')
+ type_discr = self.CALCUL['TYPE_DISCRETISATION']
+
+ epx[MODULE].append('OPTION PAS %s' %type_discr)
+
+ if type_discr == 'AUTO':
+ cstab = self.CALCUL['CSTAB']
+ epx[MODULE].append(7*' ' + 'CSTAB %s' %cstab)
+
+ listInterfaces = self.INTERFACES
+ listDomaines = self.DOMAINES
+ domaineInterfaces = {}
+ if listDomaines :
+ epx[MODULE].append('\n')
+ epx[MODULE].append('*--DEFINITION DES SOUS DOMAINES')
+ epx[MODULE].append('')
+ epx[MODULE].append('STRUCTURE %s'%len(listDomaines))
+ for interface in listInterfaces :
+ Lgma1 = self.setlist(interface['GROUP_MA_1'])
+ Lgma2 = self.setlist(interface['GROUP_MA_2'])
+ idS1 = interface['IDENT_DOMAINE_1']
+ idS2 = interface['IDENT_DOMAINE_2']
+ if not domaineInterfaces.has_key(idS1) :
+ domaineInterfaces[idS1]= []
+ if not domaineInterfaces.has_key(idS2) :
+ domaineInterfaces[idS2]= []
+ domaineInterfaces[idS1].extend(Lgma1)
+ domaineInterfaces[idS2].extend(Lgma2)
+ else :
+ listDomaines = []
+ for domaine in listDomaines :
+ Lgma = self.setlist(domaine['GROUP_MA'])
+ id = domaine['IDENTIFIANT']
+ epx[MODULE].append(3*' '+'DOMA LECT')
+ for gma in Lgma :
+ epx[MODULE].append(12*' '+gma)
+ for gma in domaineInterfaces[id] :
+ epx[MODULE].append(12*' '+gma)
+ epx[MODULE].append(8*' '+'TERM')
+ epx[MODULE].append(8*' '+'IDENTIFIANT %s\n'%id)
+
+
+ if listInterfaces :
+ epx[MODULE].append('')
+ epx[MODULE].append('INTERFACE %s'%len(listInterfaces))
+ else :
+ listInterfaces = []
+ for interface in listInterfaces :
+ Lgma1 = self.setlist(interface['GROUP_MA_1'])
+ Lgma2 = self.setlist(interface['GROUP_MA_2'])
+ idS1 = interface['IDENT_DOMAINE_1']
+ idS2 = interface['IDENT_DOMAINE_2']
+ tole = interface['TOLE']
+ epx[MODULE].append(3*' '+'MORTAR TOLE %g'%tole)
+ epx[MODULE].append(7*' '+'DOMA %s LECT'%idS1)
+ for gma in Lgma1 :
+ epx[MODULE].append(13*' '+gma)
+ epx[MODULE].append(10*' '+'TERM')
+ epx[MODULE].append(7*' '+'DOMA %s LECT'%idS2)
+ for gma in Lgma2 :
+ epx[MODULE].append(13*' '+gma)
+ epx[MODULE].append(10*' '+'TERM')
+
+ epx[MODULE].append('\n')
+ epx[MODULE].append('*--LANCEMENT DE CALCUL')
+ epx[MODULE].append('')
+ calcul = 'CALCUL'
+# AAA cles = ['INST_INIT','PASFIX','INST_FIN','DTMAX']
+ cles = ['INST_INIT','PASFIX','INST_FIN']
+ dcles = {'INST_INIT':'TINI', 'PASFIX':'PASFIX', 'INST_FIN':'TFIN'}
+ for cle in dcles.keys():
+ try : calcul += ' %s %g' %(dcles[cle], self.CALCUL[cle])
+ except : pass
+ # Doit etre mis en entier
+ try : calcul += ' %s %d' %('NMAX',self.CALCUL['NMAX'])
+ except : pass
+ epx[MODULE].append(calcul)
+ epx[MODULE].append('\n')
+ #epx[MODULE].append('FIN')
+
+
+#-----------------------------------------------------------------------
+ def ecrire_fichier(self,):
+
+ fichier = self.REPE + os.sep + self.nom_fichiers['COMMANDE']
+
+ # ordre des modules de definition du modele EPX
+ modules = ['DEBUT','MAILLAGE','DIME','MODELE','CARA_ELEM','FONC_PARASOL','CHAM_MATER','RIGI_PARASOL','EXCIT','ECRITURE','CALCUL','POST_COURBE']
+
+ #les modules MODELE et RIGI_PARASOL doivent etre executes avant MAILLAGE
+ # car le maillage peut etre modifie dans ces modules
+ modules_exe = []
+ modules_exe.extend(modules)
+ modules_exe.remove('MAILLAGE')
+ modules_exe.append('MAILLAGE')
+
+ # Excecution des differentes modules
+ for module in modules_exe:
+ fct = 'export_%s' %module
+ if hasattr(self,fct) :
+ eval('self.'+fct+'()')
+ else :
+ print 'module %s pas encore developpe' %fct
+
+ # Ecriture du fichier texte contenant toutes les commandes Europlexus
+ fd = open(fichier,'w')
+ for module in modules :
+ if self.epx.has_key(module) :
+ for ll in self.epx[module]:
+ if debug: print 'EPX : %s'%ll
+ fd.write('%s\n'%ll)
+ # Fin du fichier de commandes epx
+ fd.write('FIN')
+ fd.close()
+
+#-----------------------------------------------------------------------
+ def get_table(self,icourbe=1,fichier='auto') :
+
+ global table
+
+ if not hasattr(self,'courbes'):
+ if fichier == 'auto' : fichier = self.pwd + self.REPE + os.sep + self.nom_fichiers['PUN']
+ if not os.path.isfile(fichier) : return
+ self.courbes = self.lire_pun(fichier=fichier)
+
+ if not os.path.isfile(fichier) : return
+ if debug: print self.courbes,type(self.courbes)
+ nc = 0
+ para_ordonnee = []
+ dico = []
+ for icourbe in self.courbes :
+ valeurs = self.courbes[icourbe]
+ if debug: print 'icourbe = %s ; valeurs = %s'%(icourbe, valeurs)
+ if nc == 0 :
+ para_abscisse = self.legend_courbes[icourbe][0]
+ vale_abscisse = valeurs[0,:].tolist()
+ assert (len(para_abscisse)<17)
+ dico.append({'TYPE_K':'K16','LISTE_R' : vale_abscisse , 'PARA' : para_abscisse})
+ para_ordonnee = self.legend_courbes[icourbe][1]
+ vale_ordonnee = valeurs[1,:].tolist()
+ assert (len(para_ordonnee)<17)
+ dico.append({'TYPE_K':'K16','LISTE_R' : vale_ordonnee , 'PARA' : para_ordonnee})
+ nc=1
+ else :
+ if ((self.legend_courbes[icourbe][0] == para_abscisse) and (vale_abscisse == valeurs[0,:].tolist())) :
+ para_ordonnee = self.legend_courbes[icourbe][1]
+ vale_ordonnee = valeurs[1,:].tolist()
+ assert (len(para_ordonnee)<17)
+ dico.append({'TYPE_K':'K16','LISTE_R' : vale_ordonnee , 'PARA' : para_ordonnee})
+ else :
+ raise 'Table non compatible'
+
+ table = CREA_TABLE( LISTE =dico
+ );
+
+ if 0 :
+ unite = self.get_unite_libre()
+ unite = 90
+ DEFI_FICHIER(UNITE=unite,ACTION='ASSOCIER');
+
+ IMPR_TABLE(UNITE = unite,
+ FORMAT = 'XMGRACE',
+ TABLE = table,
+ LEGENDE_X = para_abscisse,
+ LEGENDE_Y = para_ordonnee,
+ LEGENDE = 'test'
+ );
+
+ os.system('xmgrace fort.%i' %unite)
+
+ DEFI_FICHIER(UNITE=unite,ACTION='LIBERER');
+
+
+#-----------------------------------------------------------------------
+ def get_resu(self,fichier_med='auto'):
+
+ # Rendre global le resu pour qu'il soit accepte dans self.DeclareOut
+ global resu
+
+ if fichier_med == 'auto' : fichier_med = self.REPE + os.sep + self.nom_fichiers['MED']
+
+ if debug: print fichier_med
+ if not os.path.isfile(fichier_med) :
+ print "Pas de fichier MED !"
+ return
+
+ # Format med des champs depl, vite et acce
+ format_med =[_F(NOM_CHAM_MED='CHAMP___DEPLACEMENT___001',
+ NOM_CMP=('DX','DY','DZ','DRX','DRY','DRZ'),
+ NOM_CMP_MED=('UX','UY','UZ','RX','RY','RZ'),
+ NOM_CHAM ='DEPL' ),
+ _F(NOM_CHAM_MED='CHAMP___VITESSE___001',
+ NOM_CMP=('DX','DY','DZ','DRX','DRY','DRZ'),
+ NOM_CMP_MED=('VX','VY','VZ','RX','RY','RZ'),
+ NOM_CHAM ='VITE' ),
+ _F(NOM_CHAM_MED='CHAMP___ACCELERATION___001',
+ NOM_CMP=('DX','DY','DZ','DRX','DRY','DRZ'),
+ NOM_CMP_MED=('GX','GY','GZ','RX','RY','RZ'),
+ NOM_CHAM ='ACCE' ),
+ ]
+
+ # Dicionnaire permettant de faire la correspondance des champs aux pts de gauss entre le med de europlexus et aster
+ dic_cmp_gauss = {}
+
+ dic_cmp_gauss['CONTRAINTE'] = {'DKT3': {'NOM_CMP' : ('SIXX','SIYY','SIZZ','SIXY','SIXZ','SIYZ'),
+ 'NOM_CMP_MED' : ('SIG1','SIG2','SIG3','SIG4','SIG5','SIG6',),},
+ 'Q4GS': {'NOM_CMP' : ('NXX','NYY','NXY','MXX','MYY','MXY','QX','QY'),
+ 'NOM_CMP_MED' : ('SIG1','SIG2','SIG3','SIG4','SIG5','SIG6','SIG7','SIG8'),},
+ 'POUT' : {}
+
+ }
+
+ dic_cmp_gauss['DEFORMATION'] = {'DKT3': {'NOM_CMP' : ('EPXX','EPYY','EPZZ','EPXY','EPXZ','EPYZ'),
+ 'NOM_CMP_MED' : ('EPS1','EPS2','EPS3','EPS4','EPS5','EPS6',),},
+ 'Q4GS': {'NOM_CMP' : ('EXX','EYY','EXY','KXX','KYY','KXY','GAX','GAY'),
+ 'NOM_CMP_MED' : ('EPS1','EPS2','EPS3','EPS4','EPS5','EPS6','EPS7','EPS8'),},
+ 'POUT' : {}
+
+ }
+
+ dic_cmp_gauss['ECROUISSAGE'] = {'DKT3': {'NOM_CMP' : ('V1','V2'),
+ 'NOM_CMP_MED' : ('VAR8','VAR9'),},
+ 'Q4GS' : {'NOM_CMP' : ('V1','V2'),
+ 'NOM_CMP_MED' : ('VAR8','VAR9'),},
+ 'POUT' : {}
+
+ }
+
+ # Dictionnaire permettant de traduire le champ epx en med au nom asscie dans aster
+# AA epx2aster = {'CONTRAINTE':'SIEF_ELGA','ECROUISSAGE':'VARI_ELGA'}
+ epx2aster = {'CONTRAINTE':'SIEF_ELGA','DEFORMATION':'EPSI_ELGA_DEPL','ECROUISSAGE':'VARI_ELGA'}
+
+# AA : desactive pour le moment
+# # Enrichir la liste format_med par les champs aux pts de gauss
+# imode = 0
+# if debug: print 'self.modelisations',self.modelisations
+# for modelisation in self.modelisations :
+# #if modelisation in ['Q4GS','DKT3'] :
+# imode += 1
+# numero = string.replace('%3.i' %imode,' ','0')
+# for champ in dic_cmp_gauss.keys():
+# if len(dic_cmp_gauss[champ][modelisation]) > 0 :
+# nom_cham_med = 'CHAMP___'+ champ + (13-len(champ))*'_' + numero
+# nom_cham = epx2aster[champ]
+# nom_cmp = dic_cmp_gauss[champ][modelisation]['NOM_CMP']
+# nom_cmp_med = dic_cmp_gauss[champ][modelisation]['NOM_CMP_MED']
+# # ajouer a la list format_med
+# format_med.append(_F(NOM_CHAM_MED=nom_cham_med,NOM_CMP=nom_cmp,
+# NOM_CMP_MED=nom_cmp_med,NOM_CHAM=nom_cham)
+# )
+
+ # Lire le fichier med avec les options choisies dans la liste format_med
+ unite = self.get_unite_libre()
+ DEFI_FICHIER(UNITE=unite,ACTION='LIBERER');
+ fort = 'fort.%i' %unite
+ if os.path.isfile(fort) : os.remove(fort)
+
+ os.symlink(fichier_med,fort)
+
+ # Regeneration des mots-cles EXCIT passés en argument de la macro
+ dExcit=[]
+ for j in self.EXCIT :
+ dExcit.append(j.cree_dict_valeurs(j.mc_liste))
+ for i in dExcit[-1].keys():
+ if dExcit[-1][i]==None : del dExcit[-1][i]
+ resu = LIRE_RESU(TYPE_RESU='EVOL_NOLI',
+# VERI_ELGA='NON',
+ FORMAT='MED',
+ MODELE=self.NEW_MODELE,
+ FORMAT_MED=format_med,
+ UNITE=unite,
+ CHAM_MATER=self.CHAM_MATER,
+ CARA_ELEM=self.CARA_ELEM,
+ TOUT_ORDRE='OUI',
+ EXCIT=dExcit,
+ INFO=self.INFO,
+ );
+
+ __EPN = CREA_CHAMP(
+ INFO = self.INFO,
+ TYPE_CHAM = 'ELGA_NEUT_R',
+ OPERATION = 'AFFE',
+ MODELE = self.NEW_MODELE,
+ PROL_ZERO = 'OUI',
+ AFFE = self.listEpais,
+ )
+ __EPN2 = CREA_CHAMP(
+ INFO = self.INFO,
+ TYPE_CHAM = 'ELGA_NEUT_R',
+ OPERATION = 'AFFE',
+ MODELE = self.NEW_MODELE,
+ PROL_ZERO = 'OUI',
+ AFFE = self.listEpais2,
+ )
+ __UNN = CREA_CHAMP(
+ INFO = self.INFO,
+ TYPE_CHAM = 'ELGA_NEUT_R',
+ OPERATION = 'AFFE',
+ MODELE = self.NEW_MODELE,
+ PROL_ZERO = 'OUI',
+ AFFE = _F(VALE=(1.,1.), TOUT='OUI', NOM_CMP=('X21','X22')),
+ )
+ __FONC1 = FORMULE(VALE='X1*X21',NOM_PARA=('X1','X21'))
+ __FONC2 = FORMULE(VALE='X2*X21',NOM_PARA=('X2','X21'))
+ __FONC3 = FORMULE(VALE='X3*X21',NOM_PARA=('X3','X21'))
+ __FONC4 = FORMULE(VALE='X4*X22',NOM_PARA=('X4','X22'))
+ __FONC5 = FORMULE(VALE='X5*X22',NOM_PARA=('X5','X22'))
+ __FONC6 = FORMULE(VALE='X6*X22',NOM_PARA=('X6','X22'))
+ __FONC7 = FORMULE(VALE='X7*X21',NOM_PARA=('X7','X21'))
+ __FONC8 = FORMULE(VALE='X8*X21',NOM_PARA=('X8','X21'))
+ __FONC11 = FORMULE(VALE='X11*X21',NOM_PARA=('X11','X21'))
+ __FONC12 = FORMULE(VALE='X12*X21',NOM_PARA=('X12','X21'))
+ __FONC13 = FORMULE(VALE='X13*X21',NOM_PARA=('X13','X21'))
+ __FONC14 = FORMULE(VALE='X14*X22',NOM_PARA=('X14','X22'))
+ __FONC15 = FORMULE(VALE='X15*X22',NOM_PARA=('X15','X22'))
+ __FONC16 = FORMULE(VALE='X16*X22',NOM_PARA=('X16','X22'))
+ __FONC17 = FORMULE(VALE='X17*X21',NOM_PARA=('X17','X21'))
+ __FONC18 = FORMULE(VALE='X18*X21',NOM_PARA=('X18','X21'))
+
+ __FONCC = CREA_CHAMP(
+ INFO = self.INFO,
+ TYPE_CHAM = 'ELGA_NEUT_F',
+ OPERATION = 'AFFE',
+ MODELE = self.NEW_MODELE,
+ PROL_ZERO = 'OUI',
+ AFFE = _F(
+ TOUT = 'OUI',
+ NOM_CMP = ('X1','X2','X3','X4','X5','X6','X7','X8','X11','X12','X13','X14','X15','X16','X17','X18'),
+ VALE_F = (__FONC1,__FONC2,__FONC3,__FONC4,__FONC5,__FONC6,__FONC7,__FONC8,__FONC11,__FONC12,__FONC13,
+ __FONC14,__FONC15,__FONC16,__FONC17,__FONC18)),
+ )
+ __FONCC2 = CREA_CHAMP(
+ INFO = self.INFO,
+ TYPE_CHAM = 'ELGA_NEUT_F',
+ OPERATION = 'AFFE',
+ MODELE = self.NEW_MODELE,
+ PROL_ZERO = 'OUI',
+ AFFE = _F(
+ TOUT = 'OUI',
+ NOM_CMP = ('X1','X2'),
+ VALE_F = (__FONC1,__FONC2)),
+ )
+ listEffg = []
+ i=0
+ listType=[]
+ __SIG11 = [None]*10
+ __SIG21 = [None]*10
+
+ # Pour masquer certaines alarmes
+ from Utilitai.Utmess import MasquerAlarme, RetablirAlarme
+ MasquerAlarme('MED_83')
+ MasquerAlarme('MED_98')
+
+ while 1:
+ # index=1
+ # pas = self.ARCHIVAGE['PAS_NBRE']
+ # dicDetr=[]
+ # if 'Q4GS' in self.modelisations :
+ err = 0
+ try :
+ __SIG11[i] = LIRE_CHAMP(
+ INFO = self.INFO,
+ TYPE_CHAM = 'ELGA_SIEF_R',
+ UNITE = 99,
+ NUME_PT = 0,
+ MODELE = self.NEW_MODELE,
+ MAILLAGE = self.reupere_structure(self.MODELE,'MAILLAGE'),
+ PROL_ZERO = 'OUI',
+ NOM_MED = 'CHAMP___CONTRAINTE___00%d'%(i+1),
+ NOM_CMP = dic_cmp_gauss['CONTRAINTE']['Q4GS']['NOM_CMP'],
+ NOM_CMP_MED = dic_cmp_gauss['CONTRAINTE']['Q4GS']['NOM_CMP_MED'])
+ # dicDetr.append({'NOM' : __SIG11})
+ DETRUIRE(CONCEPT=_F(NOM = __SIG11[i]), INFO=1)
+ listType.append('Q4GS')
+ # index=2
+ except :
+ err+=1
+ try :
+ __SIG21[i] = LIRE_CHAMP(
+ INFO = self.INFO,
+ TYPE_CHAM = 'ELGA_SIEF_R',
+ UNITE = 99,
+ NUME_PT = 0,
+ MODELE = self.NEW_MODELE,
+ MAILLAGE = self.reupere_structure(self.MODELE,'MAILLAGE'),
+ PROL_ZERO = 'OUI',
+ NOM_MED = 'CHAMP___CONTRAINTE___00%d'%(i+1),
+ NOM_CMP = dic_cmp_gauss['CONTRAINTE']['DKT3']['NOM_CMP'],
+ NOM_CMP_MED = dic_cmp_gauss['CONTRAINTE']['DKT3']['NOM_CMP_MED']),
+ DETRUIRE(CONCEPT=_F(NOM = __SIG21[i]), INFO=1)
+ if len(listType)<i+1 :
+ listType.append('DKT3')
+ except :
+ err+=1
+ if err<2 :
+ i+=1
+ else :
+ break
+ # if 'DKT3' in self.modelisations :
+ # try :
+ # __SIG21 = LIRE_CHAMP(
+ # INFO = self.INFO,
+ # TYPE_CHAM = 'ELGA_SIEF_R',
+ # UNITE = 99,
+ # NUME_PT = i*pas,
+ # MODELE = self.NEW_MODELE,
+ # MAILLAGE = self.reupere_structure(self.MODELE,'MAILLAGE'),
+ # PROL_ZERO = 'OUI',
+ # NOM_MED = 'CHAMP___CONTRAINTE___00%d'%index,
+ # NOM_CMP = dic_cmp_gauss['CONTRAINTE']['DKT3']['NOM_CMP'],
+ # NOM_CMP_MED = dic_cmp_gauss['CONTRAINTE']['DKT3']['NOM_CMP_MED']),
+ # dicDetr.append({'NOM' : __SIG21})
+
+ # except :
+ # err +=1
+ # if err > 1 :
+ # break
+ # DETRUIRE(CONCEPT=dicDetr)
+ # i+=1
+
+ # Pour la gestion des alarmes
+ RetablirAlarme('MED_83')
+ RetablirAlarme('MED_98')
+
+
+ nbChamp = i
+ itot=len(resu.LIST_PARA()['INST'])
+ __EFFG=[None]*itot
+ # __EPSG=[None]*itot
+ __ECRG=[None]*itot
+ __SIG1 = [None]*nbChamp
+ __SIG2 = [None]*nbChamp
+ for i in xrange(itot) :
+ dicAffe=[]
+ dicAffe2=[]
+ dicAffe3=[]
+ index=1
+ pas = self.ARCHIVAGE['PAS_NBRE']
+ dicAsse = [{'TOUT' : 'OUI', 'CHAM_GD' : __EPN, 'NOM_CMP' : 'X21', 'NOM_CMP_RESU' : 'X21'}]
+ dicAsse.append({'TOUT' : 'OUI', 'CHAM_GD' : __EPN2, 'NOM_CMP' : 'X22', 'NOM_CMP_RESU' : 'X22', 'CUMUL' : 'OUI','COEF_R':1.})
+ dicAsse2 = [{'TOUT' : 'OUI', 'CHAM_GD' : __UNN, 'NOM_CMP' : 'X21', 'NOM_CMP_RESU' : 'X21'}]
+ dicAsse2.append({'TOUT' : 'OUI', 'CHAM_GD' : __UNN, 'NOM_CMP' : 'X22', 'NOM_CMP_RESU' : 'X22', 'CUMUL' : 'OUI','COEF_R':1.})
+ dicAsse3 = [{'TOUT' : 'OUI', 'CHAM_GD' : __UNN, 'NOM_CMP' : 'X21', 'NOM_CMP_RESU' : 'X21'}]
+ dicAsse3.append({'TOUT' : 'OUI', 'CHAM_GD' : __UNN, 'NOM_CMP' : 'X22', 'NOM_CMP_RESU' : 'X22', 'CUMUL' : 'OUI','COEF_R':1.})
+ dicDetr=[]
+ # if 'Q4GS' in self.modelisations :
+ for j in xrange(nbChamp) :
+ if listType[j] == 'Q4GS' :
+ __SIG1[j] = LIRE_CHAMP(
+ INFO = self.INFO,
+ TYPE_CHAM = 'ELGA_SIEF_R',
+ UNITE = 99,
+ NUME_PT = resu.LIST_PARA()['NUME_ORDRE'][i],
+ MODELE = self.NEW_MODELE,
+ MAILLAGE = self.reupere_structure(self.MODELE,'MAILLAGE'),
+ PROL_ZERO = 'OUI',
+ NOM_MED = 'CHAMP___CONTRAINTE___00%d'%(j+1),
+ NOM_CMP = dic_cmp_gauss['CONTRAINTE']['Q4GS']['NOM_CMP'],
+ NOM_CMP_MED = dic_cmp_gauss['CONTRAINTE']['Q4GS']['NOM_CMP_MED'],
+ )
+ # __EPS1 = LIRE_CHAMP(
+ # INFO = self.INFO,
+ # TYPE_CHAM = 'ELGA_EPSI_R',
+ # UNITE = 99,
+ # NUME_PT = resu.LIST_PARA()['NUME_ORDRE'][i],
+ # MODELE = self.NEW_MODELE,
+ # MAILLAGE = self.reupere_structure(self.MODELE,'MAILLAGE'),
+ # PROL_ZERO = 'OUI',
+ # NOM_MED = 'CHAMP___DEFORM_TOT___001',
+ # NOM_CMP = dic_cmp_gauss['DEFORMATION']['Q4GS']['NOM_CMP'],
+ # NOM_CMP_MED = dic_cmp_gauss['DEFORMATION']['Q4GS']['NOM_CMP_MED'])
+# __ECR1 = LIRE_CHAMP(
+# INFO = self.INFO,
+# TYPE_CHAM = 'ELGA_VARI_R',
+# UNITE = 99,
+# NUME_PT = resu.LIST_PARA()['NUME_ORDRE'][i],
+# MODELE = self.NEW_MODELE,
+# MAILLAGE = self.reupere_structure(self.MODELE,'MAILLAGE'),
+# PROL_ZERO = 'OUI',
+# NOM_MED = 'CHAMP___ECROUISSAGE__001',
+# NOM_CMP = dic_cmp_gauss['ECROUISSAGE']['Q4GS']['NOM_CMP'],
+# NOM_CMP_MED = dic_cmp_gauss['ECROUISSAGE']['Q4GS']['NOM_CMP_MED'])
+ dicDetr.append({'NOM' : __SIG1[j]})
+ dicAsse.append({'TOUT' : 'OUI', 'CHAM_GD' : __SIG1[j], 'NOM_CMP' : tuple(dic_cmp_gauss['CONTRAINTE']['Q4GS']['NOM_CMP']),
+ 'NOM_CMP_RESU' : ('X1','X2','X3','X4','X5','X6','X7','X8'), 'CUMUL' : 'OUI','COEF_R':1.})
+ # dicAsse2.append({'TOUT' : 'OUI', 'CHAM_GD' : __EPS1, 'NOM_CMP' : tuple(dic_cmp_gauss['DEFORMATION']['Q4GS']['NOM_CMP']),
+ # 'NOM_CMP_RESU' : ('X1','X2','X3','X4','X5','X6','X7','X8'), 'CUMUL' : 'OUI','COEF_R':1.})
+# dicAsse3.append({'TOUT' : 'OUI', 'CHAM_GD' : __ECR1, 'NOM_CMP' : tuple(dic_cmp_gauss['ECROUISSAGE']['Q4GS']['NOM_CMP']),
+# 'NOM_CMP_RESU' : ('X1','X2'), 'CUMUL' : 'OUI','COEF_R':1.})
+ else :
+ __SIG2[j] = LIRE_CHAMP(
+ INFO = self.INFO,
+ TYPE_CHAM = 'ELGA_SIEF_R',
+ UNITE = 99,
+ NUME_PT = resu.LIST_PARA()['NUME_ORDRE'][i],
+ MODELE = self.NEW_MODELE,
+ MAILLAGE = self.reupere_structure(self.MODELE,'MAILLAGE'),
+ PROL_ZERO = 'OUI',
+ NOM_MED = 'CHAMP___CONTRAINTE___00%d'%(j+1),
+ NOM_CMP = dic_cmp_gauss['CONTRAINTE']['DKT3']['NOM_CMP'],
+ NOM_CMP_MED = dic_cmp_gauss['CONTRAINTE']['DKT3']['NOM_CMP_MED'],
+ )
+ # __EPS2 = LIRE_CHAMP(
+ # INFO = self.INFO,
+ # TYPE_CHAM = 'ELGA_EPSI_R',
+ # UNITE = 99,
+ # NUME_PT = resu.LIST_PARA()['NUME_ORDRE'][i],
+ # MODELE = self.NEW_MODELE,
+ # MAILLAGE = self.reupere_structure(self.MODELE,'MAILLAGE'),
+ # PROL_ZERO = 'OUI',
+ # NOM_MED = 'CHAMP___DEFORM_TOT___00%d'%index,
+ # NOM_CMP = dic_cmp_gauss['DEFORMATION']['DKT3']['NOM_CMP'],
+ # NOM_CMP_MED = dic_cmp_gauss['DEFORMATION']['DKT3']['NOM_CMP_MED']),
+# __ECR2 = LIRE_CHAMP(
+# INFO = self.INFO,
+# TYPE_CHAM = 'ELGA_VARI_R',
+# UNITE = 99,
+# NUME_PT = resu.LIST_PARA()['NUME_ORDRE'][i],
+# MODELE = self.NEW_MODELE,
+# MAILLAGE = self.reupere_structure(self.MODELE,'MAILLAGE'),
+# PROL_ZERO = 'OUI',
+# NOM_MED = 'CHAMP___ECROUISSAGE__00%d'%index,
+# NOM_CMP = dic_cmp_gauss['ECROUISSAGE']['Q4GS']['NOM_CMP'],
+# NOM_CMP_MED = dic_cmp_gauss['ECROUISSAGE']['Q4GS']['NOM_CMP_MED'])
+ dicAsse.append({'TOUT' : 'OUI', 'CHAM_GD' : __SIG2[j], 'NOM_CMP' : tuple(dic_cmp_gauss['CONTRAINTE']['DKT3']['NOM_CMP']),
+ 'NOM_CMP_RESU' : ('X11','X12','X13','X14','X15','X16'), 'CUMUL' : 'OUI','COEF_R':1.})
+ # dicAsse2.append({'TOUT' : 'OUI', 'CHAM_GD' : __EPS2, 'NOM_CMP' : tuple(dic_cmp_gauss['DEFORMATION']['DKT3']['NOM_CMP']),
+ # 'NOM_CMP_RESU' : ('X11','X12','X13','X14','X15','X16'), 'CUMUL' : 'OUI','COEF_R':1.})
+# dicAsse3.append({'TOUT' : 'OUI', 'CHAM_GD' : __ECR2, 'NOM_CMP' : tuple(dic_cmp_gauss['ECROUISSAGE']['DKT3']['NOM_CMP']),
+# 'NOM_CMP_RESU' : ('X11','X12'), 'CUMUL' : 'OUI','COEF_R':1.})
+ dicDetr.append({'NOM' : __SIG2[j]})
+ # dicDetr.append({'NOM' : __EPS2})
+# dicDetr.append({'NOM' : __ECR2})
+ # dicDetr.append({'NOM' : __EPS1})
+# dicDetr.append({'NOM' : __ECR1})
+ # if 'DKT3' in self.modelisations:
+
+ __SIGN = CREA_CHAMP(
+ INFO = self.INFO,
+ TYPE_CHAM = 'ELGA_NEUT_R',
+ OPERATION = 'ASSE',
+ PROL_ZERO = 'OUI',
+ MODELE = self.NEW_MODELE,
+ ASSE = dicAsse,
+ )
+ # __EPSN = CREA_CHAMP(
+ # INFO = self.INFO,
+ # TYPE_CHAM = 'ELGA_NEUT_R',
+ # OPERATION = 'ASSE',
+ # PROL_ZERO = 'OUI',
+ # MODELE = self.NEW_MODELE,
+ # ASSE = dicAsse2)
+# __ECRN = CREA_CHAMP(
+# INFO = self.INFO,
+# TYPE_CHAM = 'ELGA_NEUT_R',
+# OPERATION = 'ASSE',
+# PROL_ZERO = 'OUI',
+# MODELE = self.NEW_MODELE,
+# ASSE = dicAsse3)
+ dicDetr.append({'NOM' : __SIGN})
+ # dicDetr.append({'NOM' : __EPSN})
+# dicDetr.append({'NOM' : __ECRN})
+ __EFFGN = CREA_CHAMP(
+ INFO = self.INFO,
+ TYPE_CHAM = 'ELGA_NEUT_R',
+ OPERATION = 'EVAL',
+ CHAM_F = __FONCC,
+ CHAM_PARA = (__SIGN),
+ )
+ # __EPSGN = CREA_CHAMP(
+ # INFO = self.INFO,
+ # TYPE_CHAM = 'ELGA_NEUT_R',
+ # OPERATION = 'EVAL',
+ # CHAM_F = __FONCC,
+ # CHAM_PARA = (__EPSN))
+# __ECRGN = CREA_CHAMP(
+# INFO = self.INFO,
+# TYPE_CHAM = 'ELGA_NEUT_R',
+# OPERATION = 'EVAL',
+# CHAM_F = __FONCC2,
+# CHAM_PARA = (__ECRN))
+ dicDetr.append({'NOM' : __EFFGN})
+ # dicDetr.append({'NOM' : __EPSGN})
+# dicDetr.append({'NOM' : __ECRGN})
+ __EFFG[i] = CREA_CHAMP(
+ INFO = self.INFO,
+ TYPE_CHAM = 'ELGA_SIEF_R',
+ OPERATION = 'ASSE',
+ PROL_ZERO = 'OUI',
+ MODELE = self.NEW_MODELE,
+ ASSE = _F(
+ TOUT = 'OUI',
+ CHAM_GD = __EFFGN,
+ NOM_CMP = ('X1','X2','X3','X4','X5','X6','X7','X8')+('X11','X12','X13','X14','X15','X16'),
+ NOM_CMP_RESU = tuple(dic_cmp_gauss['CONTRAINTE']['Q4GS']['NOM_CMP']+dic_cmp_gauss['CONTRAINTE']['DKT3']['NOM_CMP'])),
+ )
+ # __EPSG[i] = CREA_CHAMP(
+ # INFO = self.INFO,
+ # TYPE_CHAM = 'ELGA_EPSI_R',
+ # OPERATION = 'ASSE',
+ # PROL_ZERO = 'OUI',
+ # MODELE = self.NEW_MODELE,
+ # ASSE = _F(
+ # TOUT = 'OUI',
+ # CHAM_GD = __EPSGN,
+ # NOM_CMP = ('X1','X2','X3','X4','X5','X6','X7','X8')+('X11','X12','X13','X14','X15','X16'),
+ # NOM_CMP_RESU = tuple(dic_cmp_gauss['DEFORMATION']['Q4GS']['NOM_CMP']+dic_cmp_gauss['DEFORMATION']['DKT3']['NOM_CMP'])))
+# __ECRG[i] = CREA_CHAMP(
+# INFO = self.INFO,
+# TYPE_CHAM = 'ELGA_VARI_R',
+# OPERATION = 'ASSE',
+# PROL_ZERO = 'OUI',
+# MODELE = self.NEW_MODELE,
+# ASSE = _F(
+# TOUT = 'OUI',
+# CHAM_GD = __ECRGN,
+# NOM_CMP = ('X1','X2'),
+# NOM_CMP_RESU = tuple(dic_cmp_gauss['ECROUISSAGE']['Q4GS']['NOM_CMP'])))
+ dicAffe.append({'CHAM_GD' : __EFFG[i], 'MODELE' : self.NEW_MODELE,'CHAM_MATER' : self.CHAM_MATER,'INST': resu.LIST_PARA()['INST'][i]})
+ # dicAffe2.append({'CHAM_GD' : __EPSG[i], 'MODELE' : self.NEW_MODELE,'CHAM_MATER' : self.CHAM_MATER,'INST': resu.LIST_PARA()['INST'][i]})
+# dicAffe3.append({'CHAM_GD' : __ECRG[i], 'MODELE' : self.NEW_MODELE,'CHAM_MATER' : self.CHAM_MATER,'INST': resu.LIST_PARA()['INST'][i]})
+ DETRUIRE(CONCEPT=dicDetr, INFO=1)
+ resu = CREA_RESU(reuse=resu,
+ OPERATION = 'AFFE',
+ TYPE_RESU = 'EVOL_NOLI',
+ NOM_CHAM = 'SIEF_ELGA',
+ AFFE = dicAffe,
+ )
+ # resu = CREA_RESU(reuse=resu,
+ # OPERATION = 'AFFE',
+ # TYPE_RESU = 'EVOL_NOLI',
+ # NOM_CHAM = 'EPSI_ELGA_DEPL',
+ # AFFE = dicAffe2)
+ resu = CREA_RESU(reuse=resu,
+ OPERATION = 'AFFE',
+ TYPE_RESU = 'EVOL_NOLI',
+ NOM_CHAM = 'VARI_ELGA',
+ AFFE = dicAffe3,
+ )
+
+ DEFI_FICHIER(UNITE=unite,ACTION='LIBERER');
+
+ os.remove(fort)
+
+#-----------------------------------------------------------------------
+ def lancer_calcul(self,fichier_med='auto'):
+
+ fichier_epx = self.nom_fichiers['COMMANDE']
+ EXEC_LOGICIEL(LOGICIEL='cd %s ; %s %s ; iret=$? ; cd %s ; exit $iret' % (self.pwd + self.REPE, self.EXEC, fichier_epx, self.pwd),
+ INFO=2)
+
+
+#------------------------------------------------------------------------
+#----------------------------- FIN class EUROPLEXUS ---------------------
+#------------------------------------------------------------------------
+
+
+#------------------------------------------------------------------------
+#----------------------------- class POUTRE -----------------------------
+#------------------------------------------------------------------------
+
+class POUTRE:
+ def __init__(self,MAILLAGE,CARA_ELEM):
+
+ # recuperer les infos du maillage sous format python
+ self.MApyt = MAIL_PY()
+ self.MApyt.FromAster(MAILLAGE)
+ self.CARA_ELEM = CARA_ELEM
+ # un dictionnaire stockant tous orientations definis dans AFF_CARA_ELEM
+ self.dic_gma = self.orientation_cara_elem()
+
+#------------------------------------------------------------------------
+ def getvecteurs(self,groupes_poutres,verif='non'):
+ vecteurs = {}
+ ig = 0
+ message = 0
+ for gr in groupes_poutres :
+ ig += 1
+ if not self.dic_gma.has_key(gr): self.dic_gma[gr] = {'ANGL_VRIL':0.0}
+ vecteurs[gr] = self.get_vecty_group_ma(gr)
+ if verif == 'oui':
+ if ig > 1 :
+ if not vecteurs_egaux(vecteurs[gr],vect_old) : message = 1
+ vect_old = vecteurs[gr]
+
+ if message : UTMESS('F','PLEXUS_10',valk=groupes_poutres)
+
+ return vecteurs
+
+#------------------------------------------------------------------------
+ def orientation_cara_elem(self,):
+
+ dic_gma = {}
+ etapes = self.CARA_ELEM.etape.valeur
+
+ if not etapes.has_key('ORIENTATION') : return dic_gma
+
+ orientation = etapes['ORIENTATION']
+ try :
+ test = orientation [0]
+ except :
+ orientation = [orientation]
+
+ for ll in orientation :
+ cara = ll['CARA']
+ if cara in ['ANGL_VRIL','ANGL_NAUT','VECT_Y'] :
+ if ll.has_key('GROUP_MA') :
+ group_ma = ll['GROUP_MA']
+ if types.TypeType(group_ma) == types.StringType : group_ma = (group_ma,)
+ a = ll['VALE']
+ for gr in group_ma:
+ if not dic_gma.has_key(gr): dic_gma[gr] = {}
+ dic_gma[gr][cara] = a
+
+ for gr in dic_gma.keys() :
+ if not dic_gma[gr].has_key('VECT_Y'):
+ if not dic_gma[gr].has_key('ANGL_VRIL') : dic_gma[gr]['ANGL_VRIL'] = 0.0
+ if dic_gma[gr].has_key('ANGL_NAUT'):
+ if len(dic_gma[gr]['ANGL_NAUT']) == 2 :
+ dic_gma[gr]['ANGL_NAUT'] = list(dic_gma[gr]['ANGL_NAUT']) + [dic_gma[gr]['ANGL_VRIL']]
+
+ return(dic_gma)
+
+#------------------------------------------------------------------------
+ def get_vecty_group_ma(self,group_ma):
+
+ #if debug: print '*'*10
+ #if debug: print 'Test de group_ma',group_ma
+ #if debug: print '*'*10
+
+ message = 0
+
+ if self.dic_gma[group_ma].has_key('VECT_Y') : return self.dic_gma[group_ma]['VECT_Y']
+
+ if not self.dic_gma[group_ma].has_key('ANGL_NAUT'):calcul_angle = 1
+ else: calcul_angle = 0
+
+ mailles = self.MApyt.gma[string.rstrip(group_ma)]
+
+ for imaille in range(len(mailles)):
+ maille = mailles[imaille]
+ if calcul_angle:
+ alpha,beta = self.calcul_angles_naut(maille)
+ angl = [alpha,beta,self.dic_gma[group_ma]['ANGL_VRIL']]
+ else:
+ angl = self.dic_gma[group_ma]['ANGL_NAUT']
+
+ vect_y = self.angle2vecty(angl)
+ if imaille > 1 :
+ if not vecteurs_egaux(vect_y0,vect_y) : message = 1
+ vect_y0 = vect_y
+
+ self.dic_gma[group_ma]['VECT_Y'] = vect_y
+
+ if message :
+ #if debug: print 'group_ma',group_ma
+ UTMESS('F','PLEXUS_11',valk=group_ma)
+
+ return vect_y
+
+#------------------------------------------------------------------------
+ def angle2vecty(self,angl):
+ #transformer en rd
+ for iangl in range(len(angl)):
+ angl[iangl] = N.pi*angl[iangl]/180.
+
+ cosa = math.cos( angl[0] )
+ sina = math.sin( angl[0] )
+ cosb = math.cos( angl[1] )
+ sinb = math.sin( angl[1] )
+ cosg = math.cos( angl[2] )
+ sing = math.sin( angl[2] )
+ vect = [ sing*sinb*cosa - cosg*sina , cosg*cosa + sing*sinb*sina , sing*cosb ]
+ for ii in range(len(vect)):
+ if abs(vect[ii]) <= tst : vect[ii] = 0.0
+ vect = N.array(vect)
+ vect = vect/norme(vect)
+ return vect
+
+#------------------------------------------------------------------------
+ def get_coor_nodes_maille(self,maille):
+ node1,node2 = self.MApyt.co[maille]
+ coor1 = self.MApyt.cn[node1]
+ coor2 = self.MApyt.cn[node2]
+ return [coor1,coor2]
+
+#------------------------------------------------------------------------
+ def calcul_angles_naut(self,maille):
+
+ # Angles directeurs d'une poutre (nautiques)
+
+ a,b = self.get_coor_nodes_maille(maille)
+
+ gx = [ b[0]-a[0] , b[1]-a[1] , b[2]-a[2] ]
+
+ if( (abs(gx[1]) < tst) and (abs(gx[0]) <= tst) ):
+ alpha = 0.0
+ else:
+ alpha = math.atan2(gx[1],gx[0])
+
+ p = math.sqrt( gx[0]*gx[0] + gx[1]*gx[1] )
+ if( (abs(gx[2]) < tst ) and (abs(p) <=tst) ):
+ beta = 0.0
+ else:
+ beta = -math.atan2(gx[2],p)
+
+ # alpha et Beta en degre
+ alpha = alpha*180./math.pi
+ beta = beta*180./math.pi
+
+ return alpha,beta
+
+#------------------------------------------------------------------------
+#----------------------------- FIN class POUTRE -------------------------
+#------------------------------------------------------------------------
+
+
+#------------------------------------------------------------------------
+#----------------------------- class DKT --------------------------------
+#------------------------------------------------------------------------
+
+class DKT:
+
+ def __init__(self,MAILLAGE):
+
+ self.MAILLAGE = MAILLAGE
+ # recuperer les infos du maillage sous format python
+ self.MApyt = MAIL_PY()
+ self.MApyt.FromAster(MAILLAGE)
+
+ def aster2epx(self,groups):
+
+ # initialisations du dic contenant les mailles de tria3 et quad4
+ dic_groups = {}
+ for cle in ['TRIA3','QUAD4']:
+ dic_groups[cle] = []
+ # placer les mailles dans le champ associe
+ for gr in groups:
+ mailles = self.MApyt.gma[string.rstrip(gr)]
+ for maille in mailles:
+ code_maille = self.MApyt.tm[maille]
+ type_maille = self.MApyt.nom[code_maille]
+ maille_initiale = string.rstrip(self.MApyt.correspondance_mailles[maille])
+ if not maille_initiale in dic_groups[type_maille] :
+ dic_groups[type_maille].append(maille_initiale)
+
+ # creer le mot-cle facteur permettant de creer les groupes de mailles associes au TRIA3 et QUAD4
+ crea_group_ma = []
+ # dictionnair contenant les noms des groups qui vont etre creer au besoin
+ nom_groups = {}
+ for cle in dic_groups.keys() :
+ if len(dic_groups[cle]) > 0 :
+ crea_group_ma.append({'MAILLE':dic_groups[cle],'NOM':cle})
+ nom_groups[cle] = [cle]
+ else:
+ nom_groups[cle] = []
+ # ce n'est pas necessaire de creer les group_ma si on n'a pas de quad4
+ if len(dic_groups['QUAD4']) >0:
+
+ #global DEFI_GROUP
+
+ DEFI_GROUP(reuse = self.MAILLAGE,
+ MAILLAGE = self.MAILLAGE,
+ CREA_GROUP_MA = crea_group_ma,
+ );
+
+ else :
+ # on affecte au TRIA les groupes deja fournis en argument
+ nom_groups['TRIA3'] = groups
+
+ return nom_groups
+
+#------------------------------------------------------------------------
+#----------------------------- FIN class DKT ----------------------------
+#------------------------------------------------------------------------
--- /dev/null
+#@ MODIF calc_modal_ops Macro DATE 14/10/2008 AUTEUR NISTOR I.NISTOR
+
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2008 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# ======================================================================
+#-*- coding: iso-8859-1 -*-
+
+
+def calc_modal_ops(self,MODELE,CHAM_MATER,CARA_ELEM,AMORTISEMENT,
+ SOLVEUR,CHARGE,INST,METHODE,CALC_FREQ, MODE_RIGIDE,
+ VERI_MODE,INFO,**args):
+ """
+ Ecriture de la macro CALC_MODAL
+ """
+ from Accas import _F
+ ier=0
+ from Utilitai.Utmess import UTMESS
+
+ # On importe les definitions des commandes a utiliser dans la macro
+ # Le nom de la variable doit etre obligatoirement le nom de la commande
+ CALC_MATR_ELEM=self.get_cmd('CALC_MATR_ELEM')
+ NUME_DDL =self.get_cmd('NUME_DDL')
+ ASSE_MATRICE =self.get_cmd('ASSE_MATRICE')
+ MODE_ITER_SIMULT =self.get_cmd('MODE_ITER_SIMULT')
+ # La macro compte pour 1 dans la numerotation des commandes
+ self.set_icmd(1)
+
+
+ # on defini la liste des mots cle pour les appels aux CALC_MATR_ELEM
+ motsclece={}
+ if CHARGE != None: motsclece['CHARGE'] =CHARGE
+ if CHAM_MATER != None: motsclece['CHAM_MATER'] =CHAM_MATER
+ if CARA_ELEM != None: motsclece['CARA_ELEM'] =CARA_ELEM
+ if INST != None: motsclece['INST'] =INST
+
+ #c'est avec le mot cle AMORTISEMENT qu'on decide si on calcule la matrice C
+ # d'amortisement
+
+
+ _a=CALC_MATR_ELEM(MODELE=MODELE, OPTION='RIGI_MECA', **motsclece)
+ _b=CALC_MATR_ELEM(MODELE=MODELE, OPTION='MASS_MECA', **motsclece)
+ if AMORTISEMENT=='OUI':
+ _c=CALC_MATR_ELEM(MODELE=MODELE, OPTION='AMOR_MECA',
+ RIGI_MECA=_a, MASS_MECA=_b,**motsclece)
+
+ #on produit en local le concept NUME_DDL, il n'est pas visible pour l'utilisateur
+
+ # Les mots cles simples sous SOLVEUR sont par defaut MULT_FRONT/METIS
+ methode=SOLVEUR['METHODE']
+ renum=SOLVEUR['RENUM']
+
+ _num=NUME_DDL(MATR_RIGI=_a,METHODE=methode,RENUM=renum,INFO=INFO)
+
+ #assemblages des matrices
+ _rigas=ASSE_MATRICE(MATR_ELEM=_a,NUME_DDL=_num)
+ _masas=ASSE_MATRICE(MATR_ELEM=_b,NUME_DDL=_num)
+ if AMORTISEMENT=='OUI':
+ _amoras=ASSE_MATRICE(MATR_ELEM=_c,NUME_DDL=_num)
+
+ #lancement du calcul des modes propres
+ # on defini la liste des mots cle pour l'appel au MODE_ITER_SIMULT
+
+ motscit={}
+ motscfa={}
+
+ if METHODE=='TRI_DIAG':
+ if args.has_key('NMAX_ITER_ORTHO'):
+ motscit['NMAX_ITER_ORTHO'] =args['NMAX_ITER_ORTHO']
+ if args.has_key('PREC_ORTHO'):
+ motscit['PREC_ORTHO'] =args['PREC_ORTHO']
+ if args.has_key('PREC_LANCZOS'):
+ motscit['PREC_LANCZOS'] =args['PREC_LANCZOS']
+ if args.has_key('MAX_ITER_QR'):
+ motscit['NMAX_ITER_QR'] =args['NMAX_ITER_QR']
+ elif METHODE=='JACOBI':
+ if args.has_key('NMAX_ITER_BATHE'):
+ motscit['NMAX_ITER_BATHE'] =args['NMAX_ITER_BATHE']
+ if args.has_key('PREC_BATHE'):
+ motscit['PREC_BATHE'] =args['PREC_BATHE']
+ if args.has_key('NMAX_ITER_JACOBI'):
+ motscit['NMAX_ITER_JACOBI']=args['NMAX_ITER_JACOBI']
+ if args.has_key('PREC_JACOBI'):
+ motscit['PREC_JACOBI'] =args['PREC_JACOBI']
+ elif METHODE=='SORENSEN':
+ if args.has_key('NMAX_ITER_SOREN'):
+ motscit['NMAX_ITER_SOREN'] =args['NMAX_ITER_SOREN']
+ if args.has_key('PARA_ORTHO_SOREN'):
+ motscit['PARA_ORTHO_SOREN']=args['PARA_ORTHO_SOREN']
+ if args.has_key('PREC_SOREN'):
+ motscit['PREC_SOREN'] =args['PREC_SOREN']
+ elif METHODE=='QZ':
+ if args.has_key('TYPE_QZ'):
+ motscit['TYPE_QZ'] =args['TYPE_QZ']
+
+ if CALC_FREQ['DIM_SOUS_ESPACE']: motscfa['DIM_SOUS_ESPACE']=CALC_FREQ['DIM_SOUS_ESPACE']
+ if CALC_FREQ['COEF_DIM_ESPACE']: motscfa['COEF_DIM_ESPACE']=CALC_FREQ['COEF_DIM_ESPACE']
+
+ if CALC_FREQ['OPTION']=='PLUS_PETITE':
+ motscfa['NMAX_FREQ']=CALC_FREQ['NMAX_FREQ']
+
+ if CALC_FREQ['OPTION']=='CENTRE':
+ motscfa['FREQ']=CALC_FREQ['FREQ']
+ if CALC_FREQ['AMOR_REDUIT']: motscfa['AMOR_REDUIT']=CALC_FREQ['AMOR_REDUIT']
+ motscfa['NMAX_FREQ']=CALC_FREQ['NMAX_FREQ']
+
+ if CALC_FREQ['OPTION']=='BANDE':
+ motscfa['FREQ']=CALC_FREQ['FREQ']
+
+ motscit['CALC_FREQ'] = _F(OPTION =CALC_FREQ['OPTION'],
+ SEUIL_FREQ =CALC_FREQ['SEUIL_FREQ'],
+ NPREC_SOLVEUR =CALC_FREQ['NPREC_SOLVEUR'],
+ NMAX_ITER_SHIFT =CALC_FREQ['NMAX_ITER_SHIFT'],
+ PREC_SHIFT =CALC_FREQ['PREC_SHIFT'],
+ APPROCHE =CALC_FREQ['APPROCHE'],
+ **motscfa)
+
+ motscit['VERI_MODE'] = _F(STOP_ERREUR=VERI_MODE['STOP_ERREUR'],
+ SEUIL =VERI_MODE['SEUIL'],
+ STURM =VERI_MODE['STURM'],
+ PREC_SHIFT =VERI_MODE['PREC_SHIFT'])
+
+ motscit['STOP_FREQ_VIDE'] = CALC_FREQ['STOP_FREQ_VIDE']
+
+
+ if MODE_RIGIDE=='OUI':
+ mode_rigi='MODE_RIGIDE'
+ elif MODE_RIGIDE=='NON':
+ mode_rigi='SANS'
+
+ self.DeclareOut('modes',self.sd)
+
+ if AMORTISEMENT=='NON':
+ modes=MODE_ITER_SIMULT(MATR_A =_rigas,
+ MATR_B =_masas,
+ METHODE =METHODE,
+ OPTION =mode_rigi,
+ INFO =INFO,
+ **motscit)
+ elif AMORTISEMENT=='OUI':
+ modes=MODE_ITER_SIMULT(MATR_A =_rigas,
+ MATR_B =_masas,
+ MATR_C =_amoras,
+ METHODE =METHODE,
+ OPTION =mode_rigi,
+ INFO =INFO,
+ **motscit)
+
+ return ier
--- /dev/null
+#@ MODIF calc_spec_ops Macro DATE 21/10/2008 AUTEUR CORUS M.CORUS
+
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2008 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# ======================================================================
+
+import copy
+import types
+from SD.sd_fonction import sd_fonction
+
+# -----------------------------------------------------------------------------
+class FonctionError(Exception): pass
+class ParametreError(FonctionError): pass # probleme de NOM_PARA
+class InterpolationError(FonctionError): pass
+class ProlongementError(FonctionError): pass
+
+# -----------------------------------------------------------------------------
+
+
+def calc_spec_ops(self,TAB_ECHANT,ECHANT,INTERSPE,TRANSFERT,TITRE,INFO,**args):
+# ------------------------------------------------------------------
+# Calcul d'une matrice interspectrale
+# a partir de fonctions reelles
+
+ import aster
+ from types import ListType, TupleType
+ EnumTypes = (ListType, TupleType)
+ from Accas import _F
+ from Utilitai.Utmess import UTMESS
+ import Numeric
+ import FFT
+
+ commande='CALC_SPEC'
+
+ ier = 0
+ # La macro compte pour 1 dans la numerotation des commandes
+ self.set_icmd(1)
+
+ # Le concept sortant (de type table_sdaster ou derive) est tab
+ self.DeclareOut('tabout', self.sd)
+
+ # On importe les definitions des commandes a utiliser dans la macro
+ # Le nom de la variable doit etre obligatoirement le nom de la commande
+ CREA_TABLE = self.get_cmd('CREA_TABLE')
+ CALC_TABLE = self.get_cmd('CALC_TABLE')
+ DEFI_FONCTION = self.get_cmd('DEFI_FONCTION')
+
+#--- Verifications sur les entrees --#
+
+ if (ECHANT==None and TAB_ECHANT==None) :
+ raise FonctionError, 'Vous devez specifier des fonctions en entree'
+
+ if TAB_ECHANT==None : TAB_ECHANT=[]
+ if ECHANT==None : ECHANT=[]
+ if INTERSPE==None : INTERSPE=[]
+ if TRANSFERT==None : TRANSFERT=[]
+ if len(TAB_ECHANT)*len(ECHANT) !=0 :
+ raise FonctionError, 'Vous pouvez specifier une table_fonction ou' + ' une liste de fonctions en entree, mais pas les deux'
+ if len(TRANSFERT)*len(INTERSPE) !=0 :
+ raise FonctionError, 'Vous ne pouvez specifier qu' +"'"+'un type de calcul par appel'
+
+
+
+#-- Recuperation des entrees --#
+
+ l_f=[]
+ l_t=[]
+ l_G=[]
+ l_H=[]
+# for occ in TAB_ECHANT :
+# l_t.append(('TAB_ECHANT',occ))
+ if TAB_ECHANT: #MC
+ l_t = TAB_ECHANT.List_F()[0]
+
+ for occ in ECHANT :
+ l_f.append(('ECHANT',occ))
+ for occ in INTERSPE :
+ l_G.append(('INTERSPE',occ))
+ for occ in TRANSFERT :
+ l_H.append(('TRANSFERT',occ))
+
+
+# Pour dimensionner les fenetres :
+# Cas ECHANT : on recupere simplement la premiere fonction
+# Cas_TAB_ECHANT : on recupere toutes les fonctions
+
+ if len(l_f) >0 :
+ vale_sig=l_f[0][1]['FONCTION'].Valeurs();
+ l_ech=len(vale_sig[0])
+ dt=vale_sig[0][1]-vale_sig[0][0]
+ else :
+ #tab_ast=l_t[0][1]['NOM_TAB'];
+ tab_ast=l_t['NOM_TAB'] #MC
+ tab_py=tab_ast.EXTR_TABLE();
+
+ nom_fonc= tab_py['FONCTION'].values()['FONCTION']
+ fonc_py = [sd_fonction(fonc) for fonc in nom_fonc]
+ temp=fonc_py[0].VALE.get();
+ dt=temp[1]-temp[0];
+
+ l_ech_temp=l_t['LONGUEUR_ECH'];
+ recouvr_temp=l_t['RECOUVREMENT'];
+ l_ech_t=[l_ech_temp[0]['DUREE'] , l_ech_temp[0]['POURCENT'],l_ech_temp[0]['NB_PTS'] ];
+ recouvr_t=[recouvr_temp[0]['DUREE'] , recouvr_temp[0]['POURCENT'],recouvr_temp[0]['NB_PTS'] ];
+ if l_ech_t.count(None)==3 : l_ech=len(temp)/2;
+ if recouvr_t.count(None)==3 : recouvr=0;
+ if l_ech_t.count(None)<2 :
+ raise FonctionError, 'Vous ne pouvez utiliser qu'+"'"+ 'un mot clef pour definir la longueur des echantillons'
+ if recouvr_t.count(None)<2 :
+ raise FonctionError, 'Vous ne pouvez utiliser qu'+"'"+'un mot clef pour definir la longueur de recouvrement des echantillons'
+ for i1 in range(3) :
+ if l_ech_t[i1] !=None :
+ if i1 == 0 :
+ l_ech=int(Numeric.floor(l_ech_t[i1]/dt));
+ elif i1 == 1 :
+ l_ech=int(Numeric.floor((len(temp)/2)*l_ech_t[i1]*0.01));
+ elif i1 == 2 :
+ l_ech=int(Numeric.floor(l_ech_t[i1]))
+ if l_ech > len(temp)/2 :
+ raise FonctionError, 'Vous devez specifier une longueur d'+"'"+'echantillon inferieure a la longueur totale de l'+"'"+'acquisition'
+ for i1 in range(3) :
+ if recouvr_t[i1] !=None :
+ if i1 == 0 :
+ recouvr=int(Numeric.floor(recouvr_t[i1]/dt));
+ elif i1 == 1 :
+ recouvr=int(Numeric.floor((l_ech)*recouvr_t[i1]*0.01));
+ elif i1 == 2 :
+ recouvr=int(Numeric.floor(recouvr_t[i1]))
+ if recouvr > l_ech :
+ raise FonctionError, 'La longueur de recouvrement ne peut exceder la longueur '
+
+#-- Recuperation des fenetres
+
+ for occ in l_G+l_H :
+ if occ[1]['FENETRE'] == 'RECT' :
+ fene=[1.]*l_ech
+ elif occ[1]['FENETRE'] == 'HAMM' :
+ fene=[0.54-0.46*Numeric.cos(2*Numeric.pi*i1/(l_ech-1)) for i1 in range(l_ech)]
+ elif occ[1]['FENETRE'] == 'HANN' :
+ fene=[0.5-0.5*Numeric.cos(2*Numeric.pi*i1/(l_ech-1)) for i1 in range(l_ech)]
+ elif occ[1]['FENETRE'] == 'EXPO' :
+ para=occ[1]['DEFI_FENE']
+ if len(para) != 2 :
+ raise FonctionError, 'Erreur de taille dans DEFI_FENE : ' + 'la fenetre exponentielle est definie par exactement deux valeurs'
+ fene=[1.]*int(para[0]-1)+[Numeric.exp(para[1]*(i1-int(para[0]-1))*dt) for i1 in range(int(para[0]-1),l_ech)]
+ elif occ[1]['FENETRE'] == 'PART' :
+ fene=occ[1]['DEFI_FENE']
+ if len(fene) != l_ech :
+ raise FonctionError, 'Erreur de taille dans DEFI_FENE : ' + 'La fenetre doit etre definie avec le meme nombre de points que les echantillons'
+
+ if len(TRANSFERT)+len(INTERSPE) == 0 : #-- on ne rentre rien : interspectre par defaut - fenetre rectangulaire
+ fene=[1.]*l_ech
+ INTERSPE=1.;
+
+
+#-- Recuperation des signaux --#
+#-- Verifications et transformations de Fourier --#
+#-- Entrees sous formes de table --#
+
+ tmp=[];
+ lt=[];
+ frq=[];
+ fft=[];
+ df=[];
+ num_ord=[];
+ num_mes=[];
+
+
+ if TAB_ECHANT : # Cas TAB_ECHANT
+ num_mes_temp= tab_py['NUME_MES'].values()['NUME_MES']
+ max_mes=Numeric.maximum.reduce(num_mes_temp);
+ num_ord_temp= tab_py['NUME_ORDRE_I'].values()['NUME_ORDRE_I']
+ long_fonc=[len(fonc_py[i1].VALE.get()) for i1 in range(len(fonc_py))]
+
+ N_fen=int(Numeric.floor((Numeric.minimum.reduce(long_fonc)/2-l_ech)/(l_ech-recouvr))+1)
+
+ sig=[];
+ dt=[];
+ for i1 in range(len(fonc_py)) :
+ vale=fonc_py[i1].VALE.get();
+ temp=(list(vale[0:int(len(vale)/2)]));
+ sig.append(list(vale[int(len(vale)/2):]));
+ test_pas=Numeric.subtract(temp[1:],temp[0:-1])
+ crit=test_pas.tolist();
+ crit.sort();
+ dt.append(crit[-1]);
+ if abs((crit[-1]-crit[0])/crit[-1]) > 1.e-5 :
+ raise FonctionError, 'L'+"'"+'echantillonage doit etre fait a pas constant'
+
+ for j1 in range(N_fen) :
+ for i1 in range(len(fonc_py)) :
+ fft.append(FFT.fft(Numeric.multiply(sig[i1][j1*(l_ech-recouvr):(j1*(l_ech-recouvr)+l_ech)],fene)))
+ if j1 == 0 : df.append(1./(dt[i1])/l_ech);
+ num_mes.append(num_mes_temp[i1]+max_mes*j1);
+ num_ord.append(num_ord_temp[i1]);
+
+ test_df=Numeric.subtract(df[1:],df[0:-1])
+ test_df=test_df.tolist();
+ test_df.sort();
+ if abs(test_df[-1]) > 1.e-5 :
+ raise FonctionError, 'Toutes les fonctions doivent etre definies ' + 'avec la meme frequence d'+"'"+'echantillonage'
+
+ frq = [df[-1]*i1 for i1 in range(l_ech)]
+
+
+#-- Recuperation des signaux --#
+#-- Verifications et transformations de Fourier --#
+#-- Entrees sous formes de fonction --#
+
+ if ECHANT:
+ for occ in l_f :
+ vale_sig=occ[1]['FONCTION'].Valeurs();
+ #-- pour les tests ulterieurs --#
+ lt.append(len(vale_sig[0]))
+ if len(vale_sig[0]) != len(vale_sig[1]) :
+ raise FonctionError, 'Les vecteurs associes au temps '+'et aux echantillons doivent etre de meme longueur'
+ num_mes.append(occ[1]['NUME_MES'])
+ num_ord.append(occ[1]['NUME_ORDRE_I'])
+
+ tmp.append(vale_sig[0])
+ test_pas=Numeric.subtract(vale_sig[0][1:],vale_sig[0][0:-1])
+ crit=test_pas.tolist();
+ crit.sort();
+ if abs((crit[-1]-crit[0])/crit[-1]) > 1.e-5 :
+ raise FonctionError, 'L'+"'"+'echantillonage doit etre fait a pas constant'
+ fft.append(FFT.fft(Numeric.multiply(vale_sig[1],fene)))
+ df.append(1./(crit[-1])/len(vale_sig[0]));
+
+
+ #-- Verification des longueurs --#
+
+ test_long=Numeric.subtract(lt[1:],lt[0:-1])
+ test_long=test_long.tolist();
+ test_long.sort();
+ if (test_long[-1]-test_long[0]) != 0 :
+ raise FonctionError, 'Toutes les fonctions doivent etre definies avec le meme nombre de points'
+
+
+ test_df=Numeric.subtract(df[1:],df[0:-1])
+ test_df=test_df.tolist();
+ test_df.sort();
+ if abs(test_df[-1]) > 1.e-5 :
+ raise FonctionError, 'Toutes les fonctions doivent etre definies '+'avec la meme frequence d'+"'"+'echantillonage'
+
+ frq = [df[-1]*i1 for i1 in range(lt[-1])]
+
+
+#-- index des numeros d'ordre pour le moyennage
+
+ uu=[];
+ vv=[];
+ uu=uu+num_ord;
+ vv=vv+num_ord;
+ uu.sort();
+ ind_ord=[];
+ list_ord=[];
+ while len(uu) > 0 :
+ list_ord.append(uu[0])
+ tt=[];
+ for i1 in range(uu.count(uu[0])) :
+ tt.append(vv.index(uu[0]))
+ vv[tt[-1]]=0
+ ind_ord.append(tt)
+ uu=uu[int(uu.count(uu[0])):]
+
+#-- Calcul de la matrice inter spectrale
+
+ if len(INTERSPE) != 0 :
+ dimh = (len(list_ord)*(len(list_ord)+1))/2
+ l_fc=[];
+ nume_i1=[]
+ nume_j1=[]
+
+ for i1 in range(len(list_ord)) :
+ for j1 in range(i1,len(list_ord)) :
+ #-- on ne calcule les spectres que pour des numeros de mesures correspondants
+ #-- Ca n'a a priori pas de sens de calculer l'interspectre entre deux signaux acquis a des instants differents
+ #-- Par contre, on peut moyenner deux interspectres obtenus a des instants differents, sous reserve
+ #-- de stationnarite et d'ergodicite du signal
+ mes_i1=[num_mes[k1] for k1 in ind_ord[i1]]
+ mes_j1=[num_mes[k1] for k1 in ind_ord[j1]]
+ ind_mes=[];
+ #-- recuperation des indices des fft a prendre en compte pour l'interspectre
+ for k1 in range(len(mes_i1)) :
+ if mes_i1[k1] in mes_j1 :
+ ind_mes.append([ind_ord[i1][k1],ind_ord[j1][mes_j1.index(mes_i1[k1])]])
+
+ #-- Calcul des interspectres
+ dsp=[0.j]*l_ech;
+ if len(ind_mes) > 0 :
+ for l1 in range(len(ind_mes)) :
+ dsp_t=Numeric.multiply(Numeric.conjugate(fft[ind_mes[l1][0]]),fft[ind_mes[l1][1]])
+ dsp_t=Numeric.divide(dsp_t,l_ech*len(ind_mes))
+ dsp=Numeric.add(dsp,dsp_t)
+ dsp=dsp.tolist();
+ dsp_r=[];
+
+ for k1 in range(int(Numeric.floor(l_ech/2))) :
+ dsp_r=dsp_r+[frq[k1],dsp[k1].real,dsp[k1].imag]
+
+ _fonc = DEFI_FONCTION(NOM_PARA='FREQ',VALE_C=dsp_r,);
+ l_fc.append(_fonc.nom)
+ nume_i1.append(list_ord[i1])
+ nume_j1.append(list_ord[j1])
+
+ mcfact=[]
+ mcfact.append(_F(PARA='NOM_CHAM' ,LISTE_K='DSP' ))
+ mcfact.append(_F(PARA='OPTION' ,LISTE_K='TOUT' ))
+ mcfact.append(_F(PARA='DIMENSION' ,LISTE_I=(dimh,) ))
+ mcfact.append(_F(PARA='NUME_ORDRE_I',LISTE_I=nume_i1 ))
+ mcfact.append(_F(PARA='NUME_ORDRE_J',LISTE_I=nume_j1 ))
+ mcfact.append(_F(PARA='FONCTION_C' ,LISTE_K=l_fc ))
+ self.DeclareOut('tab_inte',self.sd)
+ tab_inte=CREA_TABLE(LISTE=mcfact,
+ TITRE='',
+ TYPE_TABLE='TABLE_FONCTION')
+
+
+#-- Calcul des transferts
+
+ if len(TRANSFERT) != 0 :
+
+ l_fc=[];
+ nume_i1=[]
+ nume_j1=[]
+
+ #-- test sur les entrees pour les references --#
+ if type(l_H[0][1]['REFER'])==int :
+ refer=[];
+ refer.append(l_H[0][1]['REFER'])
+ elif type(l_H[0][1]['REFER'])==tuple :
+ refer=list(l_H[0][1]['REFER'])
+
+ ind_refer=[];
+ dimh = len(refer)*(len(list_ord)-len(refer))
+ for k1 in range(len(refer)) :
+ for l1 in range(len(list_ord)) :
+ if refer[k1] == list_ord[l1] : ind_refer.append(l1);
+
+ #-- H1 : interspectre / autospectre
+ #-- H2 : autospectre / interspectre
+ #-- CO : coherence entre H1 et H2.
+
+ if l_H[0][1]['ESTIM']!='HV' :
+ for i1 in range(len(refer)) :
+ for j1 in range(len(list_ord)) :
+ if refer[i1] != list_ord[j1] :
+ mes_i1=[num_mes[k1] for k1 in ind_ord[ind_refer[i1]]] #-- mesures des efforts
+ mes_j1=[num_mes[k1] for k1 in ind_ord[j1]] #-- mesures des reponses
+ ind_mes=[];
+ #-- recuperation des indices des mesures a predre en compte pour les spectres
+ for k1 in range(len(mes_i1)) :
+ if mes_i1[k1] in mes_j1 :
+ ind_mes.append([ind_ord[i1][k1],ind_ord[j1][mes_j1.index(mes_i1[k1])]])
+
+ #-- Calcul des FRF
+ Guu=[0.j]*l_ech;
+ Gyy=[0.j]*l_ech;
+ Gyu=[0.j]*l_ech;
+ if len(ind_mes) > 0 :
+ for l1 in range(len(ind_mes)) :
+ Guu_t=Numeric.multiply(Numeric.conjugate(fft[ind_mes[l1][0]]),fft[ind_mes[l1][0]])
+ Guu=Numeric.add(Guu,Guu_t)
+ Gyu_t=Numeric.multiply(Numeric.conjugate(fft[ind_mes[l1][1]]),fft[ind_mes[l1][0]])
+ Gyu=Numeric.add(Gyu,Gyu_t)
+ Gyy_t=Numeric.multiply(Numeric.conjugate(fft[ind_mes[l1][1]]),fft[ind_mes[l1][1]])
+ Gyy=Numeric.add(Gyy,Gyy_t)
+
+ if l_H[0][1]['ESTIM']=='H1' :
+ frf=Numeric.divide(Numeric.conjugate(Gyu),Guu);
+ nom_frf='FRF-H1';
+ elif l_H[0][1]['ESTIM']=='H2' :
+ frf=Numeric.divide(Gyy,Gyu);
+ nom_frf='FRF-H2';
+ elif l_H[0][1]['ESTIM']=='CO' :
+ H1=Numeric.divide(Numeric.conjugate(Gyu),Guu);
+ H2=Numeric.divide(Gyy,Gyu);
+ frf=Numeric.divide(H1,H2);
+ nom_frf='FRF-COH';
+
+ frf=frf.tolist();
+ frf_r=[];
+
+ for k1 in range(int(Numeric.floor(l_ech/2))) :
+ frf_r=frf_r+[frq[k1],frf[k1].real,frf[k1].imag]
+
+ _fonc = DEFI_FONCTION(NOM_PARA='FREQ',VALE_C=frf_r,);
+ l_fc.append(_fonc.nom)
+ nume_i1.append(refer[i1])
+ nume_j1.append(list_ord[j1])
+
+ #-- On remplit la table_fonction avec tout ce qui va bien
+
+ mcfact=[]
+ mcfact.append(_F(PARA='NOM_CHAM' ,LISTE_K=nom_frf ))
+ mcfact.append(_F(PARA='OPTION' ,LISTE_K='TOUT' ))
+ mcfact.append(_F(PARA='DIMENSION' ,LISTE_I=(dimh,) ))
+ mcfact.append(_F(PARA='NUME_ORDRE_I',LISTE_I=nume_i1 ))
+ mcfact.append(_F(PARA='NUME_ORDRE_J',LISTE_I=nume_j1 ))
+ mcfact.append(_F(PARA='FONCTION_C' ,LISTE_K=l_fc ))
+ self.DeclareOut('tab_inte',self.sd)
+ tab_inte=CREA_TABLE(LISTE=mcfact,
+ TITRE='',
+ TYPE_TABLE='TABLE_FONCTION')
+
-#@ MODIF creation_donnees_homard Macro DATE 11/12/2007 AUTEUR GNICOLAS G.NICOLAS
+#@ MODIF creation_donnees_homard Macro DATE 06/10/2008 AUTEUR GNICOLAS G.NICOLAS
# -*- coding: iso-8859-1 -*-
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
"""
Cette classe crée le fichier de configuration permettant de lancer HOMARD depuis Code_Aster.
"""
-__revision__ = "V1.3"
+__revision__ = "V1.4"
__all__ = [ ]
import os
# 5. Les entrées/sorties au format HOMARD
#
if self.mode_homard == "ADAP" :
- self.fic_homard_niter = "M_" + self.str_niter + ".hom"
- self.fic_homard_niterp1 = "M_" + self.str_niterp1 + ".hom"
+ self.fic_homard_niter = "M_" + self.str_niter + ".hom.med"
+ self.fic_homard_niterp1 = "M_" + self.str_niterp1 + ".hom.med"
else :
self.fic_homard_niter = None
self.fic_homard_niterp1 = None
#
# 3. Les fichiers externes
#
- self.ecrire_ligne_configuration_0("Les fichiers au format MED")
+ self.ecrire_ligne_configuration_0("Les fichiers de Code_Aster, au format MED")
self.ecrire_ligne_configuration_2("CCNoMN__", self.CCNoMN__)
self.ecrire_ligne_configuration_2("CCMaiN__", self.dico_configuration["Fichier_ASTER_vers_HOMARD"])
if self.mode_homard == "ADAP" :
#
# 4. Les fichiers HOMARD
#
- self.ecrire_ligne_configuration_0("Les fichiers au format HOMARD")
+ self.ecrire_ligne_configuration_0("Les fichiers de HOMARD, au format MED")
if self.mode_homard == "ADAP" :
self.ecrire_ligne_configuration_3("HOMaiN__", "M_"+self.str_niter , self.fic_homard_niter )
self.ecrire_ligne_configuration_3("HOMaiNP1", "M_"+self.str_niterp1, self.fic_homard_niterp1)
-#@ MODIF dyna_iss_vari_ops Macro DATE 21/04/2008 AUTEUR ZENTNER I.ZENTNER
+#@ MODIF dyna_iss_vari_ops Macro DATE 05/09/2008 AUTEUR COURTOIS M.COURTOIS
# -*- coding: iso-8859-1 -*-
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
-#@ MODIF exec_logiciel_ops Macro DATE 19/05/2008 AUTEUR COURTOIS M.COURTOIS
+#@ MODIF exec_logiciel_ops Macro DATE 21/10/2008 AUTEUR COURTOIS M.COURTOIS
# -*- coding: iso-8859-1 -*-
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
# ======================================================================
+# RESPONSABLE COURTOIS M.COURTOIS
+
import os.path
import traceback
import shutil
if mode_lancement == CMD_EXTERNE:
scmd = cmd % d_para
comment = "Lancement de la commande :\n%s" % scmd
- iret, output = ExecCommand(scmd,
- alt_comment=comment)
- # écrire l'output dans le .mess si demandé
- if INFO == 2:
- aster.affiche('MESSAGE', output)
+ iret, output, error = ExecCommand(scmd, alt_comment=comment, verbose=False,
+ capturestderr=True, separated_stderr=True)
+ erreur = iret > CODE_RETOUR_MAXI
+
+ # output
+ if INFO > 0 or erreur:
+ UTMESS('I', 'EXECLOGICIEL0_11', vali=(iret, CODE_RETOUR_MAXI))
+ UTMESS('I', 'EXECLOGICIEL0_9', valk=output)
+
+ # en cas d'erreur, on dump tout dans le .resu + .erre
+ if INFO == 2 or erreur:
+ UTMESS('I', 'EXECLOGICIEL0_8', valk=scmd, print_as='E')
+ UTMESS('I', 'EXECLOGICIEL0_10', valk=error, print_as='E')
- if CODE_RETOUR_MAXI >= 0 and iret > CODE_RETOUR_MAXI:
- UTMESS('F', 'EXECLOGICIEL0_3', vali=[CODE_RETOUR_MAXI,iret])
+ if erreur:
+ UTMESS('F', 'EXECLOGICIEL0_3', vali=[CODE_RETOUR_MAXI, iret])
#----------------------------------------------
# 3b. Exécution d'un fichier Python
-#@ MODIF macr_adap_mail_ops Macro DATE 11/12/2007 AUTEUR GNICOLAS G.NICOLAS
+#@ MODIF macr_adap_mail_ops Macro DATE 24/11/2008 AUTEUR GNICOLAS G.NICOLAS
# -*- coding: iso-8859-1 -*-
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
"""
#
# 1. args est le dictionnaire des arguments
-# args.keys() est la liste des mots-clés
+# args.keys() est la liste des mots-cles
# args.keys()[0] est la premiere valeur de cette liste
# args.keys()[1:] est la liste des valeurs suivantes dans cette liste
-# args.keys(mot_cle) représente le contenu de la variable mot_cle dans la macro appelante.
+# args.keys(mot_cle) represente le contenu de la variable mot_cle dans la macro appelante.
#
### print args
### print args.keys()
### if len (args.keys())>0 : print args.keys()[0]
### print args["MAILLAGE"]
#
-# 2. Les caractéristiques d'un passage sont conservées dans un dictionnaire. Il y a autant de
-# dictionnaires que de sollicitations pour une série d'adaptation. L'ensemble de ces dictionnaires
-# est conservé dans la liste Liste_Passages. Cette liste est nécessairement globale pour pouvoir
-# la retrouver à chaque nouveau passage.
+# 2. Les caracteristiques d'un passage sont conservees dans un dictionnaire. Il y a autant de
+# dictionnaires que de sollicitations pour une serie d'adaptation. L'ensemble de ces dictionnaires
+# est conserve dans la liste Liste_Passages. Cette liste est necessairement globale pour pouvoir
+# la retrouver e chaque nouveau passage.
# Description du dictionnaire de passages :
-# dico["Maillage_0"] = o ; string ; nom du concept du maillage initial de la série d'adaptation
-# dico["Maillage_NP1"] = o ; string ; nom du concept du dernier maillage adapté
-# dico["Rep_Calc_HOMARD_global"] = o ; string ; Nom global du répertoire de calcul pour HOMARD
-# dico["Rep_Calc_HOMARD_local"] = o ; string ; Nom local du répertoire de calcul pour HOMARD
-# depuis le répertoire de calcul pour ASTER
-# dico["niter"] = o ; entier ; numéro d'itération
-#
-# 3. Les caractéristiques d'un maillage sont conservées dans un dictionnaire. Il y a autant de
-# dictionnaires que de maillages manipulés. L'ensemble de ces dictionnaires est conservé
+# dico["Maillage_0"] = o ; string ; nom du concept du maillage initial de la serie d'adaptation
+# dico["Maillage_NP1"] = o ; string ; nom du concept du dernier maillage adapte
+# dico["Rep_Calc_HOMARD_global"] = o ; string ; Nom global du repertoire de calcul pour HOMARD
+# dico["Rep_Calc_HOMARD_local"] = o ; string ; Nom local du repertoire de calcul pour HOMARD
+# depuis le repertoire de calcul pour ASTER
+# dico["niter"] = o ; entier ; numero d'iteration
+#
+# 3. Les caracteristiques d'un maillage sont conservees dans un dictionnaire. Il y a autant de
+# dictionnaires que de maillages manipules. L'ensemble de ces dictionnaires est conserve
# dans la liste liste_maillages.
# Description du dictionnaire de maillages :
# dico["Type_Maillage"] = o ; string ; "MAILLAGE_N", "MAILLAGE_NP1", "MAILLAGE_NP1_ANNEXE" ou "MAILLAGE_FRONTIERE"
-# dico["Nom_ASTER"] = o ; concept ASTER associé
+# dico["Nom_ASTER"] = o ; concept ASTER associe
# dico["Action"] = o ; string ; "A_ecrire" ou "A_lire"
# dico["NOM_MED"] = o ; string ; Nom MED du maillage
#
-# 4. Les caractéristiques d'un champ sont conservées dans un dictionnaire. Il y a autant de
-# dictionnaires que de champs manipulés. L'ensemble de ces dictionnaires est conservé
+# 4. Les caracteristiques d'un champ sont conservees dans un dictionnaire. Il y a autant de
+# dictionnaires que de champs manipules. L'ensemble de ces dictionnaires est conserve
# dans la liste liste_champs.
# Description du dictionnaire de champs :
# dico["Type_Champ"] = o ; string ; "INDICATEUR" ou "CHAMP_MAJ"
-# dico["RESULTAT"] = f ; concept ASTER du résutat associé
+# dico["RESULTAT"] = f ; concept ASTER du resutat associe
# dico["NOM_CHAM"] = f ; string ; Nom ASTER du champ
-# dico["CHAM_GD"] = f ; concept ASTER du champ de grandeur associée
+# dico["CHAM_GD"] = f ; concept ASTER du champ de grandeur associee
# dico["COMPOSANTE"] = f ; string ; Nom ASTER de la composante (dans le cas de l'indicateur)
-# dico["NUME_ORDRE"] = f ; entier ; Numéro d'ordre du champ
+# dico["NUME_ORDRE"] = f ; entier ; Numero d'ordre du champ
# dico["INST"] = f ; entier ; Instant du champ
-# dico["PRECISION"] = f ; entier ; Précision sur l'instant du champ
-# dico["CRITERE"] = f ; entier ; Critère de précision sur l'instant du champ
-# dico["CHAM_MAJ"] = f ; string ; Nom ASTER du champ interpolé sur le nouveau maillage
+# dico["PRECISION"] = f ; entier ; Precision sur l'instant du champ
+# dico["CRITERE"] = f ; entier ; Critere de precision sur l'instant du champ
+# dico["CHAM_MAJ"] = f ; string ; Nom ASTER du champ interpole sur le nouveau maillage
# dico["NOM_MED"] = o ; string ; Nom MED du champ
-# dico["SENSIBILITE"] = f ; string ; Nom du paramètre sensible associé
+# dico["SENSIBILITE"] = f ; string ; Nom du parametre sensible associe
+#
+# 5. Signification de INFO
+# INFO = 1 : aucun message
+# INFO = 2 : les messages des commandes annexes (DEFI_FICHIER, IMPR_RESU, LIRE_MAILLAGE, LIRE_CHAMP)
+# INFO = 3 : aucun message pour les commandes annexes
+# 1er niveau de message pour l'execution de HOMARD
+# INFO = 4 : aucun message pour les commandes annexes
+# 2nd niveau de message pour l'execution de HOMARD
#
from Accas import _F
from Macro import creation_donnees_homard
- from Utilitai.Utmess import UTMESS
+ from Utilitai.Utmess import UTMESS, MasquerAlarme, RetablirAlarme
import aster
import string
import os
global Liste_Passages
#
#====================================================================
-# 1. Préalables
+# 1. Prealables
#====================================================================
#
# 1.1. ==> La macro compte pour 1 dans la numerotation des commandes
#
self.set_icmd(1)
#
-# 1.2. ==> Numéro du passage dans cette macro
+# 1.2. ==> Numero du passage dans cette macro
#
try :
self.jdc.indice_macro_homard = self.jdc.indice_macro_homard + 1
LIRE_MAILLAGE = self.get_cmd("LIRE_MAILLAGE")
LIRE_CHAMP = self.get_cmd("LIRE_CHAMP")
#
-# 1.4. ==> Le nom du programme HOMARD à lancer
+# 1.4. ==> Le nom du programme HOMARD e lancer
#
repertoire_outils = aster.repout()
homard = repertoire_outils + "homard"
dico_indi = {}
#
LISTE_ADAPTATION_LIBRE = ("RAFF_DERA" , "RAFFINEMENT" , "DERAFFINEMENT")
+#
+ if ( INFO == 2 ) :
+ infomail = "OUI"
+ infocomm = 2
+ else :
+ infomail = "NON"
+ infocomm = 1
#
#====================================================================
-# 2. Décodage des arguments de la macro-commande
+# 2. Decodage des arguments de la macro-commande
#====================================================================
-# 2.1. ==> Données de pilotage de l'adaptation
+# 2.1. ==> Donnees de pilotage de l'adaptation
#
if ( self.nom == "MACR_ADAP_MAIL" ) :
#
#gn print "dico = ",dico
liste_maillages.append(dico)
#
-# 2.1.2. ==> L'éventuel indicateur d'erreur
+# 2.1.2. ==> L'eventuel indicateur d'erreur
#
#gn print "\n.. Debut de 2.1.2"
#gn print "args = ", args
dico_indi = dico
### print dico
#
-# 2.1.3. ==> Les champs à mettre à jour
+# 2.1.3. ==> Les champs e mettre e jour
#
#gn print "\n.. Debut de 2.1.3."
#
#
### print liste_zones
#
-# 2.2. ==> Données de pilotage de l'information
+# 2.2. ==> Donnees de pilotage de l'information
#
else :
#
dico["Action"] = "A_ecrire"
liste_maillages.append(dico)
#
-# 2.3. ==> Suivi de frontière
+# 2.3. ==> Suivi de frontiere
#
#gn print "\n.. Debut de 2.3."
#
dico["Action"] = "A_ecrire"
liste_maillages.append(dico)
#
-# 2.4. ==> Le numéro de version de HOMARD
-# Remarque : dans la donnée de la version de HOMARD, il faut remplacer
+# 2.4. ==> Le numero de version de HOMARD
+# Remarque : dans la donnee de la version de HOMARD, il faut remplacer
# le _ de la donnee par un ., qui est interdit dans la
# syntaxe du langage de commandes ASTER
# Remarque : il faut remplacer le N majuscule de la donnee par
#gn print ".... version_perso = ", version_perso
#
#====================================================================
-# 3. Préparation du lancement des commandes
+# 3. Preparation du lancement des commandes
#====================================================================
#
# 3.1. ==> . Elaboration des noms MED des concepts de maillage
-# . Memorisation des noms ASTER du maillage en entrée et en sortie (sous forme string)
+# . Memorisation des noms ASTER du maillage en entree et en sortie (sous forme string)
#
-# On crée une nouvelle liste des dictionnaires décrivant les maillages
-# et à la fin on écrase l'ancienne liste par cette nouvelle.
+# On cree une nouvelle liste des dictionnaires decrivant les maillages
+# et e la fin on ecrase l'ancienne liste par cette nouvelle.
#
#gn print "\n.. Debut de 3.1."
#
#gn print "\ndico apres = ",dico
liste_maillages = l_aux
#
-# 3.2. ==> Recherche du numéro d'itération et du répertoire de travail
+# 3.2. ==> Recherche du numero d'iteration et du repertoire de travail
#
-# 3.2.1. ==> Par défaut :
-# . le numéro d'itération est nul
-# . le nom du répertoire de lancement de HOMARD est construit sur le nom
-# du maillage en entrée et le numéro de passage dans la fonction
+# 3.2.1. ==> Par defaut :
+# . le numero d'iteration est nul
+# . le nom du repertoire de lancement de HOMARD est construit sur le nom
+# du maillage en entree et le numero de passage dans la fonction
#
#gn print "\.. Debut de 3.2.1."
#
### print "Rep_Calc_HOMARD_local = ", Rep_Calc_HOMARD_local
### print "Rep_Calc_HOMARD_global = ", Rep_Calc_HOMARD_global
#
-# 3.2.2. ==> En adaptation : il faut repartir du répertoire de l'itération précédente
+# 3.2.2. ==> En adaptation : il faut repartir du repertoire de l'iteration precedente
#
#gn print "\.. Debut de 3.2.2."
#
if ( mode_homard == "ADAP" ) :
#
-# 3.2.2.1. ==> On recherche si dans les passages déjà effectués, il en existe un
-# dont le maillage d'arrivée était l'actuel maillage d'entrée. Si c'est
+# 3.2.2.1. ==> On recherche si dans les passages deje effectues, il en existe un
+# dont le maillage d'arrivee etait l'actuel maillage d'entree. Si c'est
# le cas, cela veut dire que l'adaptation en cours est la suite d'une
-# précédente. On doit donc utiliser le meme répertoire. Le numéro
-# d'itération est celui de l'adaptation précédente augmenté de 1.
+# precedente. On doit donc utiliser le meme repertoire. Le numero
+# d'iteration est celui de l'adaptation precedente augmente de 1.
#
#gn print "\.. Debut de 3.2.2.1."
#
#
### print "niter = ", niter, ", Rep_Calc_HOMARD_global = ", Rep_Calc_HOMARD_global
#
-# 3.2.3. Création du répertoire pour homard
+# 3.2.3. Creation du repertoire pour homard
# attention : on ne fait cette creation qu'une seule fois par cas
# d'adaptation ou d'information
#
#
#gn print "\.. Debut de 4."
#
-# On doit écrire : le maillage,
+# On doit ecrire : le maillage,
# le champ d'indicateur d'erreur
-# les champs à convertir
+# les champs e convertir
# Remarque : on met tout dans le meme fichier
#
-# Chacune de ces écritures est optionnelle selon le contexte.
-#
- if ( INFO > 1 ) :
- infomail = "OUI"
- else :
- infomail = "NON"
+# Chacune de ces ecritures est optionnelle selon le contexte.
#
-# 4.1. ==> Noms des fichiers d'ASTER vers HOMARD et éventuellement de HOMARD vers ASTER
-# Remarque : aujourd'hui, les écritures ou les lectures au format MED se font obligatoirement sur
-# un fichier de nom fort.n, placé dans le répertoire de calcul
+# 4.1. ==> Noms des fichiers d'ASTER vers HOMARD et eventuellement de HOMARD vers ASTER
+# Remarque : aujourd'hui, les ecritures ou les lectures au format MED se font obligatoirement sur
+# un fichier de nom fort.n, place dans le repertoire de calcul
##
# 4.1.1. ==> D'ASTER vers HOMARD
#
fichier_homard_vers_aster = os.path.join(Rep_Calc_ASTER,"fort." + str(unite_fichier_homard_vers_aster))
### print "fichier_homard_vers_aster = ",fichier_homard_vers_aster
#
-# 4.2. La définition du fichier de ASTER vers HOMARD
+# 4.2. La definition du fichier de ASTER vers HOMARD
#
DEFI_FICHIER ( ACTION= "ASSOCIER",
UNITE = unite_fichier_aster_vers_homard,
TYPE = "LIBRE",
- INFO = INFO )
+ INFO = infocomm )
#
# 4.3. Le(s) maillage(s)
-# Le maillage de calcul et l'éventuel maillage de la frontiere sont écrits
+# Le maillage de calcul et l'eventuel maillage de la frontiere sont ecrits
# dans le meme fichier MED
-# En fait, on pourrait s'en passer au dela de la 1ère itération
-# car HOMARD a mémorisé. Mais dès que l'on écrit un champ,
-# les conventions MED imposent la présence du maillage dans le fichier.
-# Donc on va toujours écrire.
+# En fait, on pourrait s'en passer au dela de la 1ere iteration
+# car HOMARD a memorise. Mais des que l'on ecrit un champ,
+# les conventions MED imposent la presence du maillage dans le fichier.
+# Donc on va toujours ecrire.
#
for dico in liste_maillages :
if ( dico["Action"] == "A_ecrire" ) :
motscfa["RESU"] = _F( INFO_MAILLAGE=infomail,
**motscsi )
#
- IMPR_RESU ( INFO = INFO,
+ IMPR_RESU ( INFO = infocomm,
FORMAT ='MED', UNITE = unite_fichier_aster_vers_homard,
**motscfa )
#
# 4.4. Le(s) champ(s)
-# Attention : il se peut que l'on demande la mise à jour du champ qui a servi comme
+# Attention : il se peut que l'on demande la mise e jour du champ qui a servi comme
# indicateur d'erreur. Si c'est le cas, il ne faut pas demander son
# impression sinon il y a plantage d'IMPR_RESU qui ne sait pas substituer
-# deux champs. D'ailleurs, c'est plus économique ainsi !
+# deux champs. D'ailleurs, c'est plus economique ainsi !
# Remarque : pour l'adaptation, on ne demande a priori qu'une composante du champ d'indicateur.
-# s'il y a demande de mise à jour, toutes les composantes sont concernées. Il faut
+# s'il y a demande de mise e jour, toutes les composantes sont concernees. Il faut
# donc dans ce cas imprimer le champ total.
# dico["Type_Champ"] = o ; string ; "INDICATEUR" ou "CHAMP_MAJ"
-# dico["RESULTAT"] = f ; concept ASTER du résutat associé
+# dico["RESULTAT"] = f ; concept ASTER du resutat associe
# dico["NOM_CHAM"] = f ; string ; Nom ASTER du champ
-# dico["CHAM_GD"] = f ; concept ASTER du champ de grandeur associée
+# dico["CHAM_GD"] = f ; concept ASTER du champ de grandeur associee
# dico["COMPOSANTE"] = f ; string ; Nom ASTER de la composante (dans le cas de l'indicateur)
-# dico["NUME_ORDRE"] = f ; entier ; Numéro d'ordre du champ
+# dico["NUME_ORDRE"] = f ; entier ; Numero d'ordre du champ
# dico["INST"] = f ; entier ; Instant du champ
-# dico["PRECISION"] = f ; entier ; Précision sur l'instant du champ
-# dico["CRITERE"] = f ; entier ; Critère de précision sur l'instant du champ
-# dico["CHAM_MAJ"] = f ; string ; Nom ASTER du champ interpolé sur le nouveau maillage
+# dico["PRECISION"] = f ; entier ; Precision sur l'instant du champ
+# dico["CRITERE"] = f ; entier ; Critere de precision sur l'instant du champ
+# dico["CHAM_MAJ"] = f ; string ; Nom ASTER du champ interpole sur le nouveau maillage
# dico["NOM_MED"] = o ; string ; Nom MED du champ
-# dico["SENSIBILITE"] = f ; string ; Nom du paramètre sensible associé
+# dico["SENSIBILITE"] = f ; string ; Nom du parametre sensible associe
#
-# 4.4.1. Recherche d'un doublon éventuel sur le champ d'indicateur d'erreur
+# 4.4.1. Recherche d'un doublon eventuel sur le champ d'indicateur d'erreur
#
#gn print "dico_indi = ",dico_indi
if len(dico_indi) > 0 :
liste_champs_imprime = []
for dico in liste_champs :
### print "\n.... dico = ",dico
-# Pour un champ à mettre à jour, on a toujours impression
+# Pour un champ e mettre e jour, on a toujours impression
if ( dico["Type_Champ"] == "CHAMP_MAJ" ) :
liste_champs_imprime.append(dico)
-# Si le champ d'indicateur n'a toujours pas été repéré comme champ à mettre à jour :
+# Si le champ d'indicateur n'a toujours pas ete repere comme champ e mettre e jour :
if not indic_est_deja_imprime :
# Est-ce le meme champ ?
on_a_le_champ = 1
else :
on_a_le_champ = 0
break
-# Si oui, est-ce au meme moment ? (remarque : si rien n'est désigné, c'est qu'il n'y a qu'un
-# seul instant ... donc c'est le meme ! En revanche, on ne sait pas comparer une donnée
-# en numéro d'ordre et une donnée en instant. On croise les doigts.)
+# Si oui, est-ce au meme moment ? (remarque : si rien n'est designe, c'est qu'il n'y a qu'un
+# seul instant ... donc c'est le meme ! En revanche, on ne sait pas comparer une donnee
+# en numero d'ordre et une donnee en instant. On croise les doigts.)
if on_a_le_champ :
for cle in [ "NUME_ORDRE", "INST" ] :
if dico.has_key(cle) :
if on_a_le_champ :
indic_est_deja_imprime = 1
### print "\n\nFin de la boucle .. indic_est_deja_imprime = ",indic_est_deja_imprime
-# Si le champ d'indicateur n'a pas été repéré comme champ à mettre à jour, il faut
-# l'inclure dans les champs à imprimer
+# Si le champ d'indicateur n'a pas ete repere comme champ e mettre e jour, il faut
+# l'inclure dans les champs e imprimer
if not indic_est_deja_imprime :
liste_champs_imprime.append(dico_indi)
#
-# 4.4.2. Impressions après le filtrage précédent
+# 4.4.2. Impressions apres le filtrage precedent
#gn print "\n.... Debut de 4.2.4.2."
#
for dico in liste_champs_imprime :
)
#gn print ".. motscfa = ",motscfa
#
- IMPR_RESU ( INFO = INFO,
+ IMPR_RESU ( INFO = infocomm,
FORMAT ='MED', UNITE = unite_fichier_aster_vers_homard,
**motscfa )
#
#====================================================================
-# 5. ==> Création des fichiers de données pour HOMARD
+# 5. ==> Creation des fichiers de donnees pour HOMARD
#====================================================================
#
#gn print "\.. Debut de 5."
#
dico_configuration = {}
#
-# 5.1. ==> Les généralités
+# 5.1. ==> Les generalites
#
dico_configuration["INFO"] = INFO
#
dico_configuration[ "NOM_MED_"+dico["Type_Maillage"] ] = dico["NOM_MED"]
#gn print dico_configuration
#
-# 5.3. ==> Les caracteristiques de l'éventuel indicateur d'erreur
+# 5.3. ==> Les caracteristiques de l'eventuel indicateur d'erreur
#
for dico in liste_champs :
dico_aux = {}
#gn if dico_configuration.has_key("Indicateur") :
#gn print "dico_configuration[Indicateur] = ", dico_configuration["Indicateur"]
#
-# 5.4. ==> Les éventuelles zones de raffinement
+# 5.4. ==> Les eventuelles zones de raffinement
#
prem = 1
for dico in liste_zones :
### if dico_configuration.has_key("Zones") :
### print "dico_configuration[Zones] = ", dico_configuration["Zones"]
#
-# 5.5. ==> La mise à jour de champs
+# 5.5. ==> La mise e jour de champs
#
prem = 1
for dico in liste_champs :
#gn if dico_configuration.has_key("Champs") :
#gn print "dico_configuration[Champs] = ", dico_configuration["Champs"]
#
-# 5.6. ==> Appel de la fonction de création
+# 5.6. ==> Appel de la fonction de creation
#
donnees_homard = creation_donnees_homard.creation_donnees_homard ( self.nom, args, dico_configuration )
- if ( INFO > 1 ) :
+ if ( INFO >= 4 ) :
donnees_homard.quel_mode ( )
fic_homard_niter, fic_homard_niterp1 = donnees_homard.creation_configuration ( )
donnees_homard.ecrire_fichier_configuration ( )
else :
Nom_Fichier_Donnees = "0"
#
-# 5.7. ==> Impression eventuelle des fichiers créés
+# 5.7. ==> Impression eventuelle des fichiers crees
#
-#gn print "Répertoire ",Rep_Calc_HOMARD_global
+#gn print "Repertoire ",Rep_Calc_HOMARD_global
#gn os.system("ls -la "+Rep_Calc_HOMARD_global)
- if ( INFO > 1 ) :
+ if ( INFO >= 4 ) :
l_aux = ["HOMARD.Donnees" , "HOMARD.Configuration"]
else :
l_aux = [ ]
#gn time.sleep(3600)
#
#====================================================================
-# 6. Ecriture de la commande d'exécution de homard
+# 6. Ecriture de la commande d'execution de homard
#====================================================================
#
#
#gn print "\.. Debut de 6."
+#gn os.system("cp " + Rep_Calc_HOMARD_global + "/../fort.17* $HOME/aster")
+#gn os.system("cp " + Rep_Calc_HOMARD_global + "/HOMARD.Configuration $HOME/aster/HOMARD.Configuration"+str(niter))
#gn fichier_aster_vers_homard_2 = os.path.join("/tmp" , "fort." + str(unite_fichier_aster_vers_homard))
#gn shutil.copyfile(fichier_aster_vers_homard, fichier_aster_vers_homard_2)
#
+ iaux = INFO
EXEC_LOGICIEL ( ARGUMENT = (Rep_Calc_HOMARD_global, # nom du repertoire
VERSION_HOMARD, # version de homard
- str(INFO), # niveau d information
- Nom_Fichier_Donnees, # fichier de données HOMARD
+ str(iaux), # niveau d information
+ Nom_Fichier_Donnees, # fichier de donnees HOMARD
str(version_perso), # version personnelle de homard ?
),
- LOGICIEL = homard
+ LOGICIEL = homard,
+ INFO = INFO,
)
#gn import time
#gn time.sleep(3600)
# Remarque :
# La fonction self.DeclareOut(a,b) fonctionne ainsi :
# a est une chaine de caracteres
-# b est la variable déclarée dans la commande
-# le but est de associer le contenu de b à la variable locale qui sera désignée par a
+# b est la variable declaree dans la commande
+# le but est de associer le contenu de b e la variable locale qui sera designee par a
# Exemple :
# self.DeclareOut("maillage_a_lire",args["MAILLAGE_NP1"])
-# ==> la variable maillage_a_lire est identifiée à l'argument "MAILLAGE_NP1"
+# ==> la variable maillage_a_lire est identifiee e l'argument "MAILLAGE_NP1"
#====================================================================
#
if ( mode_homard == "ADAP" ) :
#
# 7.1. ==> Le maillage
+# On inhibe l'alarme MODELISA5_49 qui apparait car on fait VERIF=NON
#
#gn print "args = ",args
for dico in liste_maillages :
#gn print dico
if ( dico["Action"] == "A_lire" ) :
+#
+ MasquerAlarme('MODELISA5_49')
+#
self.DeclareOut("maillage_a_lire", dico["Nom_ASTER"])
maillage_a_lire = LIRE_MAILLAGE ( UNITE = unite_fichier_homard_vers_aster,
FORMAT = "MED",
NOM_MED = dico["NOM_MED"],
- VERI_MAIL = _F(VERIF="NON"), INFO_MED = INFO, INFO = INFO )
+ VERI_MAIL = _F(VERIF="NON"), INFO_MED = infocomm, INFO = infocomm )
+#
+ RetablirAlarme('MODELISA5_49')
+#
#gn print "MAILLAGE = ",maillage_a_lire
#gn print "NOM_MED = ",dico["NOM_MED"]
if ( dico["Type_Maillage"] == "MAILLAGE_NP1" ) :
champ_maj = LIRE_CHAMP ( UNITE = unite_fichier_homard_vers_aster, FORMAT = "MED",
MAILLAGE = maillage_np1, NOM_MAIL_MED=maillage_np1_nom_med,
NOM_MED = dico["NOM_MED"], NOM_CMP_IDEM = "OUI", TYPE_CHAM = dico["TYPE_CHAM"],
- INFO = INFO, **motscsi )
+ INFO = infocomm, **motscsi )
#
#====================================================================
# 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
+# En mode d'information, on garde egalement les fichiers textes
#====================================================================
#
liste_aux = [fichier_aster_vers_homard]
liste_aux.append(fichier_homard_vers_aster)
fic = os.path.join(Rep_Calc_HOMARD_global, fic_homard_niterp1)
liste_aux_bis.append(fic)
+#gn os.system("cp " + Rep_Calc_HOMARD_global + "/* $HOME/aster")
#
for fic in liste_aux :
if fic not in liste_aux_bis :
- if ( INFO > 1 ) :
+ if ( INFO >= 3 ) :
print "Destruction du fichier ", fic
if os.path.isfile(fic) :
try :
except os.error,codret_partiel :
self.cr.warn("Code d'erreur de remove : " + str(codret_partiel[0]) + " : " + codret_partiel[1])
UTMESS("F",'HOMARD0_5',valk=fic)
-#gn print "Répertoire ",Rep_Calc_HOMARD_global
+#gn print "Repertoire ",Rep_Calc_HOMARD_global
#gn os.system("ls -la "+Rep_Calc_HOMARD_global)
-#gn print "Répertoire ",Rep_Calc_ASTER
+#gn print "Repertoire ",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 !
#====================================================================
#
-#gn if ( mode_homard == "ADAP" ) :
-#gn import time
-#gn time.sleep(3600)
+### if ( mode_homard == "ADAP" and niter == 3 ) :
+### if ( niter == 2 ) :
+### import time
+### time.sleep(3600)
#
return
-#@ MODIF macr_cara_poutre_ops Macro DATE 16/10/2007 AUTEUR REZETTE C.REZETTE
+#@ MODIF macr_cara_poutre_ops Macro DATE 30/06/2008 AUTEUR FLEJOU J-L.FLEJOU
# -*- coding: iso-8859-1 -*-
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2003 EDF R&D WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
-# (AT YOUR OPTION) ANY LATER VERSION.
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
-# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
# ======================================================================
# RESPONSABLE JMBHH01 J.M.PROIX
-def macr_cara_poutre_ops(self,UNITE_MAILLAGE,SYME_X,SYME_Y,GROUP_MA_BORD,
+def macr_cara_poutre_ops(self,MAILLAGE,SYME_X,SYME_Y,GROUP_MA_BORD,
GROUP_MA,ORIG_INER,**args):
"""
Ecriture de la macro MACR_CARA_POUTRE
# La macro compte pour 1 dans la numerotation des commandes
self.set_icmd(1)
- # Le concept sortant (de type table_sdaster) est nommé 'nomres' dans
- # le contexte de la macro
-
+ # Le concept sortant (de type table_sdaster) est nommé 'nomres' dans le contexte de la macro
self.DeclareOut('nomres',self.sd)
-
-# if GROUP_MA_BORD and GROUP_MA:
-# if not LIAISON:
-#
- __nomlma=LIRE_MAILLAGE(UNITE=UNITE_MAILLAGE,)
+ #
+ if ( MAILLAGE != None ):
+ __nomlma=CREA_MAILLAGE(MAILLAGE=MAILLAGE)
+ elif ( args.has_key('UNITE') and args.has_key('FORMAT') ):
+ __nomlma=LIRE_MAILLAGE(UNITE=args['UNITE'],FORMAT=args['FORMAT'])
+ else:
+ assert False, "Erreur dans les options UNITE, FORMAT, MAILLAGE"
__nomamo=AFFE_MODELE(MAILLAGE=__nomlma,
AFFE=_F(TOUT='OUI',
# --- = OU DU CENTRE DE TORSION/CISAILLEMENT =
# --- = DES COEFFICIENTS DE CISAILLEMENT =
# --- = ET DE L INERTIE DE GAUCHISSEMENT =
-# --- = DU RAYON DE TORSION SUR TOUT LE MAILLAGE
+# --- = DU RAYON DE TORSION SUR TOUT LE MAILLAGE
# --- = ON CREE UN MODELE PLAN 2D THERMIQUE REPRESENTANT LA SECTION =
# --- = DE LA POUTRE CAR ON A A RESOUDRE DES E.D.P. AVEC DES LAPLACIENS=
# ==================================================================
__nomlma=DEFI_GROUP(reuse=__nomlma,
MAILLAGE=__nomlma,
**motscles)
-
+
# --- CREATION D UN MAILLAGE IDENTIQUE AU PREMIER A CECI PRES
motscles={}
motscles['FLUX_REP']=[]
-
+
if type(lgmaint)==types.StringType:
motscles['FLUX_REP']=_F(GROUP_MA=args['GROUP_MA_INTE'],CARA_TORSION=__tbaire)
else:
__tempe2=THER_LINEAIRE(MODELE=__nomoth,
CHAM_MATER=__chmath,
- EXCIT=_F(CHARGE=__chart2,),
+ EXCIT=_F(CHARGE=__chart2,),
SOLVEUR=_F(STOP_SINGULIER='NON',),
)
__tempe3=THER_LINEAIRE(MODELE=__nomoth,
CHAM_MATER=__chmath,
- EXCIT=_F(CHARGE=__chart3,),
+ EXCIT=_F(CHARGE=__chart3,),
SOLVEUR=_F(STOP_SINGULIER='NON',),
)
__m1=abs(__flun['TRAC_NOR',3])
__m2=abs(__flun['TRAC_NOR',4])
__rtext=max(__m1,__m2)
-
+
# CALCUL DU RAYON DE TORSION : rt
# rt = max ( rtext , 2*AIRE(TROU)/L(TROU) )
-
+
if args.has_key('GROUP_MA_INTE'):
if args['GROUP_MA_INTE'] != None :
if type(args['GROUP_MA_INTE'])==types.StringType :
__rtext=__m1
__rt=__rtext
-
+
# --- CALCUL DE LA CONSTANTE DE TORSION :
# ---------------------------------
else:
motscles['CARA_POUTRE']=_F(CARA_GEOM=__cageo,
LAPL_PHI=__tempe1,
- RT=__rt,
+ RT=__rt,
TOUT='OUI',
OPTION='CARA_TORSION', )
__cator=POST_ELEM(MODELE=__nomoth,
CHAM_MATER=__chmath,
**motscles )
-
+
# --- CALCUL DES COEFFICIENTS DE CISAILLEMENT ET DES COORDONNEES DU
# --- CENTRE DE CISAILLEMENT/TORSION :
LAPL_PHI_Z=__tempe3,
TOUT='OUI',
OPTION='CARA_CISAILLEMENT',), )
-
+
#
# ------------------------------------------------------------
SOLVEUR=_F(METHODE='LDLT',
RENUM='SANS',
STOP_SINGULIER='NON',), )
-
+
# --- CALCUL DE L INERTIE DE GAUCHISSEMENT :
# -------------------------------------
TOUT='OUI',
OPTION='CARA_GAUCHI'), )
-
+
#
# ==================================================================
# --- = CALCUL DE LA CONSTANTE DE TORSION SUR CHAQUE GROUPE =
CHAM_MATER=__chmath,
EXCIT=_F(CHARGE=__chart3, ),
SOLVEUR=_F(STOP_SINGULIER='NON',) )
-
+
# --- CALCUL DU RAYON DE TORSION :
# --------------------------
NOM_CHAM='FLUX_ELNO_TEMP',
TRAC_NOR='OUI',
NOM_CMP=('FLUX','FLUY'),
- OPERATION='MOYENNE'))
+ OPERATION='MOYENNE'))
__m1=(abs(__flun['TRAC_NOR',3])+abs(__flun['TRAC_NOR',4]))/2.
if __m1 > __rtext :
__rtext=__m1
__rt=__rtext
-
+
# --- CALCUL DE LA CONSTANTE DE TORSION :
# ---------------------------------
-
+
__catp1=POST_ELEM(MODELE=__nomoth,
CHAM_MATER=__chmath,
CARA_POUTRE=_F(CARA_GEOM=__catp2,
-#@ MODIF macr_lign_coupe_ops Macro DATE 07/04/2008 AUTEUR GALENNE E.GALENNE
+#@ MODIF macr_lign_coupe_ops Macro DATE 07/10/2008 AUTEUR PELLET J.PELLET
# -*- coding: iso-8859-1 -*-
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
from Noyau.N_utils import AsType
import aster,math
from Utilitai.UniteAster import UniteAster
- from Utilitai.Utmess import UTMESS
+ from Utilitai.Utmess import UTMESS, MasquerAlarme, RetablirAlarme
ier=0
# On importe les definitions des commandes a utiliser dans la macro
# La macro compte pour 1 dans la numerotation des commandes
self.set_icmd(1)
+ #
+ MasquerAlarme('CALCULEL2_63')
+ MasquerAlarme('CALCULEL2_64')
+ MasquerAlarme('MODELISA5_53')
+
mcORDR={}
if RESULTAT != None:
mcORDR['TOUT_ORDRE']='OUI'
nomresu=RESULTAT.nom
- l_modele=aster.getvectjev(nomresu.ljust(19)+'.MODL')
- n_modele=string.strip(l_modele[0])
+ iret,ibid,n_modele = aster.dismoi('F','MODELE',nomresu,'RESULTAT')
+ n_modele=n_modele.strip()
if n_modele=='' :
if MODELE==None:
UTMESS('F','POST0_9',valk=nomresu)
nomres=CREA_TABLE(**dprod)
+ RetablirAlarme('CALCULEL2_63')
+ RetablirAlarme('CALCULEL2_64')
+ RetablirAlarme('MODELISA5_53')
return ier
-#@ MODIF macr_recal_ops Macro DATE 19/11/2007 AUTEUR COURTOIS M.COURTOIS
+#@ MODIF macr_recal_ops Macro DATE 04/11/2008 AUTEUR ASSIRE A.ASSIRE
# -*- coding: iso-8859-1 -*-
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
return fonctionnelle, gradient
+# --------------------------------------------------------------------------------------------------
+def force_list(obj, typref=list):
+ """Retourne 'obj' sous forme d'une liste de 'typref'.
+ """
+ if type(obj) not in (list, tuple):
+ assert type(obj) == typref, '%s != %s' % (type(obj), typref)
+ obj = [obj,]
+ elif len(obj) > 0:
+ elt = obj[0]
+ if type(elt) != typref:
+ obj = [obj,]
+ return obj
# --------------------------------------------------------------------------------------------------
def macr_recal_ops(self,UNITE_ESCL, RESU_EXP, POIDS, LIST_PARA, LIST_DERIV, RESU_CALC,
self.current_context[k]= v
self.current_context['_F']=cata.__dict__['_F']
- macr_recal(UNITE_ESCL, RESU_EXP, POIDS, LIST_PARA, LIST_DERIV, RESU_CALC,
+ macr_recal(UNITE_ESCL, force_list(RESU_EXP, Numeric.ArrayType), POIDS, force_list(LIST_PARA), LIST_DERIV, force_list(RESU_CALC),
ITER_MAXI, ITER_FONC_MAXI, RESI_GLOB_RELA,UNITE_RESU,PARA_DIFF_FINI,
GRAPHIQUE, SUIVI_ESCLAVE, METHODE, INFO, **args)
-#@ MODIF macro_expans_ops Macro DATE 26/03/2008 AUTEUR BODEL C.BODEL
+#@ MODIF macro_expans_ops Macro DATE 03/11/2008 AUTEUR PELLET J.PELLET
# -*- coding: iso-8859-1 -*-
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2006 EDF R&D WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
-# (AT YOUR OPTION) ANY LATER VERSION.
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
-# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
# ======================================================================
import aster
EXTR_MODE = self.get_cmd('EXTR_MODE')
PROJ_MESU_MODAL = self.get_cmd('PROJ_MESU_MODAL')
- REST_BASE_PHYS = self.get_cmd('REST_BASE_PHYS')
+ REST_GENE_PHYS = self.get_cmd('REST_GENE_PHYS')
PROJ_CHAMP = self.get_cmd('PROJ_CHAMP')
NORM_MODE = self.get_cmd('NORM_MODE')
-
-
+
+
# La macro compte pour 1 dans la numerotation des commandes
self.set_icmd(1)
- NUME_MODE_NUM = MODELE_CALCUL['NUME_MODE']
- NUME_MODE_EXP = MODELE_MESURE['NUME_MODE']
-
+ is_nume_num = is_nume_exp = 0
+ if MODELE_CALCUL['NUME_MODE'] or MODELE_CALCUL['NUME_ORDRE']:
+ # on cree un resultat RESU_NX par extraction de NUME_ORDREs
+ is_nume_num = 1
+ else:
+ if RESU_NX: UTMESS('A','MEIDEE0_6',valk=['MODELE_MESURE','RESU_EX'])
+ if MODELE_MESURE['NUME_MODE'] or MODELE_MESURE['NUME_ORDRE']:
+ # On cree un RESU_EX par extraction de NUME_ORDREs
+ is_nume_exp = 1
+ else:
+ if RESU_EX: UTMESS('A','MEIDEE0_6',valk=['MODELE_CALCUL','RESU_NX'])
+
RESU_NUM = MODELE_CALCUL['BASE']
RESU_EXP = MODELE_MESURE['MESURE']
# Extraction des modes numériques
# -------------------------------
- self.DeclareOut( "RESU_NX", RESU_NX )
- if not NUME_MODE_NUM:
+ if not is_nume_num:
RESU_NX = RESU_NUM
else:
- RESU_NX = EXTR_MODE( FILTRE_MODE=_F( MODE=RESU_NUM,
- NUME_MODE=NUME_MODE_NUM ) )
+ self.DeclareOut( "RESU_NX", RESU_NX )
+ mfact = {'MODE':RESU_NUM}
+ if MODELE_CALCUL['NUME_MODE']:
+ mfact.update({'NUME_MODE':MODELE_CALCUL['NUME_MODE']})
+ elif MODELE_CALCUL['NUME_ORDRE']:
+ mfact.update({'NUME_ORDRE':MODELE_CALCUL['NUME_ORDRE']})
+
+ RESU_NX = EXTR_MODE( FILTRE_MODE = mfact )
+
-
# Extraction des modes expérimentaux
# ----------------------------------
- self.DeclareOut( "RESU_EX", RESU_EX )
- if not NUME_MODE_EXP:
+ if not is_nume_exp:
RESU_EX = RESU_EXP
else:
- RESU_EX = EXTR_MODE( FILTRE_MODE=_F( MODE=RESU_EXP,
- NUME_MODE=NUME_MODE_EXP ) )
+ self.DeclareOut( "RESU_EX", RESU_EX )
+ mfact = {'MODE':RESU_EXP}
+ if MODELE_MESURE['NUME_MODE']:
+ mfact.update({'NUME_MODE':MODELE_MESURE['NUME_MODE']})
+ elif MODELE_MESURE['NUME_ORDRE']:
+ mfact.update({'NUME_ORDRE':MODELE_MESURE['NUME_ORDRE']})
+
+ RESU_EX = EXTR_MODE( FILTRE_MODE = mfact )
+
-
# Projection des modes experimentaux - on passe le mot-clef
# RESOLUTION directement à PROJ_MESU_MODAL
# ---------------------------------------------------------
paras = None
#"LE MODELE MEDURE DOIT ETRE UN CONCEPT DE TYPE DYNA_HARMO OU MODE_MECA")
UTMESS('A','MEIDEE0_1')
-
-
+
+
try:
__PROJ = PROJ_MESU_MODAL(MODELE_CALCUL = _F( BASE=RESU_NX,
MODELE=MOD_CALCUL,
);
except Exception, err:
raise Exception, err
-
+
# Phase de reconstruction des donnees mesurees sur le maillage
# numerique
# ------------------------------------------------------------
self.DeclareOut( "RESU_ET", RESU_ET )
- RESU_ET = REST_BASE_PHYS( RESU_GENE = __PROJ,
+ RESU_ET = REST_GENE_PHYS( RESU_GENE = __PROJ,
MODE_MECA = RESU_NX,
TOUT_ORDRE = 'OUI',
NOM_CHAM = NOM_CHAM);
-
+
# Restriction des modes mesures etendus sur le maillage capteur
# -------------------------------------------------------------
self.DeclareOut( "RESU_RD", RESU_RD )
refd1 = aster.getvectjev(RESU_EXP.nom.ljust(19)+".REFD")
refd2 = aster.getvectjev(RESU_EX.nom.ljust(19)+".REFD")
+ nume=None
if RESU_EX.REFD.get():
tmp = RESU_EX.REFD.get()[3]
- nume = self.jdc.sds_dict[tmp.strip()]
+ if tmp.strip() :
+ nume = self.jdc.sds_dict[tmp.strip()]
elif NUME_DDL:
nume = NUME_DDL
- else:
+ if not nume :
UTMESS('A','MEIDEE0_5')
RESU_RD = PROJ_CHAMP( METHODE = 'ELEM',
RESULTAT = RESU_ET,
NOM_PARA = paras,
);
-
+
return ier
-#@ MODIF macro_matr_asse_ops Macro DATE 18/03/2008 AUTEUR BOYERE E.BOYERE
+#@ MODIF macro_matr_asse_ops Macro DATE 17/11/2008 AUTEUR DELMAS J.DELMAS
# -*- coding: iso-8859-1 -*-
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
motscles['RIGI_MECA'] =rigel
motscles['MASS_MECA'] =masel
if CHARGE != None:
- if option[0:9] not in ('MASS_THER','RIGI_GEOM','MASS_ID_M'):
+ if option[0:9] not in ('MASS_THER','RIGI_GEOM'):
motscles['CHARGE'] =CHARGE
if CHAM_MATER != None: motscles['CHAM_MATER'] =CHAM_MATER
if CARA_ELEM != None: motscles['CARA_ELEM'] =CARA_ELEM
+++ /dev/null
-#@ MODIF macro_visu_meidee_ops Macro DATE 14/05/2008 AUTEUR BODEL C.BODEL
-# -*- coding: iso-8859-1 -*-
-# CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2006 EDF R&D WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
-# (AT YOUR OPTION) ANY LATER VERSION.
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
-# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
-# ======================================================================
-
-## \package macro_visu_meidee_ops Implémentation de la macro MACRO_VISU_MEIDEE
-#
-# Ce module contient la partie controle de la macro MACRO_VISU_MEIDEE
-# l'implémetation de cette macro se trouve dans les modules
-# meidee_help, meidee_mac, meidee_massamor, meidee_turbulent
-# on utilise aussi une librairie de support
-# pour la gestion de l'interface graphique dans meidee_iface
-
-
-def macro_visu_meidee_ops( self,
- INTERACTIF = None,
- UNITE_FIMEN = None,
- UNITE_RESU = None,
- EXPANSION = None,
- FLUIDE_ELASTIQUE = None,
- TURBULENT = None,
- MODIFSTRUCT = None,
- GROUP_NO_CAPTEURS = None,
- GROUP_NO_EXTERIEUR = None,
- RESU_FLUDELA = None,
- RESU_TURBULENT = None,
- RESU_MODIFSTRU = None,
- **args):
- import aster
- from Meidee.meidee_cata import MeideeObjects
- ier = 0
-
- prev = aster.onFatalError()
- aster.onFatalError("EXCEPTION")
-
- # La macro compte pour 1 dans la numerotation des commandes
- self.set_icmd(1)
-
-
- # gestion des concepts sortants de la macro, declares a priori
- table = []
- table_fonction = []
-
- if not RESU_MODIFSTRU:
- out_modifstru = {}
- else:
- out_modifstru = RESU_MODIFSTRU[0] # max=1 dans le capy
-
-
- if not RESU_TURBULENT:
- RESU_TURBULENT = []
- else:
- for res in RESU_TURBULENT:
- table_fonction.append(res['TABLE'])
- out_turbulent = {"DeclareOut" : self.DeclareOut,
- "TypeTables" : 'TABLE_FONCTION',
- "ComptTable" : 0,
- "TablesOut" : table_fonction}
-
- if not RESU_FLUDELA:
- RESU_FLUDELA = []
- else:
- for res in RESU_FLUDELA:
- table.append(res['TABLE'])
- out_fludela = {"DeclareOut" : self.DeclareOut,
- "TypeTables" : 'TABLE',
- "ComptTable" : 0,
- "TablesOut" : table}
-
-
- # Mode interactif : ouverture d'une fenetre Tk
- if INTERACTIF == "OUI":
- create_interactive_window(self,
- UNITE_FIMEN,
- UNITE_RESU,
- out_fludela,
- out_turbulent,
- out_modifstru)
- else:
- from Meidee.meidee_calcul import MessageBox
- from Meidee.meidee_test import TestMeidee
- mess = MessageBox(UNITE_RESU)
- mess.disp_mess("Mode non intéractif")
-
- objects = MeideeObjects(self, mess)
-
- # importation des concepts aster existants de la memoire jeveux
- TestMeidee(self,
- mess,
- out_fludela,
- out_turbulent,
- out_modifstru,
- objects,
- EXPANSION,
- FLUIDE_ELASTIQUE,
- TURBULENT,
- MODIFSTRUCT,
- GROUP_NO_CAPTEURS,
- GROUP_NO_EXTERIEUR
- )
-
- mess.close_file()
- aster.onFatalError(prev)
- return ier
-
-
-
-def create_tab_mess_widgets(tk, UNITE_RESU):
- """Construits les objects table et boîte à messages."""
- try:
- from Pmw import PanedWidget
- except ImportError:
- PanedWidget = None
-
- from Meidee.meidee_iface import MessageBoxInteractif, TabbedWindow
-
- if PanedWidget:
- pw = PanedWidget(tk, orient='vertical',
- hull_borderwidth = 1,
- hull_relief = 'sunken',
- )
- tabsw = pw.add("main", min=.1, max=.9)
- msgw = pw.add("msg", min=.1, max=.2)
- pw.grid(sticky='nsew')
- tabsw.rowconfigure(0, weight=1)
- tabsw.columnconfigure(0, weight=1)
- msgw.rowconfigure(0, weight=1)
- msgw.columnconfigure(0, weight=1)
- else:
- tabsw = tk
- msgw = tk
- tk.rowconfigure(1, weight=3)
- tk.rowconfigure(1, weight=1)
-
- tabs = TabbedWindow(tabsw, ["Expansion de modeles",
- "Modification structurale",
- "MEIDEE mono-modal",
- "Identification de chargement"])
-
- tabs.grid(row=0, column=0, sticky='nsew')
- # pack(side='top',expand=1,fill='both')
-
- # ecriture des message dans un fichier message
- mess = MessageBoxInteractif(msgw, UNITE_RESU)
- if PanedWidget:
- mess.grid(row=0, column=0, sticky='nsew')
- #mess.pack(side='top',expand=1,fill='both')
- else:
- mess.grid(row=1, column=0, sticky='nsew')
- #mess.pack(side='top',expand=1,fill='both')
-
- return tabs, mess
-
-def get_fimen_files(UNITE_FIMEN, FIMEN=None):
- """Fichiers fimen éventuels associés aux unités logiques en entrée"""
- # XXX FIMEN is not defined (should it be included in the macro)
- from Utilitai.UniteAster import UniteAster
- fichiers_fimen = []
- print "FIMEN:", UNITE_FIMEN
-
- if UNITE_FIMEN:
- if type(FIMEN)==int:
- UNITE_FIMEN= [ UNITE_FIMEN ]
- for unit in UNITE_FIMEN:
- UL = UniteAster()
- fichiers_fimen.append( (unit, UL.Nom(unit)) )
-
- return fichiers_fimen
-
-
-class FermetureCallback:
- """Opérations à appliquer lors de la fermeture de la
- fenêtre Tk.
- """
-
- def __init__(self, main_tk, turbulent):
- self.main_tk = main_tk
- self.turbulent = turbulent
-
- def apply(self):
- """Enlève les fichiers temporaires de Xmgrace"""
- self.turbulent.xmgr_manager.fermer()
- self.main_tk.quit()
-
-
-def create_interactive_window(macro,
- UNITE_FIMEN,
- UNITE_RESU,
- out_fludela,
- out_turbulent,
- out_modifstru):
- """Construit la fenêtre interactive comprenant une table pour
- les 4 domaines de Meidee."""
- from Tkinter import Tk
-
- from Meidee.meidee_cata import MeideeObjects
- from Meidee.meidee_correlation import InterfaceCorrelation
- from Meidee.meidee_modifstruct import InterfaceModifStruct
- from Meidee.meidee_fludela import InterfaceFludela
- from Meidee.meidee_turbulent import InterfaceTurbulent
-
- # fenetre principale
- tk = Tk()
- tk.rowconfigure(0, weight=1)
- tk.columnconfigure(0,weight=1)
-
- tabs, mess = create_tab_mess_widgets(tk, UNITE_RESU)
- main = tabs.root()
-
- # importation des concepts aster de la memoire jeveux
- objects = MeideeObjects(macro, mess)
- tabs.set_objects(objects)
-
- iface = InterfaceCorrelation(main, objects, macro, mess)
- imodifstruct = InterfaceModifStruct(main, objects, macro,
- mess, out_modifstru)
- fludela = InterfaceFludela(main, objects,
- get_fimen_files(UNITE_FIMEN), mess, out_fludela)
- turbulent = InterfaceTurbulent(main, objects, mess, out_turbulent)
-
- tabs.set_tab("Expansion de modeles", iface.main)
- tabs.set_tab("Modification structurale", imodifstruct.main)
- tabs.set_tab("MEIDEE mono-modal", fludela )
- tabs.set_tab("Identification de chargement", turbulent)
-
- #tabs.set_current_tab("Modifstruct")
- tabs.set_current_tab("Identification de chargement")
-
- tk.protocol("WM_DELETE_WINDOW", FermetureCallback(tk, turbulent).apply)
-
- try:
- tk.mainloop()
- except :
- print "MEIDEE : *ERREUR*"
-
-
-#@ MODIF observation_ops Macro DATE 26/03/2008 AUTEUR BODEL C.BODEL
+#@ MODIF observation_ops Macro DATE 14/10/2008 AUTEUR PELLET J.PELLET
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# cham_mater et cara_elem pour le resultat a projeter
jdc = CONTEXT.get_current_step().jdc
- nom_cara_elem = aster.getvectjev( RESULTAT.nom.ljust(19) +
- '.CARA ' )[0].strip()
- if len(nom_cara_elem) > 0 :
-## nom_cara_elem = nom_cara_elem[0].strip()
- cara_elem = jdc.sds_dict[nom_cara_elem]
+ iret,ibid,nom_cara_elem = aster.dismoi('F','CARA_ELEM',RESULTAT.nom,'RESULTAT')
+ if len(nom_cara_elem) > 0 :
+ assert nom_cara_elem.strip() != "#PLUSIEURS" , nom_cara_elem
+ if nom_cara_elem.strip() == "#AUCUN" :
+ cara_elem = None
+ else :
+ cara_elem = jdc.sds_dict[nom_cara_elem.strip()]
else:
cara_elem = None
-
- nom_cham_mater = aster.getvectjev( RESULTAT.nom.ljust(19) +
- '.MATE ' )[0].strip()
+
+ iret,ibid,nom_cham_mater = aster.dismoi('F','CHAM_MATER',RESULTAT.nom,'RESULTAT')
if len(nom_cham_mater) > 0 :
-## nom_cham_mater = nom_cham_mater[0].strip()
- cham_mater = jdc.sds_dict[nom_cham_mater]
+ assert nom_cham_mater.strip() != "#PLUSIEURS" , nom_cham_mater
+ if nom_cham_mater.strip() == "#AUCUN" :
+ cham_mater = None
+ else :
+ cham_mater = jdc.sds_dict[nom_cham_mater.strip()]
else:
cham_mater = None
# recuperation du maillage associe au modele experimental
- _maillag = aster.getvectjev( MODELE_2.nom.ljust(8) + '.MODELE .LGRF ' )
+ _maillag = aster.getvectjev( MODELE_2.nom.ljust(8) + '.MODELE .LGRF' )
maillage = _maillag[0].strip()
jdc = CONTEXT.get_current_step().jdc
mayaexp = jdc.sds_dict[maillage]
- _maillag = aster.getvectjev( MODELE_1.nom.ljust(8) + '.MODELE .LGRF ' )
+ _maillag = aster.getvectjev( MODELE_1.nom.ljust(8) + '.MODELE .LGRF' )
maillage = _maillag[0].strip()
jdc = CONTEXT.get_current_step().jdc
mayanum = jdc.sds_dict[maillage]
from Accas import _F
# recherche du maillage associe au modele numerique
nom_modele_num = modele_1.nom
- _maillag = aster.getvectjev( nom_modele_num.ljust(8) + '.MODELE .LGRF ' )
+ _maillag = aster.getvectjev( nom_modele_num.ljust(8) + '.MODELE .LGRF' )
maillage = _maillag[0].strip()
jdc = CONTEXT.get_current_step().jdc
mayanum = jdc.sds_dict[maillage]
affe_dct["CHAM_MATER"] = cham_mater
if cara_elem is not None:
affe_dct["CARA_ELEM"] = cara_elem
-
+
__norm3 = CREA_RESU( OPERATION = 'AFFE',
TYPE_RESU = 'EVOL_ELAS',
NOM_CHAM = 'DEPL',
-#@ MODIF post_dyna_alea_ops Macro DATE 25/04/2008 AUTEUR ZENTNER I.ZENTNER
+#@ MODIF post_dyna_alea_ops Macro DATE 06/10/2008 AUTEUR ZENTNER I.ZENTNER
# -*- coding: iso-8859-1 -*-
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
#---------algorithme d'optimisation pour le maximum de vraisemblance
def vrais(x):
am=x[0]
- assert am >0.000, 'optimize.py: am negatif'
beta=x[1]
- assert am >0.000, 'optimize.py: beta negatif'
+# assert am >0.000, 'optimize.py: beta negatif'
+# assert am >0.000, 'optimize.py: am negatif'
+ if am <=0.000:
+ am=0.01
+ if beta <=0.000:
+ beta=0.001
res=1.0
for k in range(Nbval):
ai=liste_indic[k]
mcfact.append(_F(PARA= 'PARA_NOCI' ,LISTE_R =liste_a ))
mcfact.append(_F(PARA= 'PFA' ,LISTE_R = lpfa ))
- #print 'fractiles a calculer par bootstrap : ', FRAGILITE['FRACTILE']
-
# si calcul de fractiles (intervalles de confiance) par bootstrap
+ x0 = xopt
if FRAGILITE['FRACTILE']!= None :
if INFO==2 :
texte='FRACTILES A CALCULER PAR BOOTSTRAP '+ str(FRAGILITE['FRACTILE']) +'\n'
if INFO==2 :
texte1='BOOTSTRAP TIRAGE '+ str(kb+1)
texte2=' PARAMETRES Am, beta ESTIMES : '+str(xopt)+'\n'
- aster.affiche('MESSAGE',texte1) #print 'bootstrap tirage', kb+1, ', - parametres Am, beta estimes: ', xopt
+ aster.affiche('MESSAGE',texte1)
aster.affiche('MESSAGE',texte2)
vecval=(Numeric.log(vec_a/xopt[0]))/xopt[1]
for m in range(Nba):
-#@ MODIF post_k1_k2_k3_ops Macro DATE 13/05/2008 AUTEUR GALENNE E.GALENNE
+#@ MODIF post_k1_k2_k3_ops Macro DATE 17/11/2008 AUTEUR PROIX J-M.PROIX
# -*- coding: iso-8859-1 -*-
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
for value in t :
m += value
return (m/len(t))
+
+def InterpolFondFiss(s0, Coorfo) :
+# Interpolation des points du fond de fissure (xfem)
+# s0 = abscisse curviligne du point considere
+# Coorfo = Coordonnees du fond (extrait de la sd fiss_xfem)
+# en sortie : xyza = Coordonnees du point et abscisse
+ n = len(Coorfo) / 4
+ if ( s0 < Coorfo[3] ) :
+ xyz = [Coorfo[0],Coorfo[1],Coorfo[2]]
+ return xyz
+ if ( s0 > Coorfo[-1] ) :
+ xyz = [Coorfo[-4],Coorfo[-3],Coorfo[-2]]
+ return xyz
+ i = 1
+ while s0 > Coorfo[4*i+3]:
+ i = i+1
+ xyz = [0.]*4
+ xyz[0] = (s0-Coorfo[4*(i-1)+3]) * (Coorfo[4*i+0]-Coorfo[4*(i-1)+0]) / (Coorfo[4*i+3]-Coorfo[4*(i-1)+3]) + Coorfo[4*(i-1)+0]
+ xyz[1] = (s0-Coorfo[4*(i-1)+3]) * (Coorfo[4*i+1]-Coorfo[4*(i-1)+1]) / (Coorfo[4*i+3]-Coorfo[4*(i-1)+3]) + Coorfo[4*(i-1)+1]
+ xyz[2] = (s0-Coorfo[4*(i-1)+3]) * (Coorfo[4*i+2]-Coorfo[4*(i-1)+2]) / (Coorfo[4*i+3]-Coorfo[4*(i-1)+3]) + Coorfo[4*(i-1)+2]
+ xyz[3] = s0
+ return xyz
+
+def InterpolBaseFiss(s0, Basefo, Coorfo) :
+# Interpolation de la base locale en fond de fissure
+# s0 = abscisse curviligne du point considere
+# Basefo = base locale du fond (VNx,VNy,VNz,VPx,VPy,VPz)
+# Coorfo = Coordonnees et abscisses du fond (extrait de la sd fiss_xfem)
+# en sortie : VPVNi = base locale au point considere (6 coordonnes)
+ n = len(Coorfo) / 4
+ if ( s0 < Coorfo[3] ) :
+ VPVNi = Basefo[0:6]
+ return VPVNi
+ if ( s0 > Coorfo[-1] ) :
+ VPVNi = [Basefo[i] for i in range(-6,0)]
+ return VPVNi
+ i = 1
+ while s0 > Coorfo[4*i+3]:
+ i = i+1
+ VPVNi = [0.]*6
+ for k in range(6) :
+ VPVNi[k] = (s0-Coorfo[4*(i-1)+3]) * (Basefo[6*i+k]-Basefo[6*(i-1)+k]) / (Coorfo[4*i+3]-Coorfo[4*(i-1)+3]) + Basefo[6*(i-1)+k]
+ return VPVNi
+
def post_k1_k2_k3_ops(self,MODELISATION,FOND_FISS,FISSURE,MATER,RESULTAT,
TABL_DEPL_SUP,TABL_DEPL_INF,ABSC_CURV_MAXI,PREC_VIS_A_VIS,
Lnofon = Lnf1
Nbnofo = Nbf1
ListmaS = FOND_FISS.LEVRESUP___MAIL.get()
+ if ListmaS==None : UTMESS('F','RUPTURE0_19')
if SYME_CHAR=='SANS':
ListmaI = FOND_FISS.LEVREINF___MAIL.get()
__NCOFON=POST_RELEVE_T(ACTION=_F(INTITULE='Tab pour coordonnees noeuds du fond',
if NB_NOEUD_COUPE < 3 :
UTMESS('A','RUPTURE0_17')
NB_NOEUD_COUPE = 5
- MOD = aster.getvectjev(string.ljust(RESULTAT.nom,19)+'.MODL ')
- if MOD==None : UTMESS('F','RUPTURE0_18')
- MODEL = self.jdc.sds_dict[MOD[0].rstrip()]
+ iret,ibid,n_modele = aster.dismoi('F','MODELE',RESULTAT.nom,'RESULTAT')
+ n_modele=n_modele.rstrip()
+ if len(n_modele)==0 : UTMESS('F','RUPTURE0_18')
+ MODEL = self.jdc.sds_dict[n_modele]
dmax = PREC_VIS_A_VIS * ABSC_CURV_MAXI
for i in range(Nbf1):
Porig = array(d_coorf[Lnf1[i]] )
DTAN_EXTR = args['DTAN_EXTR']
dmax = PREC_VIS_A_VIS * ABSC_CURV_MAXI
#Projection du resultat sur le maillage lineaire initial
- MOD = aster.getvectjev(string.ljust(RESULTAT.nom,19)+'.MODL ')
- if MOD==None : UTMESS('F','RUPTURE0_18')
- MODEL = self.jdc.sds_dict[MOD[0].rstrip()]
+ iret,ibid,n_modele = aster.dismoi('F','MODELE',RESULTAT.nom,'RESULTAT')
+ n_modele=n_modele.rstrip()
+ if len(n_modele)==0 : UTMESS('F','RUPTURE0_18')
+ MODEL = self.jdc.sds_dict[n_modele]
xcont = MODEL.xfem.XFEM_CONT.get()
if xcont[0] == 0 :
__RESX = RESULTAT
MODELE_2=__MODLINE, );
#Recuperation des coordonnees des points du fond de fissure (x,y,z,absc_curv)
Listfo = FISSURE.FONDFISS.get()
- Nbfond = len(Listfo)/4
+ Basefo = FISSURE.BASEFOND.get()
+ NB_POINT_FOND = args['NB_POINT_FOND']
+#Traitement du cas fond multiple
+ Fissmult = FISSURE.FONDMULT.get()
+ Nbfiss = len(Fissmult)/2
+ Numfiss = args['NUME_FOND']
+ if Numfiss <= Nbfiss and Nbfiss > 1 :
+ Ptinit = Fissmult[2*(Numfiss-1)]
+ Ptfin = Fissmult[2*(Numfiss-1)+1]
+ Listfo2 = Listfo[((Ptinit-1)*4):(Ptfin*4)]
+ Listfo = Listfo2
+ Basefo2 = Basefo[((Ptinit-1)*(2*ndim)):(Ptfin*(2*ndim))]
+ Basefo = Basefo2
+ elif Numfiss > Nbfiss :
+ UTMESS('F','RUPTURE1_38',vali=[Nbfiss,Numfiss])
+####
+
+ if NB_POINT_FOND != None and MODELISATION=='3D' :
+ Nbfond = NB_POINT_FOND
+ absmax = Listfo[-1]
+ Coorfo = [None]*4*Nbfond
+ Vpropa = [None]*3*Nbfond
+ for i in range(0,Nbfond) :
+ absci = i*absmax/(Nbfond-1)
+ Coorfo[(4*i):(4*(i+1))] = InterpolFondFiss(absci, Listfo)
+ Vpropa[(6*i):(6*(i+1))] = InterpolBaseFiss(absci,Basefo, Listfo)
+ else :
+ Coorfo = Listfo
+ Vpropa = Basefo
+ Nbfond = len(Coorfo)/4
# Calcul de la direction de propagation en chaque point du fond
VP = [None]*Nbfond
VN = [None]*Nbfond
absfon = [0,]
- Vpropa = FISSURE.BASEFOND.get()
# Cas fissure non necessairement plane
if VECT_K1 == None :
i = 0
VN[0] = array([Vpropa[0],Vpropa[1],Vpropa[2]])
VP[0] = array([Vpropa[3+0],Vpropa[3+1],Vpropa[3+2]])
for i in range(1,Nbfond-1):
- Pfon1 = array([Listfo[4*(i-1)],Listfo[4*(i-1)+1],Listfo[4*(i-1)+2]])
- Pfon2 = array([Listfo[4*i],Listfo[4*i+1],Listfo[4*i+2]])
- absf = sqrt(dot(transpose(Pfon1-Pfon2),Pfon1-Pfon2)) + absfon[i-1]
+ absf = Coorfo[4*i+3]
absfon.append(absf)
VN[i] = array([Vpropa[6*i],Vpropa[6*i+1],Vpropa[6*i+2]])
VP[i] = array([Vpropa[3+6*i],Vpropa[3+6*i+1],Vpropa[3+6*i+2]])
if abs(verif) < 0.98:
UTMESS('A','RUPTURE1_35',vali=[i-1,i])
i = Nbfond-1
- Pfon1 = array([Listfo[4*(i-1)],Listfo[4*(i-1)+1],Listfo[4*(i-1)+2]])
- Pfon2 = array([Listfo[4*i],Listfo[4*i+1],Listfo[4*i+2]])
- absf = sqrt(dot(transpose(Pfon1-Pfon2),Pfon1-Pfon2)) + absfon[i-1]
+ absf = Coorfo[4*i+3]
absfon.append(absf)
if DTAN_EXTR != None :
VP[i] = array(DTAN_EXTR)
if abs(verif) > 0.01:
UTMESS('A','RUPTURE1_36')
else :
- Pfon2 = array([Listfo[4*i],Listfo[4*i+1],Listfo[4*i+2]])
- Pfon3 = array([Listfo[4*(i+1)],Listfo[4*(i+1)+1],Listfo[4*(i+1)+2]])
+ Pfon2 = array([Coorfo[4*i],Coorfo[4*i+1],Coorfo[4*i+2]])
+ Pfon3 = array([Coorfo[4*(i+1)],Coorfo[4*(i+1)+1],Coorfo[4*(i+1)+2]])
VT = (Pfon3 - Pfon2)/sqrt(dot(transpose(Pfon3-Pfon2),Pfon3-Pfon2))
VP[0] = array(cross_product(VT,v1))
VNi = array([Vpropa[3],Vpropa[4],Vpropa[5]])
vv =[VNi[0],VNi[1],VNi[2],VN[i][0],VN[i][1],VN[i][2],]
UTMESS('A','RUPTURE0_32',vali=[i],valr=vv)
for i in range(1,Nbfond-1):
- Pfon1 = array([Listfo[4*(i-1)],Listfo[4*(i-1)+1],Listfo[4*(i-1)+2]])
- Pfon2 = array([Listfo[4*i],Listfo[4*i+1],Listfo[4*i+2]])
- Pfon3 = array([Listfo[4*(i+1)],Listfo[4*(i+1)+1],Listfo[4*(i+1)+2]])
- absf = sqrt(dot(transpose(Pfon1-Pfon2),Pfon1-Pfon2)) + absfon[i-1]
+ Pfon1 = array([Coorfo[4*(i-1)],Coorfo[4*(i-1)+1],Coorfo[4*(i-1)+2]])
+ Pfon2 = array([Coorfo[4*i],Coorfo[4*i+1],Coorfo[4*i+2]])
+ Pfon3 = array([Coorfo[4*(i+1)],Coorfo[4*(i+1)+1],Coorfo[4*(i+1)+2]])
+ absf = Coorfo[4*i+3]
absfon.append(absf)
VT = (Pfon3 - Pfon2)/sqrt(dot(transpose(Pfon3-Pfon2),Pfon3-Pfon2))
VT = VT+(Pfon2 - Pfon1)/sqrt(dot(transpose(Pfon2-Pfon1),Pfon2-Pfon1))
vv =[VNi[0],VNi[1],VNi[2],VN[i][0],VN[i][1],VN[i][2],]
UTMESS('A','RUPTURE0_32',vali=[i],valr=vv)
i = Nbfond-1
- Pfon1 = array([Listfo[4*(i-1)],Listfo[4*(i-1)+1],Listfo[4*(i-1)+2]])
- Pfon2 = array([Listfo[4*i],Listfo[4*i+1],Listfo[4*i+2]])
- absf = sqrt(dot(transpose(Pfon1-Pfon2),Pfon1-Pfon2)) + absfon[i-1]
+ Pfon1 = array([Coorfo[4*(i-1)],Coorfo[4*(i-1)+1],Coorfo[4*(i-1)+2]])
+ Pfon2 = array([Coorfo[4*i],Coorfo[4*i+1],Coorfo[4*i+2]])
+ absf = Coorfo[4*i+3]
absfon.append(absf)
if DTAN_EXTR != None :
VP[i] = array(DTAN_EXTR)
#Sens de la tangente
if MODELISATION=='3D' : i = Nbfond/2
else : i = 0
- Po = array([Listfo[4*i],Listfo[4*i+1],Listfo[4*i+2]])
+ Po = array([Coorfo[4*i],Coorfo[4*i+1],Coorfo[4*i+2]])
Porig = Po + ABSC_CURV_MAXI*VP[i]
Pextr = Po - ABSC_CURV_MAXI*VP[i]
__Tabg = MACR_LIGN_COUPE(RESULTAT=__RESX,NOM_CHAM='DEPL',
TYPE='SEGMENT',COOR_EXTR=(Pextr[0],Pextr[1],Pextr[2]),
DISTANCE_MAX=dmax),);
tmp=__Tabg.EXTR_TABLE()
+# a sam
test = getattr(tmp,'H1X').values()
+# test = getattr(tmp,'E1X').values()
if test==[None]*3 :
UTMESS('F','RUPTURE0_33')
if test[0]!=None :
sens = -1
DETRUIRE(CONCEPT=_F(NOM=__Tabg),INFO=1)
# Extraction des sauts sur la fissure
- TSaut = [None]*Nbfond
NB_NOEUD_COUPE = args['NB_NOEUD_COUPE']
if NB_NOEUD_COUPE < 3 :
UTMESS('A','RUPTURE0_34')
NB_NOEUD_COUPE = 5
+ mcfact=[]
for i in range(Nbfond):
- Porig = array([Listfo[4*i],Listfo[4*i+1],Listfo[4*i+2]])
+ Porig = array([Coorfo[4*i],Coorfo[4*i+1],Coorfo[4*i+2]])
if i==0 and DTAN_ORIG!=None : Pextr = Porig - ABSC_CURV_MAXI*VP[i]
elif i==(Nbfond-1) and DTAN_EXTR!=None : Pextr = Porig - ABSC_CURV_MAXI*VP[i]
else : Pextr = Porig + ABSC_CURV_MAXI*VP[i]*sens
- TSaut[i] = MACR_LIGN_COUPE(RESULTAT=__RESX,NOM_CHAM='DEPL',
- LIGN_COUPE=_F(NB_POINTS=NB_NOEUD_COUPE,COOR_ORIG=(Porig[0],Porig[1],Porig[2],),
- TYPE='SEGMENT',COOR_EXTR=(Pextr[0],Pextr[1],Pextr[2]),
- DISTANCE_MAX=dmax),);
+ mcfact.append(_F(NB_POINTS=NB_NOEUD_COUPE,COOR_ORIG=(Porig[0],Porig[1],Porig[2],),
+ TYPE='SEGMENT',COOR_EXTR=(Pextr[0],Pextr[1],Pextr[2]),
+ DISTANCE_MAX=dmax),)
+ TSo = MACR_LIGN_COUPE(RESULTAT=__RESX,NOM_CHAM='DEPL',
+ LIGN_COUPE=mcfact);
+ TTSo = TSo.EXTR_TABLE()
+ DETRUIRE(CONCEPT=_F(NOM=TSo),INFO=1)
Nbnofo = Nbfond
if xcont[0] != 0 :
DETRUIRE(CONCEPT=_F(NOM=__MODLINE),INFO=1)
Ls = [string.ljust(Lnosup[ino][i],8) for i in range(len(Lnosup[ino]))]
tabsup=tabsup.NOEUD==Ls
elif FISSURE :
- tabsup = TSaut[ino].EXTR_TABLE()
- DETRUIRE(CONCEPT=_F(NOM=TSaut[ino]),INFO=1)
+ tabsup = TTSo.INTITULE=='l.coupe%i'%(ino+1)
else :
tabsup=TABL_DEPL_SUP.EXTR_TABLE()
veri_tab(tabsup,TABL_DEPL_SUP.nom,ndim)
for iord in range(len(l_inst)) :
inst=l_inst[iord]
if INFO==2 and inst!=None:
- texte="#================================================================================\n"
+ texte="#=================================================================================\n"
texte=texte+"==> INSTANT: %f"%inst
aster.affiche('MESSAGE',texte)
if inst!=None:
if FISSURE :
H1 = getattr(tabsupi,'H1X').values()
nbval = len(H1)
- if H1[-1]==None :
- UTMESS('F','RUPTURE0_33')
H1 = complete(H1)
E1 = getattr(tabsupi,'E1X').values()
E1 = complete(E1)
dzs = 2*(H1 + sqrt(abscs)*E1)
abscs=array(abscs[:nbval])
-# --- TESTS NOMBRE DE NOEUDS---
- if nbval<3 :
- UTMESS('F+','RUPTURE0_46')
- if FOND_FISS :
- UTMESS('F+','RUPTURE0_47',valk=Lnofon[ino])
- UTMESS('F','RUPTURE0_25')
-
# ---------- CALCUL PROP. MATERIAU AVEC TEMPERATURE -----------
if Tempe3D :
tempeno=tabtemp.NOEUD==Lnofon[ino]
coefg = (1. - nu**2) / e
coefg3 = (1. + nu) / e
+# --- TESTS NOMBRE DE NOEUDS---
+ if nbval<3 :
+ UTMESS('A+','RUPTURE0_46')
+ if FOND_FISS :
+ UTMESS('A+','RUPTURE0_47',valk=Lnofon[ino])
+ if FISSURE :
+ UTMESS('A+','RUPTURE0_99',vali=ino)
+ UTMESS('A','RUPTURE0_25')
+ kg1 = [0.]*8
+ kg2 =[0.]*8
+ kg3 =[0.]*8
+
+ else :
+# SI NBVAL >= 3 :
+
# ------------------------------------------------------------------
-# CHANGEMENT DE REPERE
+# CHANGEMENT DE REPERE
# ------------------------------------------------------------------
#
# 1 : VECTEUR NORMAL AU PLAN DE LA FISSURE
# 2 : VECTEUR NORMAL AU FOND DE FISSURE EN M
# 3 : VECTEUR TANGENT AU FOND DE FISSURE EN M
#
- if FISSURE :
- v2 = VP[ino]
- v1 = VN[ino]
- elif SYME_CHAR=='SANS' :
- vo = array([( coxs[-1]+coxi[-1] )/2.,( coys[-1]+coyi[-1] )/2.,( cozs[-1]+cozi[-1] )/2.])
- ve = array([( coxs[0 ]+coxi[0 ] )/2.,( coys[0 ]+coyi[0 ] )/2.,( cozs[0 ]+cozi[0 ] )/2.])
- v2 = ve-vo
- else :
- vo = array([ coxs[-1], coys[-1], cozs[-1]])
- ve = array([ coxs[0], coys[0], cozs[0]])
- v2 = ve-vo
- if not FISSURE : v1 = array(VECT_K1)
- v2 = v2/sqrt(v2[0]**2+v2[1]**2+v2[2]**2)
- v1p = sum(v2*v1)
- if SYME_CHAR=='SANS' : v1 = v1-v1p*v2
- else : v2 = v2-v1p*v1
- v1 = v1/sqrt(v1[0]**2+v1[1]**2+v1[2]**2)
- v2 = v2/sqrt(v2[0]**2+v2[1]**2+v2[2]**2)
- v3 = array([v1[1]*v2[2]-v2[1]*v1[2],v1[2]*v2[0]-v2[2]*v1[0],v1[0]*v2[1]-v2[0]*v1[1]])
- pgl = asarray([v1,v2,v3])
- dpls = asarray([dxs,dys,dzs])
- dpls = matrixmultiply(pgl,dpls)
- if SYME_CHAR!='SANS' and abs(dpls[0][0]) > 1.e-10 :
- UTMESS('A','RUPTURE0_49',valk=[Lnofon[ino],SYME_CHAR])
- if FISSURE :
- saut=dpls
- elif SYME_CHAR=='SANS' :
- dpli = asarray([dxi,dyi,dzi])
- dpli = matrixmultiply(pgl,dpli)
- saut=(dpls-dpli)
- else :
- dpli = [multiply(dpls[0],-1.),dpls[1],dpls[2]]
- saut=(dpls-dpli)
- if INFO==2 :
- mcfact=[]
- mcfact.append(_F(PARA='ABSC_CURV' ,LISTE_R=abscs.tolist() ))
- if not FISSURE :
- mcfact.append(_F(PARA='DEPL_SUP_1',LISTE_R=dpls[0].tolist() ))
- mcfact.append(_F(PARA='DEPL_INF_1',LISTE_R=dpli[0].tolist() ))
- mcfact.append(_F(PARA='SAUT_1' ,LISTE_R=saut[0].tolist() ))
- if not FISSURE :
- mcfact.append(_F(PARA='DEPL_SUP_2',LISTE_R=dpls[1].tolist() ))
- mcfact.append(_F(PARA='DEPL_INF_2',LISTE_R=dpli[1].tolist() ))
- mcfact.append(_F(PARA='SAUT_2' ,LISTE_R=saut[1].tolist() ))
- if ndim==3 :
- if not FISSURE :
- mcfact.append(_F(PARA='DEPL_SUP_3',LISTE_R=dpls[2].tolist() ))
- mcfact.append(_F(PARA='DEPL_INF_3',LISTE_R=dpli[2].tolist() ))
- mcfact.append(_F(PARA='SAUT_3' ,LISTE_R=saut[2].tolist() ))
- __resu0=CREA_TABLE(LISTE=mcfact,TITRE='--> SAUTS')
- aster.affiche('MESSAGE',__resu0.EXTR_TABLE().__repr__())
- DETRUIRE(CONCEPT=_F(NOM=__resu0),INFO=1)
+ if FISSURE :
+ v2 = VP[ino]
+ v1 = VN[ino]
+ elif SYME_CHAR=='SANS' :
+ vo = array([( coxs[-1]+coxi[-1] )/2.,( coys[-1]+coyi[-1] )/2.,( cozs[-1]+cozi[-1] )/2.])
+ ve = array([( coxs[0 ]+coxi[0 ] )/2.,( coys[0 ]+coyi[0 ] )/2.,( cozs[0 ]+cozi[0 ] )/2.])
+ v2 = ve-vo
+ else :
+ vo = array([ coxs[-1], coys[-1], cozs[-1]])
+ ve = array([ coxs[0], coys[0], cozs[0]])
+ v2 = ve-vo
+ if not FISSURE : v1 = array(VECT_K1)
+ v2 = v2/sqrt(v2[0]**2+v2[1]**2+v2[2]**2)
+ v1p = sum(v2*v1)
+ if SYME_CHAR=='SANS' : v1 = v1-v1p*v2
+ else : v2 = v2-v1p*v1
+ v1 = v1/sqrt(v1[0]**2+v1[1]**2+v1[2]**2)
+ v2 = v2/sqrt(v2[0]**2+v2[1]**2+v2[2]**2)
+ v3 = array([v1[1]*v2[2]-v2[1]*v1[2],v1[2]*v2[0]-v2[2]*v1[0],v1[0]*v2[1]-v2[0]*v1[1]])
+ pgl = asarray([v1,v2,v3])
+ dpls = asarray([dxs,dys,dzs])
+ dpls = matrixmultiply(pgl,dpls)
+ if SYME_CHAR!='SANS' and abs(dpls[0][0]) > 1.e-10 :
+ UTMESS('A','RUPTURE0_49',valk=[Lnofon[ino],SYME_CHAR])
+ if FISSURE :
+ saut=dpls
+ elif SYME_CHAR=='SANS' :
+ dpli = asarray([dxi,dyi,dzi])
+ dpli = matrixmultiply(pgl,dpli)
+ saut=(dpls-dpli)
+ else :
+ dpli = [multiply(dpls[0],-1.),dpls[1],dpls[2]]
+ saut=(dpls-dpli)
+ if INFO==2 :
+ mcfact=[]
+ mcfact.append(_F(PARA='ABSC_CURV' ,LISTE_R=abscs.tolist() ))
+ if not FISSURE :
+ mcfact.append(_F(PARA='DEPL_SUP_1',LISTE_R=dpls[0].tolist() ))
+ mcfact.append(_F(PARA='DEPL_INF_1',LISTE_R=dpli[0].tolist() ))
+ mcfact.append(_F(PARA='SAUT_1' ,LISTE_R=saut[0].tolist() ))
+ if not FISSURE :
+ mcfact.append(_F(PARA='DEPL_SUP_2',LISTE_R=dpls[1].tolist() ))
+ mcfact.append(_F(PARA='DEPL_INF_2',LISTE_R=dpli[1].tolist() ))
+ mcfact.append(_F(PARA='SAUT_2' ,LISTE_R=saut[1].tolist() ))
+ if ndim==3 :
+ if not FISSURE :
+ mcfact.append(_F(PARA='DEPL_SUP_3',LISTE_R=dpls[2].tolist() ))
+ mcfact.append(_F(PARA='DEPL_INF_3',LISTE_R=dpli[2].tolist() ))
+ mcfact.append(_F(PARA='SAUT_3' ,LISTE_R=saut[2].tolist() ))
+ __resu0=CREA_TABLE(LISTE=mcfact,TITRE='--> SAUTS')
+ aster.affiche('MESSAGE',__resu0.EXTR_TABLE().__repr__())
+ DETRUIRE(CONCEPT=_F(NOM=__resu0),INFO=1)
# ------------------------------------------------------------------
# CALCUL DES K1, K2, K3
# ------------------------------------------------------------------
- isig=sign(transpose(resize(saut[:,-1],(nbval-1,3))))
- isig=sign(isig+0.001)
- saut=saut*array([[coefd]*nbval,[coefd]*nbval,[coefd3]*nbval])
- saut=saut**2
- ksig = isig[:,1]
- ksig = array([ksig,ksig])
- ksig = transpose(ksig)
- kgsig=resize(ksig,(1,6))[0]
+ isig=sign(transpose(resize(saut[:,-1],(nbval-1,3))))
+ isig=sign(isig+0.001)
+ saut=saut*array([[coefd]*nbval,[coefd]*nbval,[coefd3]*nbval])
+ saut=saut**2
+ ksig = isig[:,1]
+ ksig = array([ksig,ksig])
+ ksig = transpose(ksig)
+ kgsig=resize(ksig,(1,6))[0]
# ------------------------------------------------------------------
# --- METHODE 1 ---
# ------------------------------------------------------------------
- x1 = abscs[1:-1]
- x2 = abscs[2: ]
- y1 = saut[:,1:-1]/x1
- y2 = saut[:,2: ]/x2
- k = abs(y1-x1*(y2-y1)/(x2-x1))
- g = coefg*(k[0]+k[1])+coefg3*k[2]
- kg1 = [max(k[0]),min(k[0]),max(k[1]),min(k[1]),max(k[2]),min(k[2])]
- kg1 = sqrt(kg1)*kgsig
- kg1=Numeric.concatenate([kg1,[max(g),min(g)]])
- vk = sqrt(k)*isig[:,:-1]
- if INFO==2 :
- mcfact=[]
- mcfact.append(_F(PARA='ABSC_CURV_1' ,LISTE_R=x1.tolist() ))
- mcfact.append(_F(PARA='ABSC_CURV_2' ,LISTE_R=x2.tolist() ))
- mcfact.append(_F(PARA='K1' ,LISTE_R=vk[0].tolist() ))
- mcfact.append(_F(PARA='K2' ,LISTE_R=vk[1].tolist() ))
- if ndim==3 :
- mcfact.append(_F(PARA='K3' ,LISTE_R=vk[2].tolist() ))
- mcfact.append(_F(PARA='G' ,LISTE_R=g.tolist() ))
- __resu1=CREA_TABLE(LISTE=mcfact,TITRE='--> METHODE 1')
- aster.affiche('MESSAGE',__resu1.EXTR_TABLE().__repr__())
- DETRUIRE(CONCEPT=_F(NOM=__resu1),INFO=1)
+ x1 = abscs[1:-1]
+ x2 = abscs[2: ]
+ y1 = saut[:,1:-1]/x1
+ y2 = saut[:,2: ]/x2
+ k = abs(y1-x1*(y2-y1)/(x2-x1))
+ g = coefg*(k[0]+k[1])+coefg3*k[2]
+ kg1 = [max(k[0]),min(k[0]),max(k[1]),min(k[1]),max(k[2]),min(k[2])]
+ kg1 = sqrt(kg1)*kgsig
+ kg1=Numeric.concatenate([kg1,[max(g),min(g)]])
+ vk = sqrt(k)*isig[:,:-1]
+ if INFO==2 :
+ mcfact=[]
+ mcfact.append(_F(PARA='ABSC_CURV_1' ,LISTE_R=x1.tolist() ))
+ mcfact.append(_F(PARA='ABSC_CURV_2' ,LISTE_R=x2.tolist() ))
+ mcfact.append(_F(PARA='K1' ,LISTE_R=vk[0].tolist() ))
+ mcfact.append(_F(PARA='K2' ,LISTE_R=vk[1].tolist() ))
+ if ndim==3 :
+ mcfact.append(_F(PARA='K3' ,LISTE_R=vk[2].tolist() ))
+ mcfact.append(_F(PARA='G' ,LISTE_R=g.tolist() ))
+ __resu1=CREA_TABLE(LISTE=mcfact,TITRE='--> METHODE 1')
+ aster.affiche('MESSAGE',__resu1.EXTR_TABLE().__repr__())
+ DETRUIRE(CONCEPT=_F(NOM=__resu1),INFO=1)
# ------------------------------------------------------------------
# --- METHODE 2 ---
# ------------------------------------------------------------------
- x1 = abscs[1: ]
- y1 = saut[:,1:]
- k = abs(y1/x1)
- g = coefg*(k[0]+k[1])+coefg3*k[2]
- kg2= [max(k[0]),min(k[0]),max(k[1]),min(k[1]),max(k[2]),min(k[2])]
- kg2 = sqrt(kg2)*kgsig
- kg2=Numeric.concatenate([kg2,[max(g),min(g)]])
- vk = sqrt(k)*isig
- if INFO==2 :
- mcfact=[]
- mcfact.append(_F(PARA='ABSC_CURV' ,LISTE_R=x1.tolist() ))
- mcfact.append(_F(PARA='K1' ,LISTE_R=vk[0].tolist() ))
- mcfact.append(_F(PARA='K2' ,LISTE_R=vk[1].tolist() ))
- if ndim==3 :
- mcfact.append(_F(PARA='K3' ,LISTE_R=vk[2].tolist() ))
- mcfact.append(_F(PARA='G' ,LISTE_R=g.tolist() ))
- __resu2=CREA_TABLE(LISTE=mcfact,TITRE='--> METHODE 2')
- aster.affiche('MESSAGE',__resu2.EXTR_TABLE().__repr__())
- DETRUIRE(CONCEPT=_F(NOM=__resu2),INFO=1)
+ x1 = abscs[1: ]
+ y1 = saut[:,1:]
+ k = abs(y1/x1)
+ g = coefg*(k[0]+k[1])+coefg3*k[2]
+ kg2= [max(k[0]),min(k[0]),max(k[1]),min(k[1]),max(k[2]),min(k[2])]
+ kg2 = sqrt(kg2)*kgsig
+ kg2=Numeric.concatenate([kg2,[max(g),min(g)]])
+ vk = sqrt(k)*isig
+ if INFO==2 :
+ mcfact=[]
+ mcfact.append(_F(PARA='ABSC_CURV' ,LISTE_R=x1.tolist() ))
+ mcfact.append(_F(PARA='K1' ,LISTE_R=vk[0].tolist() ))
+ mcfact.append(_F(PARA='K2' ,LISTE_R=vk[1].tolist() ))
+ if ndim==3 :
+ mcfact.append(_F(PARA='K3' ,LISTE_R=vk[2].tolist() ))
+ mcfact.append(_F(PARA='G' ,LISTE_R=g.tolist() ))
+ __resu2=CREA_TABLE(LISTE=mcfact,TITRE='--> METHODE 2')
+ aster.affiche('MESSAGE',__resu2.EXTR_TABLE().__repr__())
+ DETRUIRE(CONCEPT=_F(NOM=__resu2),INFO=1)
# ------------------------------------------------------------------
# --- METHODE 3 ---
# ------------------------------------------------------------------
- x1 = abscs[:-1]
- x2 = abscs[1: ]
- y1 = saut[:,:-1]
- y2 = saut[:,1: ]
- k = (sqrt(y2)*sqrt(x2)+sqrt(y1)*sqrt(x1))*(x2-x1)
- k = Numeric.sum(transpose(k))
- de = abscs[-1]
- vk = (k/de**2)*isig[:,0]
- g = coefg*(vk[0]**2+vk[1]**2)+coefg3*vk[2]**2
- kg3=Numeric.concatenate([[vk[0]]*2,[vk[1]]*2,[vk[2]]*2,[g]*2])
- if INFO==2 :
- mcfact=[]
- mcfact.append(_F(PARA='K1' ,LISTE_R=vk[0] ))
- mcfact.append(_F(PARA='K2' ,LISTE_R=vk[1] ))
- if ndim==3 :
- mcfact.append(_F(PARA='K3' ,LISTE_R=vk[2] ))
- mcfact.append(_F(PARA='G' ,LISTE_R=g ))
- __resu3=CREA_TABLE(LISTE=mcfact,TITRE='--> METHODE 3')
- aster.affiche('MESSAGE',__resu3.EXTR_TABLE().__repr__())
- DETRUIRE(CONCEPT=_F(NOM=__resu3),INFO=1)
+ x1 = abscs[:-1]
+ x2 = abscs[1: ]
+ y1 = saut[:,:-1]
+ y2 = saut[:,1: ]
+ k = (sqrt(y2)*sqrt(x2)+sqrt(y1)*sqrt(x1))*(x2-x1)
+ k = Numeric.sum(transpose(k))
+ de = abscs[-1]
+ vk = (k/de**2)*isig[:,0]
+ g = coefg*(vk[0]**2+vk[1]**2)+coefg3*vk[2]**2
+ kg3=Numeric.concatenate([[vk[0]]*2,[vk[1]]*2,[vk[2]]*2,[g]*2])
+ if INFO==2 :
+ mcfact=[]
+ mcfact.append(_F(PARA='K1' ,LISTE_R=vk[0] ))
+ mcfact.append(_F(PARA='K2' ,LISTE_R=vk[1] ))
+ if ndim==3 :
+ mcfact.append(_F(PARA='K3' ,LISTE_R=vk[2] ))
+ mcfact.append(_F(PARA='G' ,LISTE_R=g ))
+ __resu3=CREA_TABLE(LISTE=mcfact,TITRE='--> METHODE 3')
+ aster.affiche('MESSAGE',__resu3.EXTR_TABLE().__repr__())
+ DETRUIRE(CONCEPT=_F(NOM=__resu3),INFO=1)
# ------------------------------------------------------------------
# CREATION DE LA TABLE
# ------------------------------------------------------------------
-#@ MODIF post_k_trans_ops Macro DATE 22/01/2008 AUTEUR REZETTE C.REZETTE
+#@ MODIF post_k_trans_ops Macro DATE 07/10/2008 AUTEUR PELLET J.PELLET
# -*- coding: iso-8859-1 -*-
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
if F3D :
n_mode = max((__kgtheta.EXTR_TABLE())['NUME_MODE'].values()['NUME_MODE'])
nbno = max((__kgtheta.EXTR_TABLE())['NUM_PT'].values()['NUM_PT'])
- labsc = (__kgtheta.EXTR_TABLE())['ABS_CURV'].values()['ABS_CURV'][0:nbno]
+ labsc = (__kgtheta.EXTR_TABLE())['ABSC_CURV'].values()['ABSC_CURV'][0:nbno]
if nmodtr != n_mode :
n_mode = min(nmodtr,n_mode)
tabout = CREA_TABLE(LISTE = (_F(LISTE_I =lo, PARA = 'NUME_ORDRE'),
_F(LISTE_R =li, PARA = 'INST'),
_F(LISTE_I =range(nbno)*nbarch, PARA ='NUM_PT' ),
- _F(LISTE_R =labsc*nbarch, PARA = 'ABS_CURV'),
+ _F(LISTE_R =labsc*nbarch, PARA = 'ABSC_CURV'),
_F(LISTE_R =K1t, PARA = k1),
_F(LISTE_R =K2t, PARA = k2),
_F(LISTE_R =K3t, PARA = k3),),
--- /dev/null
+#@ MODIF propa_fiss_ops Macro DATE 20/10/2008 AUTEUR GALENNE E.GALENNE
+# -*- coding: iso-8859-1 -*-
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2008 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# ======================================================================
+
+
+def InterpolationLineaire(x0, points) :
+ """
+ Interpolation Lineaire de x0 sur la fonction discrétisée yi=points(xi) i=1,..,n
+ """
+ # x0 = Une abscisse (1 colonne, 1 ligne)
+ # points = Tableau de n points (2 colonnes, n lignes)
+ # on suppose qu'il existe au moins 2 points,
+ # et que les points sont classés selon les abscisses croissantes
+
+ n = len(points)
+ if ( x0 < points[0][0] ) :
+ y0 = points[0][1]
+ return y0
+ if ( x0 > points[n-1][0] ) :
+ y0 = points[n-1][1]
+ return y0
+ i = 1
+ while x0 > points[i][0]:
+ i = i+1
+ y0 = (x0-points[i-1][0]) * (points[i][1]-points[i-1][1]) / (points[i][0]-points[i-1][0]) + points[i-1][1]
+ return y0
+
+def InterpolFondFiss(s0, Coorfo) :
+ """
+ Interpolation des points du fond de fissure
+ """
+ # s0 = abscisse curviligne du point considéré (0 < s0 > 1)
+ # Coorfo = Coordonnées du fond (extrait de la sd fiss_xfem)
+ # xyz = Coordonnées du point
+
+ n = len(Coorfo) / 4
+ if ( s0 < Coorfo[3] ) :
+ xyz = [Coorfo[0],Coorfo[1],Coorfo[2]]
+ return xyz
+ if ( s0 > Coorfo[-1] ) :
+ xyz = [Coorfo[-4],Coorfo[-3],Coorfo[-2]]
+ return xyz
+ i = 1
+ while s0 > Coorfo[4*i+3]:
+ i = i+1
+ xyz = [0.]*3
+ xyz[0] = (s0-Coorfo[4*(i-1)+3]) * (Coorfo[4*i+0]-Coorfo[4*(i-1)+0]) / (Coorfo[4*i+3]-Coorfo[4*(i-1)+3]) + Coorfo[4*(i-1)+0]
+ xyz[1] = (s0-Coorfo[4*(i-1)+3]) * (Coorfo[4*i+1]-Coorfo[4*(i-1)+1]) / (Coorfo[4*i+3]-Coorfo[4*(i-1)+3]) + Coorfo[4*(i-1)+1]
+ xyz[2] = (s0-Coorfo[4*(i-1)+3]) * (Coorfo[4*i+2]-Coorfo[4*(i-1)+2]) / (Coorfo[4*i+3]-Coorfo[4*(i-1)+3]) + Coorfo[4*(i-1)+2]
+ return xyz
+
+def InterpolBaseFiss(s0, Basefo, Coorfo) :
+# Interpolation de la base locale en fond de fissure
+# s0 = abscisse curviligne du point considere
+# Basefo = base locale du fond (VNx,VNy,VNz,VPx,VPy,VPz)
+# Coorfo = Coordonnees et abscisses du fond (extrait de la sd fiss_xfem)
+# en sortie : VPVNi = base locale au point considere (6 coordonnes)
+ n = len(Coorfo) / 4
+ if ( s0 < Coorfo[3] ) :
+ VPVNi = Basefo[0:6]
+ return VPVNi
+ if ( s0 > Coorfo[-1] ) :
+ VPVNi = [Basefo[i] for i in range(-6,0)]
+ return VPVNi
+ i = 1
+ while s0 > Coorfo[4*i+3]:
+ i = i+1
+ VPVNi = [0.]*6
+ for k in range(6) :
+ VPVNi[k] = (s0-Coorfo[4*(i-1)+3]) * (Basefo[6*i+k]-Basefo[6*(i-1)+k]) / (Coorfo[4*i+3]-Coorfo[4*(i-1)+3]) + Basefo[6*(i-1)+k]
+ return VPVNi
+
+
+def propa_fiss_ops(self,METHODE_PROPA,INFO,**args):
+ """
+ Macro PROPA_FISS
+ Propagation de fissure pour les modeles X-FEM : propagation par la methode de HAMILTON
+ ou par projection sur un maillage
+ """
+ import aster
+ import string
+ import copy
+ from Accas import _F
+ from Utilitai.Utmess import UTMESS
+ from types import ListType, TupleType
+ from Utilitai.Table import Table, merge
+ from Utilitai.partition import MAIL_PY
+ import Numeric
+ from Numeric import array,asarray,Float,concatenate,sqrt,sign,resize,dot,zeros
+ from math import atan, atan2, cos, sin
+
+
+ EnumTypes = (ListType, TupleType)
+
+ macro = 'PROPA_FISS'
+ ier=0
+#------------------------------------------------------------------
+ # On importe les definitions des commandes a utiliser dans la macro
+ ASSE_MAILLAGE =self.get_cmd('ASSE_MAILLAGE' )
+ LIRE_MAILLAGE =self.get_cmd('LIRE_MAILLAGE' )
+ CREA_TABLE =self.get_cmd('CREA_TABLE' )
+ CALC_TABLE =self.get_cmd('CALC_TABLE' )
+ PROPA_XFEM = self.get_cmd('PROPA_XFEM' )
+ DEFI_FISS_XFEM = self.get_cmd('DEFI_FISS_XFEM' )
+ # La macro compte pour 1 dans la numerotation des commandes
+ self.set_icmd(1)
+
+#------------------------------------------------------------------
+# CAS 1 : METHODE_PROPA = 'HAMILTON'
+#
+ if METHODE_PROPA == 'HAMILTON' :
+ mod = args['MODELE']
+ tabk = args['TABLE']
+ meth = args['METHODE']
+ ray = args['RAYON']
+ LOI_PROPA = args['LOI_PROPA']
+ if LOI_PROPA != None :
+ coefc = LOI_PROPA['C']
+ coefm = LOI_PROPA['M']
+ fiss = args['FISSURE']
+ self.DeclareOut('nomfiss',fiss)
+ nomfiss = PROPA_XFEM(MODELE=mod,
+ TABLE=tabk,
+ METHODE=meth,
+ LOI_PROPA=_F(LOI='PARIS',
+ C=coefc,
+ M=coefm),
+ RAYON=ray,
+ INFO=INFO,)
+
+#------------------------------------------------------------------
+# CAS 2 : METHODE_PROPA = 'MAILLAGE'
+#
+ ALPHABET=['A','B','C','D','E','F','G','H','I','J','K','L','O','P','Q','R','S','T','U','V','W','X','Y','Z'];
+
+ if METHODE_PROPA == 'MAILLAGE' :
+ fiss = args['FISSURE1']
+ LOI_PROPA = args['LOI_PROPA']
+ MA_XFEM1 = args['MA_XFEM1']
+ if LOI_PROPA != None :
+ coef_paris = LOI_PROPA['M']
+ Damax = LOI_PROPA['DA_MAX']
+ coef_C = LOI_PROPA['C']
+ it = args['ITERATION']
+ typmod= MA_XFEM1.DIME.get()
+ typmod = typmod[5]
+
+# Verification qu on a bien un fond unique
+ Fissmult = fiss.FONDMULT.get()
+ Nbfiss = len(Fissmult)/2
+ if Nbfiss >1 :
+ UTMESS('F','RUPTURE1_48',vali=Nbfiss)
+
+# Recuperation des K et calcul de DeltaK
+ Nmeth = args['METHODE_POSTK']
+ SIF = args['TABLE']
+ hypo = args['HYPOTHESE']
+ nbinst = 1
+# A- TABLEAU ISSSU DE POST_K1_K2_K3
+ if (Nmeth != None) :
+ __TABN = CALC_TABLE(TABLE=SIF,ACTION=_F(OPERATION='FILTRE',
+ NOM_PARA='METHODE',VALE_I=Nmeth),);
+ __tabp = __TABN.EXTR_TABLE()
+ if ('K1_MAX' not in __tabp.para) or ('G_MAX' not in __tabp.para):
+ UTMESS('F','RUPTURE1_44')
+ __tab1 = __tabp.values()
+ if 'INST' in __tabp.para :
+ l_inst_tab=__tabp['INST'].values()['INST']
+ l_inst_tab=dict([(i,0) for i in l_inst_tab]).keys()
+ nbinst = len(l_inst_tab)
+ if nbinst > 1 :
+ nbfis = len(__tab1['K1_MAX']) / nbinst
+ DK1 = [None]*nbfis
+ DKmax = 0.
+ for k in range(nbfis) :
+ DK1[k]=[0.]*2
+ __tmp = __tabp.PT_FOND==(k+1)
+ if (typmod == 3) : DK1[k][0]=__tmp.values()['ABSC_CURV'][0]
+ DK1[k][1]=max(__tmp.values()['K1_MAX'])-min(__tmp.values()['K1_MAX'])
+ DKmax = max(DKmax,DK1[k][1])
+ else :
+ nbfis = len(__tab1['K1_MAX'])
+ if hypo == 'NON_PLAN' :
+ BETA = [None]*nbfis
+ if (min(__tab1['G_MAX']) < 0.) :
+ UTMESS('F','RUPTURE1_46')
+ DKmax = max(sqrt(__tab1['G_MAX']))
+ BETA = [0.]*nbfis
+ absc = [0.]*nbfis
+ for i in range(nbfis) :
+ k1 = __tab1['K1_MAX'][i]
+ k2 = __tab1['K2_MAX'][i]
+ if (typmod == 3) : absc[i]=__tab1['ABSC_CURV'][i]
+ BETA[i] = [absc[i] , 2*atan(0.25*(k1/k2-abs(k2)/k2*sqrt((k1/k2)**2+8)))]
+ DK1 = [[absc[i],sqrt(__tab1['G_MAX'][i])] for i in range(nbfis)]
+ else :
+ DKmax = max(__tab1['K1_MAX'])
+ if (typmod == 3) :
+ DK1 = [[__tab1['ABSC_CURV'][i],__tab1['K1_MAX'][i]] for i in range(nbfis)]
+ else :
+ DK1 = [[0.,__tab1['K1_MAX'][i]] for i in range(nbfis)]
+ if (min(__tab1['K1_MAX']) < 0.) :
+ UTMESS('F','RUPTURE1_49')
+# B- TABLEAU ISSSU DE CALC_G (option CALC_K_G)
+ else :
+ __tabp = SIF.EXTR_TABLE()
+ if (typmod == 3) and (('K1_LOCAL' not in __tabp.para) or ('G_LOCAL' not in __tabp.para) or ('BETA_LOCAL' not in __tabp.para)):
+ UTMESS('F','RUPTURE1_45')
+ if (typmod == 2) and (('K1' not in __tabp.para) or ('G' not in __tabp.para)) :
+ UTMESS('F','RUPTURE1_45')
+ __tab1= __tabp.values()
+ if 'INST' in __tabp.para :
+ l_inst_tab=__tabp['INST'].values()['INST']
+ l_inst_tab=dict([(i,0) for i in l_inst_tab]).keys()
+ nbinst = len(l_inst_tab)
+ if nbinst > 1 :
+ nbfiss = 1
+ if (typmod == 3) : nbfis = len(__tab1['K1_LOCAL']) / nbinst
+ DK1 = [None]*nbfis
+ DKmax = 0.
+ for k in range(nbfis) :
+ DK1[k]=[None]*2
+ __tmp = __tabp.NUM_PT==(k+1)
+ if (typmod == 3) :
+ DK1[k][0]=__tmp.values()['ABSC_CURV'][0]
+ DK1[k][1]=max(__tmp.values()['K1_LOCAL'])-min(__tmp.values()['K1_LOCAL'])
+ else :
+ DK1[k][0]=0.
+ DK1[k][1]=max(__tmp.values()['K1'])-min(__tmp.values()['K1'])
+ DKmax = max(DKmax,DK1[k][1])
+ elif typmod == 3 :
+ nbfis = len(__tab1['K1_LOCAL'])
+ if hypo == 'NON_PLAN' :
+ if (min(__tab1['G_LOCAL']) < 0.) :
+ UTMESS('F','RUPTURE1_46')
+ DKmax = max(sqrt(__tab1['G_LOCAL']))
+ DK1 = [[__tab1['ABSC_CURV'][i],sqrt(__tab1['G_LOCAL'][i])] for i in range(nbfis)]
+ BETA = [[__tab1['ABSC_CURV'][i],__tab1['BETA_LOCAL'][i]] for i in range(nbfis)]
+ else :
+ DKmax = max(__tab1['K1_LOCAL'])
+ DK1 = [[__tab1['ABSC_CURV'][i],__tab1['K1_LOCAL'][i]] for i in range(nbfis)]
+ if (min(__tab1['K1_LOCAL']) < 0.) :
+ UTMESS('F','RUPTURE1_49')
+ else :
+ nbfis = 1
+ if hypo == 'NON_PLAN' :
+ if (min(__tab1['G']) < 0.) :
+ UTMESS('F','RUPTURE1_46')
+ DKmax = max(sqrt(__tab1['G']))
+ DK1 = [[0.,DKmax],]
+ k1 = __tab1['K1'][0]
+ k2 = __tab1['K2'][0]
+ beta = 2*atan(0.25*(k1/k2-abs(k2)/k2*sqrt((k1/k2)**2+8)))
+ BETA = [[0.,beta] ]
+ else :
+ DKmax = max(__tab1['K1'])
+ DK1 = [[0.,DKmax ] ,]
+ if (min(__tab1['K1']) < 0.) :
+ UTMESS('F','RUPTURE1_49')
+
+ if hypo == 'NON_PLAN' and nbinst > 1 :
+ UTMESS('F','RUPTURE1_47')
+
+#------------------------------------------------------------------
+# CAS 2a : MODELE 3D
+#
+ if typmod == 3 :
+ mm = MAIL_PY()
+ mm.FromAster(MA_XFEM1)
+
+# Recuperation des informations sur le maillage
+ nbno = mm.dime_maillage[0]
+ nbma = mm.dime_maillage[2]
+ collgrma = mm.gma
+ nbnofo = len(collgrma['FOND_0'])+1
+
+# Correction de la position des noeuds (equirepartition)
+ Coorfo = fiss.FONDFISS.get()
+ absmax = Coorfo[-1]
+ abscf = [0.]*nbnofo
+ for i in range(nbnofo) :
+ abscf[i] = i * absmax / (nbnofo-1)
+ xyzi = InterpolFondFiss(abscf[i], Coorfo)
+ mm.cn[nbno-nbnofo+i][0] = xyzi[0]
+ mm.cn[nbno-nbnofo+i][1] = xyzi[1]
+ mm.cn[nbno-nbnofo+i][2] = xyzi[2]
+
+# Maillage apres correction
+ coord = mm.cn
+ linomno = list(mm.correspondance_noeuds)
+ linomno = map(string.rstrip,linomno)
+ l_coorf = [[linomno[i],coord[i]] for i in range(0,nbno)]
+ d_coorf = dict(l_coorf)
+
+# Boucle sur le fond : coordonnees du point propage
+ Basefo = fiss.BASEFOND.get()
+ Listfo = fiss.FONDFISS.get()
+ Vorig = args['DTAN_ORIG']
+ Vextr = args['DTAN_EXTR']
+ if (Damax ==None) :
+ DKmax = 1
+ if (coef_C ==None) :
+ coef_C = Damax
+ for ifond in range(nbnofo) :
+ Xf = d_coorf['NX%s%i' %(ALPHABET[ifond],it)][0]
+ Yf = d_coorf['NX%s%i' %(ALPHABET[ifond],it)][1]
+ Zf = d_coorf['NX%s%i' %(ALPHABET[ifond],it)][2]
+
+ VPVNi = InterpolBaseFiss(abscf[ifond],Basefo, Listfo)
+
+ k1 = InterpolationLineaire(abscf[ifond], DK1)
+ if k1<=0 :
+ UTMESS('F','RUPTURE1_49')
+
+# Correction pour reduire le risque de maille aplatie (pilotage par Damax uniquement)
+ if (Damax !=None) :
+ Damin = Damax /10.
+ if ((k1/DKmax)**coef_paris <= Damin ) :
+ k1 = Damin**(1/coef_paris)*DKmax
+
+# Tangentes aux extremites
+ if (ifond == 0) and (Vorig != None) :
+ VPVNi[3] = Vorig[0]
+ VPVNi[4] = Vorig[1]
+ VPVNi[5] = Vorig[2]
+ if (ifond == nbnofo-1) and (Vextr != None) :
+ VPVNi[3] = Vextr[0]
+ VPVNi[4] = Vextr[1]
+ VPVNi[5] = Vextr[2]
+
+ if hypo == 'NON_PLAN' :
+ beta = InterpolationLineaire(abscf[ifond], BETA)
+ Xf2 = Xf + coef_C*(VPVNi[3]*cos(beta)+VPVNi[0]*sin(beta))*(k1/DKmax)**coef_paris
+ Yf2 = Yf + coef_C*(VPVNi[4]*cos(beta)+VPVNi[1]*sin(beta))*(k1/DKmax)**coef_paris
+ Zf2 = Zf + coef_C*(VPVNi[5]*cos(beta)+VPVNi[2]*sin(beta))*(k1/DKmax)**coef_paris
+ else :
+ Xf2 = Xf + coef_C*VPVNi[3]*(k1/DKmax)**coef_paris
+ Yf2 = Yf + coef_C*VPVNi[4]*(k1/DKmax)**coef_paris
+ Zf2 = Zf + coef_C*VPVNi[5]*(k1/DKmax)**coef_paris
+
+ LesNoeudsEnPlus = array([[Xf2,Yf2,Zf2]])
+ if ifond ==0 :
+ Pini = (Xf2,Yf2,Zf2)
+ vectorie = (VPVNi[0],VPVNi[1],VPVNi[2],)
+ NomNoeudsEnPlus = ['NX%s%i' %(ALPHABET[ifond],it+1)]
+ mm.cn = concatenate((mm.cn,LesNoeudsEnPlus))
+ mm.correspondance_noeuds = tuple( list(mm.correspondance_noeuds) + NomNoeudsEnPlus )
+
+# Ajout Maille lèvre (quad4)
+ nbnotot = len(mm.correspondance_noeuds)
+ NomMaillesEnPlus = []
+ num_maille = []
+ NoeudsMailles = []
+ for ifond in range(nbnofo-1) :
+ NomMaillesEnPlus.append( 'MX%s%i' %(ALPHABET[ifond], it+1) )
+ num_maille.append( [ nbma + ifond +1 ] )
+ num_maille.append( nbma +ifond + 1 )
+ i1 = nbnotot - 2*nbnofo + ifond
+ i2 = nbnotot - 2*nbnofo + ifond +1
+ i3 = nbnotot - nbnofo + ifond +1
+ i4 = nbnotot - nbnofo + ifond
+ NoeudsMailles.append( array([i1,i2,i3,i4]))
+
+ typ_maille = mm.dic['QUAD4']
+ NbMailleAjoute = nbnofo-1
+ mm.tm = concatenate((mm.tm,array([typ_maille]*NbMailleAjoute)))
+ mm.correspondance_mailles += tuple(NomMaillesEnPlus)
+ mm.co += NoeudsMailles
+ fsi = mm.gma['FISS_%i' %(it-1)]
+ for ifond in range(nbnofo-1) :
+ fsi = concatenate((fsi,array([nbma+ifond])))
+ mm.gma['FISS_%i' %it] = fsi
+
+# Ajout Maille fond (SEG2)
+ NomMaillesEnPlus = []
+ num_maille = []
+ NoeudsMailles = []
+ for ifond in range(nbnofo-1) :
+ NomMaillesEnPlus.append( 'MF%s%i' %(ALPHABET[ifond], it+1) )
+ num_maille.append( [ nbma + ifond +nbnofo ] )
+ num_maille.append( nbma + ifond + nbnofo )
+ i3 = nbnotot - nbnofo + ifond
+ i4 = nbnotot - nbnofo + ifond +1
+ NoeudsMailles.append( array([i3,i4]))
+
+ typ_maille = mm.dic['SEG2']
+ NbMailleAjoute = nbnofo-1
+ mm.tm = concatenate((mm.tm,array([typ_maille]*NbMailleAjoute)))
+ mm.correspondance_mailles += tuple(NomMaillesEnPlus)
+ mm.co += NoeudsMailles
+ fsi = []
+ for ifond in range(nbnofo-1) :
+ fsi = concatenate((fsi,array([nbma+ifond+nbnofo-1])))
+ mm.gma['FOND_%i' %it] = fsi
+
+#------------------------------------------------------------------
+# CAS 2b : MODELE 2D
+#
+ if typmod == 2 :
+ mm = MAIL_PY()
+ mm.FromAster(MA_XFEM1)
+
+ (nno,ndim) = mm.cn.shape
+
+# Recuperation des informations sur le maillage
+ nbno = mm.dime_maillage[0]
+ nbma = mm.dime_maillage[2]
+ coord = mm.cn
+ linomno = list(mm.correspondance_noeuds)
+ linomno = map(string.rstrip,linomno)
+ l_coorf = [[linomno[i],coord[i]] for i in range(0,nbno)]
+ d_coorf = dict(l_coorf)
+
+# Coordonnees du point propage
+ Xf = d_coorf['NXA%i' %(it)][0]
+ Yf = d_coorf['NXA%i' %(it)][1]
+ if (Damax ==None) :
+ DKmax = 1
+ if (coef_C ==None) :
+ coef_C = Damax
+
+ VPVNi = fiss.BASEFOND.get()
+ k1 = DK1[0][1]
+ if hypo == 'NON_PLAN' :
+ beta = BETA[0][1]
+ Xf2 = Xf + coef_C*(VPVNi[2]*cos(beta)+VPVNi[0]*sin(beta))*(k1/DKmax)**coef_paris
+ Yf2 = Yf + coef_C*(VPVNi[3]*cos(beta)+VPVNi[1]*sin(beta))*(k1/DKmax)**coef_paris
+ else :
+ Xf2 = Xf + coef_C*VPVNi[2]*(k1/DKmax)**coef_paris
+ Yf2 = Yf + coef_C*VPVNi[3]*(k1/DKmax)**coef_paris
+
+ LesNoeudsEnPlus = array([[Xf2,Yf2]])
+ NomNoeudsEnPlus = ['NXA%i' %(it+1)]
+ mm.cn = concatenate((mm.cn,LesNoeudsEnPlus))
+ mm.correspondance_noeuds = tuple(linomno + NomNoeudsEnPlus )
+
+# Ajout Maille lèvre (SEG2)
+ NomMaillesEnPlus = ['MX%s%i' %(ALPHABET[0], it+1)]
+ num_maille = [ nbma + 1 ]
+ num_maille.append( nbma + 1 )
+ NoeudsMailles = [array([nbno-1,nbno])]
+ typ_maille = mm.dic['SEG2']
+ NbMailleAjoute = 1
+ mm.tm = concatenate((mm.tm,array([typ_maille]*NbMailleAjoute)))
+ mm.correspondance_mailles += tuple(NomMaillesEnPlus)
+ mm.co += NoeudsMailles
+ fsi = mm.gma['FISS_%i' %(it-1)]
+ fsi = concatenate((fsi,array([nbma])))
+ mm.gma['FISS_%i' %it] = fsi
+
+# Ajout Maille fond (POI1)
+ NomMaillesEnPlus = ['MF%s%i' %(ALPHABET[0], it+1)]
+ num_maille = [ nbma + 2 ]
+ NoeudsMailles = [array([nbno])]
+ typ_maille = mm.dic['POI1']
+ mm.tm = concatenate((mm.tm,array([typ_maille]*1)))
+ mm.correspondance_mailles += tuple(NomMaillesEnPlus)
+ mm.co += NoeudsMailles
+ mm.gma['FOND_%i' %it] = array(nbma+1)
+
+# Fin du 2D
+ if INFO==2 :
+ texte="Maillage produit par l operateur PROPA_FISS"
+ aster.affiche('MESSAGE',texte)
+ print mm
+
+# Sauvegarde (maillage xfem et maillage concatene)
+ MA_XFEM2 = args['MA_XFEM2']
+ if MA_XFEM2 != None : self.DeclareOut('ma_xfem2',MA_XFEM2)
+ __MA = mm.ToAster(unite=39)
+ self.DeclareOut('ma_xfem2',MA_XFEM2)
+ ma_xfem2=LIRE_MAILLAGE(UNITE=39);
+
+ MA_TOT2 = args['MA_TOT2']
+ if MA_TOT2 != None : self.DeclareOut('ma_tot',MA_TOT2)
+ MA_STRUC = args['MA_STRUC']
+ ma_tot = ASSE_MAILLAGE(MAILLAGE_1 = MA_STRUC,
+ MAILLAGE_2 = ma_xfem2,
+ OPERATION='SUPERPOSE')
+
+#------------------------------------------------------------------
+# CAS 3 : METHODE_PROPA = 'INITIALISATION'
+#
+ if METHODE_PROPA == 'INITIALISATION' :
+ form = args['FORM_FISS']
+
+# 3-a : demi-droite
+ if form == 'DEMI_DROITE' :
+ PF = args['PFON']
+ DTAN = args['DTAN']
+ PI = array([[PF[0]-DTAN[0],PF[1]-DTAN[1]],])
+
+ ndim = 2
+ mm = MAIL_PY()
+ mm.__init__()
+
+# Ajout des noeuds
+ LesNoeudsEnPlus = concatenate((PI,array([PF[0:2]])))
+ NomNoeudsEnPlus = ['NXA0','NXA1']
+ mm.cn = LesNoeudsEnPlus
+ mm.correspondance_noeuds = tuple( NomNoeudsEnPlus )
+
+# Ajout Maille lèvre (SEG2)
+ it = 1
+ nbma = 0
+ nbno = 0
+ NomMaillesEnPlus = ['MX%s%i' %(ALPHABET[0], it)]
+ num_maille = [ nbma + 1 ]
+ num_maille.append( nbma + 1 )
+ NoeudsMailles = [array([nbno,nbno+1])]
+ typ_maille = mm.dic['SEG2']
+ NbMailleAjoute = 1
+ mm.tm = concatenate((mm.tm,array([typ_maille]*NbMailleAjoute)))
+ mm.correspondance_mailles += tuple(NomMaillesEnPlus)
+ mm.co += NoeudsMailles
+ mm.gma['FISS_0'] = array(nbma)
+
+# Ajout Maille fond (POI1)
+ NomMaillesEnPlus = ['MF%s%i' %(ALPHABET[0], it)]
+ num_maille = [ nbma + 2 ]
+ NoeudsMailles = [array([nbno+1])]
+ typ_maille = mm.dic['POI1']
+ mm.tm = concatenate((mm.tm,array([typ_maille]*1)))
+ mm.correspondance_mailles += tuple(NomMaillesEnPlus)
+ mm.co += NoeudsMailles
+ mm.gma['FOND_0'] = array(nbma+1)
+
+
+# 3-b : demi-plan
+ if form == 'DEMI_PLAN' :
+ P0 = args['POINT_ORIG']
+ P1 = args['POINT_EXTR']
+ dpropa = args['DTAN']
+ nbpt = args['NB_POINT_FOND']
+ Q0 = array([[P0[0]-dpropa[0],P0[1]-dpropa[1],P0[2]-dpropa[2]]])
+
+ mm = MAIL_PY()
+ mm.__init__()
+ x=[None]*nbpt
+ y=[None]*nbpt
+ z=[None]*nbpt
+ xx=[None]*nbpt
+ yy=[None]*nbpt
+ zz=[None]*nbpt
+ LesNoeudsEnPlus = Q0
+ NomNoeudsEnPlus = ['NXA0']
+ mm.cn = LesNoeudsEnPlus
+ mm.correspondance_noeuds = tuple( NomNoeudsEnPlus )
+
+ for i in range(1,nbpt) :
+ x[i] = P0[0]+i*(P1[0]-P0[0])/(nbpt-1)
+ y[i] = P0[1]+i*(P1[1]-P0[1])/(nbpt-1)
+ z[i] = P0[2]+i*(P1[2]-P0[2])/(nbpt-1)
+ xx[i] = x[i] - dpropa[0]
+ yy[i] = y[i] - dpropa[1]
+ zz[i] = z[i] - dpropa[2]
+ LesNoeudsEnPlus = array([[xx[i],yy[i],zz[i]]])
+ NomNoeudsEnPlus = ['NX%s0' %(ALPHABET[i]) ]
+ mm.cn = concatenate((mm.cn,LesNoeudsEnPlus))
+ mm.correspondance_noeuds = tuple(list(mm.correspondance_noeuds) +NomNoeudsEnPlus )
+ LesNoeudsEnPlus = array([P0])
+ NomNoeudsEnPlus = ['NXA1']
+ mm.cn = concatenate((mm.cn,LesNoeudsEnPlus))
+ mm.correspondance_noeuds = tuple(list(mm.correspondance_noeuds) + NomNoeudsEnPlus )
+ for i in range(1,nbpt) :
+ LesNoeudsEnPlus = array([[x[i],y[i],z[i]]])
+ NomNoeudsEnPlus = ['NX%s1' %(ALPHABET[i]) ]
+ mm.cn = concatenate((mm.cn,LesNoeudsEnPlus))
+ mm.correspondance_noeuds = tuple(list(mm.correspondance_noeuds) +NomNoeudsEnPlus )
+
+# Ajout Maille lèvre (quad4)
+ NomMaillesEnPlus = []
+ num_maille = []
+ NoeudsMailles = []
+ for ifond in range(nbpt-1) :
+ NomMaillesEnPlus.append( 'MX%s1' %(ALPHABET[ifond]) )
+ num_maille.append( [ ifond +1 ] )
+ num_maille.append( ifond + 1 )
+ i1 = ifond
+ i2 = ifond+1
+ i3 = nbpt+ifond
+ i4 = nbpt+ifond+1
+ NoeudsMailles.append( array([i1,i2,i4,i3]))
+
+ typ_maille = mm.dic['QUAD4']
+ NbMailleAjoute = nbpt-1
+ mm.tm = concatenate((mm.tm,array([typ_maille]*NbMailleAjoute)))
+ mm.correspondance_mailles += tuple(NomMaillesEnPlus)
+ mm.co += NoeudsMailles
+ fsi =[]
+ for ifond in range(nbpt-1) :
+ fsi = concatenate((fsi,array([ifond])))
+ mm.gma['FISS_0' ] = fsi
+
+# Ajout Maille fond (SEG2)
+ NomMaillesEnPlus = []
+ num_maille = []
+ NoeudsMailles = []
+ for ifond in range(nbpt-1) :
+ NomMaillesEnPlus.append( 'MF%s1' %(ALPHABET[ifond]) )
+ num_maille.append( [ ifond +nbpt ] )
+ num_maille.append( ifond + nbpt )
+ i3 = nbpt+ifond
+ i4 = nbpt+ifond+1
+ NoeudsMailles.append( array([i3,i4]))
+
+ typ_maille = mm.dic['SEG2']
+ NbMailleAjoute = nbpt-1
+ mm.tm = concatenate((mm.tm,array([typ_maille]*NbMailleAjoute)))
+ mm.correspondance_mailles += tuple(NomMaillesEnPlus)
+ mm.co += NoeudsMailles
+ fsi = []
+ for ifond in range(nbpt-1) :
+ fsi = concatenate((fsi,array([ifond+nbpt-1])))
+ mm.gma['FOND_0'] = fsi
+
+
+ if INFO==2 :
+ texte="Maillage produit par l operateur PROPA_FISS"
+ aster.affiche('MESSAGE',texte)
+ print mm
+
+# Sauvegarde (maillage xfem et maillage concatene)
+ MA_XFEM2 = args['MA_XFEM2']
+ if MA_XFEM2 != None : self.DeclareOut('ma_xfem2',MA_XFEM2)
+ __MA = mm.ToAster(unite=39)
+ self.DeclareOut('ma_xfem2',MA_XFEM2)
+ ma_xfem2=LIRE_MAILLAGE(UNITE=39);
+
+ MA_TOT2 = args['MA_TOT2']
+ if MA_TOT2 != None : self.DeclareOut('ma_tot',MA_TOT2)
+ MA_STRUC = args['MA_STRUC']
+ ma_tot = ASSE_MAILLAGE(MAILLAGE_1 = MA_STRUC,
+ MAILLAGE_2 = ma_xfem2,
+ OPERATION='SUPERPOSE')
+
+ return
+++ /dev/null
-#@ MODIF reca_graphique Macro DATE 16/05/2007 AUTEUR ASSIRE A.ASSIRE
-# -*- coding: iso-8859-1 -*-
-# CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2005 EDF R&D WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
-# (AT YOUR OPTION) ANY LATER VERSION.
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
-# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
-# ======================================================================
-
-import string, copy, Numeric, types
-import Cata
-from Cata.cata import DEFI_FICHIER, IMPR_FONCTION
-from Utilitai.Utmess import UTMESS
-from Accas import _F
-
-try:
- import Gnuplot
-except:
- pass
-
-
-#_____________________________________________
-#
-# IMPRESSIONS GRAPHIQUES
-#_____________________________________________
-
-def graphique(FORMAT, L_F, res_exp, reponses, iter, UL_out, interactif):
-
- if FORMAT=='XMGRACE':
- for i in range(len(L_F)):
- _tmp = []
- courbe1 = res_exp[i]
- _tmp.append( { 'ABSCISSE': courbe1[:,0].tolist(), 'ORDONNEE': courbe1[:,1].tolist(), 'COULEUR': 1 } )
- courbe2 = L_F[i]
- _tmp.append( { 'ABSCISSE': courbe2[:,0].tolist(), 'ORDONNEE': courbe2[:,1].tolist(), 'COULEUR': 2 } )
-
- motscle2= {'COURBE': _tmp }
- if interactif: motscle2['PILOTE']= 'INTERACTIF'
- else: motscle2['PILOTE']= 'POSTSCRIPT'
-
-# DEFI_FICHIER(UNITE=int(UL_out), ACCES='NEW',)
-
- IMPR_FONCTION(FORMAT='XMGRACE',
- UNITE=int(UL_out),
- TITRE='Courbe de : ' + reponses[i][0],
- SOUS_TITRE='Iteration : ' + str(iter),
- LEGENDE_X=reponses[i][1],
- LEGENDE_Y=reponses[i][2],
- **motscle2
- );
-# DEFI_FICHIER(ACTION='LIBERER',UNITE=int(UL_out),)
-
- elif FORMAT=='GNUPLOT':
- graphe=[]
- impr=Gnuplot.Gnuplot()
- Gnuplot.GnuplotOpts.prefer_inline_data=1
- impr('set data style linespoints')
- impr('set grid')
- impr('set pointsize 2.')
- impr('set terminal postscript color')
- impr('set output "fort.'+str(UL_out)+'"')
-
- for i in range(len(L_F)):
- if interactif:
- graphe.append(Gnuplot.Gnuplot(persist=0))
- graphe[i]('set data style linespoints')
- graphe[i]('set grid')
- graphe[i]('set pointsize 2.')
- graphe[i].xlabel(reponses[i][1])
- graphe[i].ylabel(reponses[i][2])
- graphe[i].title(reponses[i][0]+' Iteration '+str(iter))
- graphe[i].plot(Gnuplot.Data(L_F[i],title='Calcul'),Gnuplot.Data(res_exp[i],title='Experimental'))
- graphe[i]('pause 5')
-
- impr.xlabel(reponses[i][1])
- impr.ylabel(reponses[i][2])
- impr.title(reponses[i][0]+' Iteration '+str(iter))
- impr.plot(Gnuplot.Data(L_F[i],title='Calcul'),Gnuplot.Data(res_exp[i],title='Experimental'))
-
- else:
- pass
-#@ MODIF simu_point_mat_ops Macro DATE 23/04/2007 AUTEUR PROIX J-M.PROIX
+#@ MODIF simu_point_mat_ops Macro DATE 07/10/2008 AUTEUR GENIAUT S.GENIAUT
# -*- coding: iso-8859-1 -*-
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
if etatinit == 1 :
__EVOL = STAT_NON_LINE(
+ INFO = INFO,
MODELE = __MO,
CHAM_MATER = __CHMAT,
ETAT_INIT=init_dico,
else:
__EVOL = STAT_NON_LINE(
+ INFO = INFO,
MODELE = __MO,
CHAM_MATER = __CHMAT,
EXCIT = l_char,**motscles)
--- /dev/null
+#@ MODIF test_temps_ops Macro DATE 05/09/2008 AUTEUR COURTOIS M.COURTOIS
+# -*- coding: iso-8859-1 -*-
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2008 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# ======================================================================
+# RESPONSABLE COURTOIS M.COURTOIS
+
+"""
+for m in clpaster clp50a8 claut626 clau5aaa aster
+do
+ echo "------ $m : `ssh $m hostid` -------"
+ ssh $m cat /proc/cpuinfo > $m.cpuinfo
+ ssh $m python -c '"import os ; print os.uname()[-1]"'
+ grep 'cpu MHz' $m.cpuinfo | head -1
+ grep -i bogomips $m.cpuinfo | head -1
+done
+"""
+
+import sys
+import os
+import re
+from glob import glob
+
+#-------------------------------------------------------------------------------
+# formats
+tab_header = """
+ !--------------------------------------------------------------------------------------------------!
+ ! Commande ! Ordre ! Reference ! Mesure ! Difference ! Tolerance ! Diagnostic !
+ !--------------------------------------------------------------------------------------------------!"""
+tab_line = """ ! %(cmde)-22s ! %(nume)6d ! %(refe)10.2f ! %(vale)10.2f ! %(diff)10.2f ! %(prec)10.2f ! %(diag)4s !"""
+tab_footer = """ !--------------------------------------------------------------------------------------------------!
+"""
+
+#-------------------------------------------------------------------------------
+def get_idperf(conf):
+ """Retourne l'identifiant utilisé pour la mesure des performances.
+ Soit on le trouve dans le fichier config.txt de la version utilisée,
+ soit on le détermine à partir de : "kernel name - hardware name"
+ """
+ machine = ''
+ compiler = 'unknown'
+ if conf is not None:
+ machine = conf['ID_PERF'][0]
+ compiler = os.path.basename(conf['F77'][0].split()[0])
+
+ if machine == '':
+ machine = '%s-%s-%s' %(os.uname()[0], os.uname()[4], compiler)
+ return machine
+
+#-------------------------------------------------------------------------------
+def as_list(value):
+ """Retourne 'value' si c'est une liste, sinon le singleton [value,]."""
+ if type(value) not in (list, tuple):
+ value = [value,]
+ return value
+
+#-------------------------------------------------------------------------------
+def test_temps_ops(self, RESU, INFO, **args):
+ """
+ Macro TEST_TEMPS permettant de vérifier le temps passé dans les commandes.
+ """
+ import aster
+ from Accas import _F
+ from Utilitai.Utmess import UTMESS, MessageLog
+ from Utilitai.System import ExecCommand
+
+ # On importe les definitions des commandes a utiliser dans la macro
+ # Le nom de la variable doit etre obligatoirement le nom de la commande
+ DETRUIRE = self.get_cmd('DETRUIRE')
+ CREA_TABLE = self.get_cmd('CREA_TABLE')
+ TEST_TABLE = self.get_cmd('TEST_TABLE')
+
+ #----------------------------------------------
+ ier = 0
+ # La macro compte pour 1 dans la numerotation des commandes
+ self.set_icmd(1)
+
+ # ----- récupération du fichier de config
+ ficconf = '?'
+ conf = None
+ try:
+ # recuperation de la variable ASTER_ROOT
+ aster_root = os.environ.get('ASTER_ROOT')
+ assert aster_root != None, "<TEST_TEMPS> Variable d'environnement ASTER_ROOT non definie."
+ sys.path.append(os.path.join(aster_root, 'ASTK', 'ASTK_SERV', 'lib'))
+ from as_profil import ASTER_PROFIL
+ from as_config import ASTER_CONFIG
+
+ l_export = glob('*.export')
+ assert len(l_export) > 0, "<TEST_TEMPS> pas de fichier export dans le repertoire de travail."
+
+ ficconf = 'config.txt'
+ if not os.path.isfile(ficconf): # if as_run.__version__ < 1.6.3
+ prof = ASTER_PROFIL(l_export[0])
+ if prof.Get('D', typ='conf'):
+ print '<TEST_TEMPS> Surcharge du fichier config.txt non supportée.'
+ REPREF = os.path.join(aster_root, prof['version'][0])
+ ficconf = os.path.join(REPREF, 'config.txt')
+ conf = ASTER_CONFIG(ficconf)
+ except Exception, err:
+ print err
+
+ machine = get_idperf(conf)
+
+ # liste des timers par ordre d'apparition : dict_cmde['commande'] = [timer1, timer2, ...]
+ dict_cmde = {}
+ for num, timer in self.jdc.timer.getsortedtimers():
+ cmde = timer['name']
+ dict_cmde[cmde] = dict_cmde.get(cmde, [])
+ dict_cmde[cmde].append(timer)
+
+ tab = get_cmde_timers(self.jdc)
+ if INFO == 2:
+ aster.affiche('MESSAGE', repr(tab))
+
+ #----------------------------------------------
+ # boucle sur les commandes a tester
+ alarm9 = True
+ infos = []
+ for res_i in RESU:
+ dres = res_i.cree_dict_valeurs(res_i.mc_liste)
+ current = {
+ 'cmde' : dres['COMMANDE'],
+ 'nume' : dres['NUME_ORDRE'],
+ 'refe' : 0.,
+ 'vale' : 0.,
+ 'diff' : 0.,
+ 'prec' : 0.,
+ 'diag' : 'NOOK',
+ }
+ error = False
+ l_mach = as_list(dres['MACHINE'])
+ l_vale = as_list(dres['VALE'])
+ if len(l_mach) != len(l_vale):
+ UTMESS('E', 'TEST0_10')
+ error = True
+
+ l_prec = as_list(dres['PRECISION'])
+ if len(l_prec) == 1:
+ l_prec = l_prec * len(l_vale)
+ if len(l_prec) != len(l_vale):
+ UTMESS('E', 'TEST0_8')
+ error = True
+
+ tres = (tab.COMMANDE == dres['COMMANDE']) & (tab.NUME_ORDRE == dres['NUME_ORDRE'])
+ if len(tres) != 1:
+ UTMESS('E', 'TEST0_7', valk=dres['COMMANDE'], vali=dres['NUME_ORDRE'])
+ error = True
+
+ if error:
+ infos.append(current)
+ continue
+
+ # comparaison des valeurs
+ valtest = getattr(tres, dres['TYPE_TEST'])
+ assert len(valtest) == 1, 'TYPE_TEST invalide'
+ valtest = valtest[0]
+
+ current['vale'] = valtest
+
+ # reference, precision
+ dref = {}
+ for mach, vale, precision in zip(l_mach, l_vale, l_prec):
+ if dres['CRITERE'] == 'RELATIF':
+ precision = precision * vale
+ dref[mach.upper()] = {
+ 'vale' : vale,
+ 'prec' : precision,
+ 'valmin' : vale - precision,
+ 'valmax' : vale + precision
+ }
+ dmach = dref.get(machine.upper())
+ # si on n'a pas de référence pour cette machine, on prend la première
+ if not dmach:
+ dmach = dref[l_mach[0].upper()]
+ if alarm9:
+ alarm9 = False
+ UTMESS('A', 'TEST0_9', valk=(machine, l_mach[0]))
+ current['refe'] = dmach['vale']
+ current['prec'] = dmach['prec']
+ current['diff'] = valtest - dmach['vale']
+ if dmach['valmin'] < valtest < dmach['valmax']:
+ current['diag'] = 'OK'
+ infos.append(current)
+
+ # tableau de resultats
+ text_id = MessageLog.GetText('I', 'TEST0_5', valk=(ficconf, machine))
+ is_ok = 1
+ txt = [text_id, tab_header,]
+ for line in infos:
+ txt.append(tab_line % line)
+ if line['diag'] != 'OK':
+ is_ok = 0
+ txt.append(tab_footer)
+ for unit in ('MESSAGE', 'RESULTAT'):
+ aster.affiche(unit, os.linesep.join(txt))
+
+ # test_resu
+ tab1__ = CREA_TABLE(LISTE=(_F(PARA='DIAGNOSTIC', LISTE_I=is_ok),),)
+
+ TEST_TABLE(TABLE=tab1__,
+ NOM_PARA='DIAGNOSTIC',
+ VALE_I=1,
+ CRITERE='ABSOLU',
+ PRECISION=0,)
+
+ return ier
+
+
+#-------------------------------------------------------------------------------
+def get_cmde_timers(jdc):
+ """Retourne un objet Table contenant les mesures de temps pour
+ les commandes terminées.
+ """
+ from Utilitai.Table import Table
+ tab = Table()
+
+ # liste des timers par ordre d'apparition
+ dnum = {}
+ for num, timer in jdc.timer.getsortedtimers():
+ if timer['state'] != 'stop' \
+ or re.sub('[A-Z_]', '', timer['name']).strip() != '': # timers superviseur
+ continue
+ line = {}
+ for k in ('name', 'cpu_dt', 'sys_dt', 'tot_dt'):
+ line[k] = timer[k]
+ line['USER+SYS'] = timer['cpu_dt'] + timer['sys_dt']
+ dnum[line['name']] = dnum.get(line['name'], 0) + 1
+ line['NUME_ORDRE'] = dnum[line['name']]
+ tab.append(line)
+ tab.Renomme('name', 'COMMANDE')
+ tab.Renomme('cpu_dt', 'USER')
+ tab.Renomme('sys_dt', 'SYSTEM')
+ tab.Renomme('tot_dt', 'ELAPSED')
+ tab = tab['NUME_ORDRE', 'COMMANDE', 'USER', 'SYSTEM', 'USER+SYS', 'ELAPSED']
+ return tab
+
-#@ MODIF co_cara_elem SD DATE 13/02/2007 AUTEUR PELLET J.PELLET
+#@ MODIF co_cara_elem SD DATE 20/10/2008 AUTEUR ASSIRE A.ASSIRE
# -*- coding: iso-8859-1 -*-
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# -----------------------------------------------------------------------------
class cara_elem(ASSD, sd_cara_elem):
- pass
+ def toEPX(self):
+ EPXnoeud = self.CARRIGXN.get()
+ EPXval = self.CARRIGXV.get()
+ ressorts = {}
+ i=0
+ assert len(EPXval) == len(EPXnoeud)*6, 'donnees incorrectes'
+ for no in EPXnoeud :
+ ressorts[no] = EPXval[i:i+6]
+ i+=6
+ return ressorts
+
+
-#@ MODIF sd_cara_elem SD DATE 09/05/2007 AUTEUR PELLET J.PELLET
+#@ MODIF sd_cara_elem SD DATE 23/10/2008 AUTEUR TORKHANI M.TORKHANI
# -*- coding: iso-8859-1 -*-
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
CVENTCXF = Facultatif(sd_carte())
CARPOUFL = Facultatif(sd_carte())
CARGEOPO = Facultatif(sd_carte())
+ CARRIGXN = Facultatif(AsVK8())
+ CARRIGXV = Facultatif(AsVR())
+ CARDNSCK = Facultatif(sd_carte())
+ CARDNSCM = Facultatif(sd_carte())
+ CARDNSCA = Facultatif(sd_carte())
+ CARDINFO = Facultatif(sd_carte())
-#@ MODIF sd_cham_elem SD DATE 18/03/2008 AUTEUR PELLET J.PELLET
+#@ MODIF sd_cham_elem SD DATE 07/10/2008 AUTEUR PELLET J.PELLET
# -*- coding: iso-8859-1 -*-
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
assert celk[5] != '' , celk
assert celk[6] in ('MPI_COMPLET','MPI_INCOMPLET') , celk
+ def check_2(self, checker):
+ if not checker._profond : return
+ if not self.exists() : return
+ celd=self.CELD.get()
+ assert celd[0] > 0 , celd
+ ngrel= celd[1]
+ assert ngrel > 0 , celd
+ mxsp = celd[2]
+ assert mxsp > 0 , celd
+ mxcmp = celd[3]
+ lvari = mxcmp > 0
+ for kgrel in range(ngrel) :
+ debugr= celd[4+kgrel]-1
+ nbel = celd[debugr+1]
+ modelo= celd[debugr+2]
+ lgcata= celd[debugr+3]
+ lggrel= celd[debugr+4]
+
+ assert nbel > 0 , (nbel,kgrel)
+ assert modelo >= 0 , (modelo,kgrel)
+ if modelo == 0 :
+ assert lgcata == 0 , (lgcata,kgrel)
+ assert lggrel == 0 , (lggrel,kgrel)
+ continue
+
+ assert lgcata > 0 , (lgcata,kgrel)
+ assert lggrel > 0 , (lggrel,kgrel)
+ assert lggrel >= nbel*lgcata , (lggrel,kgrel,nbel,lgcata)
+
+
+ for iel in range(nbel) :
+ nbsp =celd[debugr+4+4*iel+1]
+ ncdyn =celd[debugr+4+4*iel+2]
+ lgchel=celd[debugr+4+4*iel+3]
+ adiel =celd[debugr+4+4*iel+4]
+ assert nbsp > 0 , (nbsp,kgrel,iel)
+ if lvari :
+ assert ncdyn > 0 , (ncdyn,kgrel,iel)
+ assert lgchel == lgcata*nbsp*ncdyn , (lgchel,lgcata,nbsp,ncdyn,kgrel,iel)
+ else :
+ assert ncdyn == 0 , (ncdyn,kgrel,iel)
+ assert lgchel == lgcata*nbsp , (lgchel,lgcata,nbsp,kgrel,iel)
+ assert adiel > 0 , (adiel,kgrel,iel)
+
-#@ MODIF sd_cham_mater SD DATE 28/01/2008 AUTEUR PELLET J.PELLET
+#@ MODIF sd_cham_mater SD DATE 30/06/2008 AUTEUR PROIX J-M.PROIX
# -*- coding: iso-8859-1 -*-
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
for kedit in range(n_gd_edit):
v1=vale[kedit*ncmp_max:(kedit+1)*ncmp_max]
assert v1[3]=='COMP_INCR' , v1
- sd2=sd_compor(v1[5].split('.')[0].strip()) ; sd2.check(checker)
+ sd2=sd_compor(v1[6].split('.')[0].strip()) ; sd2.check(checker)
for x1 in v1[7:] :
assert x1=='' , v1
-#@ MODIF sd_cham_no SD DATE 28/11/2007 AUTEUR COURTOIS M.COURTOIS
+#@ MODIF sd_cham_no SD DATE 03/11/2008 AUTEUR PELLET J.PELLET
# -*- coding: iso-8859-1 -*-
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
from SD import *
from SD.sd_titre import sd_titre
-from SD.sd_nume_equa import sd_nume_equa
+from SD.sd_prof_chno import sd_prof_chno
class sd_cham_no(sd_titre):
# retourne "vrai" si la SD semble exister (et donc qu'elle peut etre vérifiée)
return self.REFE.exists
- # indirection vers PROF_CHNO/NUME_EQUA :
def check_cham_no_i_REFE(self, checker):
if not self.exists() : return
lnom = self.REFE.get()
sd2 = sd_maillage(lnom[0])
sd2.check(checker)
- # j'aurai préféré : sd_prof_chno que sd_nume_equa (mais sslv111b !) AJACOT_PB :
if lnom[1].strip() :
- if checker.names.has_key(lnom[1][:14]+'.NUME.DEEQ'): return
- sd2 = sd_nume_equa(lnom[1]) ; sd2.check(checker)
+ if checker.names.has_key(lnom[1][:14]+'.NUME.PRNO'): return
+ sd2 = sd_prof_chno(lnom[1]) ; sd2.check(checker)
-#@ MODIF sd_char_acou SD DATE 13/02/2007 AUTEUR PELLET J.PELLET
+#@ MODIF sd_char_acou SD DATE 16/09/2008 AUTEUR PELLET J.PELLET
# -*- coding: iso-8859-1 -*-
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
-# (AT YOUR OPTION) ANY LATER VERSION.
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
-# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
# ======================================================================
from SD import *
from SD.sd_ligrel import sd_ligrel
from SD.sd_carte import sd_carte
+from SD.sd_char_cine import sd_char_cine
+
+
class sd_char_acou(AsBase):
nomj = SDNom(fin=8)
chac_vitfa = Facultatif(sd_carte(SDNom(nomj='.CHAC.VITFA', fin=19)))
chac_cimpo = Facultatif(sd_carte(SDNom(nomj='.CHAC.CIMPO', fin=19)))
chac_imped = Facultatif(sd_carte(SDNom(nomj='.CHAC.IMPED', fin=19)))
chac_ligre = Facultatif(sd_ligrel(SDNom(nomj='.CHAC.LIGRE', fin=19)))
+ ELIM = Facultatif(sd_char_cine())
TYPE = AsVK8(lonmax=1, )
-#@ MODIF sd_char_cine SD DATE 08/10/2007 AUTEUR PELLET J.PELLET
+#@ MODIF sd_char_cine SD DATE 16/09/2008 AUTEUR PELLET J.PELLET
# -*- coding: iso-8859-1 -*-
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
return self.AFCK.exists
- def u_veri1(self): # retourne (CIME/CITH/CIAC, RE/CX/FO/FT)
+ def u_veri1(self): # retourne (CIME/CITH/CIAC, RE/CX/FT)
#---------------------------------------------------------------
+ if not self.exists() : return
afck=self.AFCK.get()
l1=afck[0].strip().split('_') ; assert len(l1)==2 , afck
phen, tsca= l1[0], l1[1]
assert phen in ('CIME', 'CITH', 'CIAC'), afck
- assert tsca in ('RE', 'CX', 'FO', 'FT'), tsca
+ assert tsca in ('RE', 'CX', 'FT'), tsca
return phen, tsca
def check_AFCK(self,checker):
#---------------------------------------------
+ if not self.exists() : return
phen, tsca = self.u_veri1()
afck=self.AFCK.get()
nomo=afck[1].strip()
sd2=sd_modele(nomo); sd2.check(checker)
- if afck[2].strip() != '' : assert phen=='CIME' and tsca=='FT', afck
+ if afck[2].strip() != '' : assert (phen=='CIME' or phen=='CITH') and tsca=='FT', afck
def check_AFCI(self,checker):
#---------------------------------------------
+ if not self.exists() : return
phen, tsca = self.u_veri1()
afci=self.AFCI.get()
nbloc=afci[0]
def check_AFCV(self,checker):
#-------------------------------------------------
+ if not self.exists() : return
phen, tsca = self.u_veri1()
afci=self.AFCI.get()
nbloc=afci[0]
assert self.AFCV.lonmax == nbloc , (nbloc,self.AFCV.lonmax)
if tsca == 'RE' :
- assert tsca2=='R', tsca2
- if tsca in ('FO', 'FT') :
- assert tsca2=='K' , tsca2 # champ de fonctions
- if tsca=='CX' :
- assert tsca2=='C', tsca2
+ assert tsca2=='R', tsca2 # champ de réels
+ if tsca == 'FT' :
+ assert tsca2=='K', tsca2 # champ de fonctions
+ if tsca == 'CX' :
+ assert tsca2=='C', tsca2 # champ de complexes
# vérification des fonctions :
- if tsca in ( 'FO', 'FT') : # 'FO' : fonction ; 'FT' : il existe une fonction de 'INST'
+ if tsca == 'FT' :
afcv = self.AFCV.get()
for fonc in afcv :
sd2=sd_fonction(fonc); sd2.check(checker)
-#@ MODIF sd_char_meca SD DATE 01/04/2008 AUTEUR ABBAS M.ABBAS
+#@ MODIF sd_char_meca SD DATE 16/09/2008 AUTEUR PELLET J.PELLET
# -*- coding: iso-8859-1 -*-
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
from SD.sd_carte import sd_carte
from SD.sd_char_unilate import sd_char_unilate
from SD.sd_char_contact import sd_char_contact
+from SD.sd_char_cine import sd_char_cine
class sd_char_gf_xx(AsBase):
TYPE = AsVK8(lonmax=1)
CHME = Facultatif(sd_char_chme())
+ ELIM = Facultatif(sd_char_cine())
UNILATE = Facultatif(sd_char_unilate())
CONTACT = Facultatif(sd_char_contact())
-#@ MODIF sd_char_ther SD DATE 17/07/2007 AUTEUR PELLET J.PELLET
+#@ MODIF sd_char_ther SD DATE 16/09/2008 AUTEUR PELLET J.PELLET
# -*- coding: iso-8859-1 -*-
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
from SD.sd_carte import sd_carte
from SD.sd_champ import sd_champ
from SD.sd_fonction import sd_fonction
+from SD.sd_char_cine import sd_char_cine
class sd_char_chth(AsBase):
class sd_char_ther(AsBase):
#--------------------------------
nomj = SDNom(fin=8)
- TYPE = AsVK8(lonmax=1)
- CHTH = sd_char_chth()
+ TYPE = AsVK8(lonmax=1)
+ CHTH = sd_char_chth()
+ ELIM = Facultatif(sd_char_cine())
-#@ MODIF sd_compor SD DATE 19/11/2007 AUTEUR PROIX J-M.PROIX
+#@ MODIF sd_compor SD DATE 30/06/2008 AUTEUR PROIX J-M.PROIX
# -*- coding: iso-8859-1 -*-
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
+++ /dev/null
-#@ MODIF sd_compor1 SD DATE 13/02/2007 AUTEUR PELLET J.PELLET
-# -*- coding: iso-8859-1 -*-
-# CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
-# (AT YOUR OPTION) ANY LATER VERSION.
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
-# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
-# ======================================================================
-
-from SD import *
-from SD.sd_fonction import sd_fonction
-
-
-class sd_compor1(AsBase):
-#-----------------------
- nomj = SDNom(fin=19)
- VALC = AsVC(SDNom(debut=19), )
- VALK = AsVK8(SDNom(debut=19), )
- VALR = AsVR(SDNom(debut=19), )
-
-
- # parfois, THER_NL crée une sd_fonction pour BETA
- def check_compor1_i_VALK(self, checker):
- nom= self.nomj().strip()
- valk=list(self.VALK.get())
- if not valk : return
- if nom[8:16]=='.THER_NL' :
- k=valk.index('BETA ')
- nomfon=valk[2*k+1]
- sd2=sd_fonction(nomfon) ; sd2.check(checker)
+++ /dev/null
-#@ MODIF sd_fiss_xfem SD DATE 09/05/2007 AUTEUR PELLET J.PELLET
-# -*- coding: iso-8859-1 -*-
-# CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
-# (AT YOUR OPTION) ANY LATER VERSION.
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
-# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
-# ======================================================================
-
-from SD import *
-
-from SD.sd_cham_no import sd_cham_no
-from SD.sd_cham_elem import sd_cham_elem
-
-
-class sd_mailfiss_xfem(AsBase):
-#-------------------------------
- nomj = SDNom(fin=19)
- CTIP = AsVI(SDNom(nomj='.CTIP'))
- HEAV = AsVI(SDNom(nomj='.HEAV'))
- HECT = AsVI(SDNom(nomj='.HECT'))
-
-
-class sd_contact_xfem(AsBase):
-#-------------------------------
- nomj = SDNom(fin=16)
- CARACF = AsVR(SDNom(nomj='.CARACF'))
- ECPDON = AsVI(SDNom(nomj='.ECPDON'))
- LISCO = AsVR(SDNom(nomj='.LISCO'))
- LISEQ = AsVI(SDNom(nomj='.LISEQ'))
- LISRL = AsVI(SDNom(nomj='.LISRL'))
- METHCO = AsVI(SDNom(nomj='.METHCO'))
- XFEM = AsVI(SDNom(nomj='.XFEM'))
-
-
-
-class sd_xfem_com1(AsBase):
-#-------------------------------
-# champs communs aux sd_fiss_xfem et sd_modele :
-
- nomj = SDNom(fin=8)
-
- # cham_no :
- BASLOC = sd_cham_no()
- LNNO = sd_cham_no()
- LTNO = sd_cham_no()
- STNO = sd_cham_no()
-
- # cham_elem :
- topose_pin = Facultatif(sd_cham_elem(SDNom(nomj='.TOPOSE.PIN')))
- topose_cns = Facultatif(sd_cham_elem(SDNom(nomj='.TOPOSE.CNS')))
- topose_hea = Facultatif(sd_cham_elem(SDNom(nomj='.TOPOSE.HEA')))
- topose_lon = Facultatif(sd_cham_elem(SDNom(nomj='.TOPOSE.LON')))
- topofac_pi = Facultatif(sd_cham_elem(SDNom(nomj='.TOPOFAC.PI')))
- topofac_ai = Facultatif(sd_cham_elem(SDNom(nomj='.TOPOFAC.AI')))
- topofac_cf = Facultatif(sd_cham_elem(SDNom(nomj='.TOPOFAC.CF')))
- topofac_lo = Facultatif(sd_cham_elem(SDNom(nomj='.TOPOFAC.LO')))
- topofac_ba = Facultatif(sd_cham_elem(SDNom(nomj='.TOPOFAC.BA')))
-
-
-
-class sd_fiss_xfem(AsBase):
-#-------------------------------
- nomj = SDNom(fin=8)
-
- CARAFOND = AsVR()
- FONDFISS = AsVR()
- GROUP_MA_ENRI = AsVI()
- GROUP_NO_ENRI = AsVI()
-
- FONDMULT = Facultatif(AsVI())
-
- CONTACT = Facultatif(sd_contact_xfem())
-
- mailfiss_indic = AsVI(SDNom(nomj='.MAILFISS .INDIC'), lonmax=6, )
- MAILFISS = Facultatif(sd_mailfiss_xfem())
-
-
- # sd_xfem_com1 (idem sd_modele) :
- com1 = sd_xfem_com1(SDNom(nomj=''))
-
- # cham_no :
- BASCO = Facultatif(sd_cham_no())
- GRLNNO = sd_cham_no()
- GRLTNO = sd_cham_no()
- STNOR = sd_cham_no()
-
- # cham_elem :
- topose_cri = Facultatif(sd_cham_elem(SDNom(nomj='.TOPOSE.CRI')))
- pro_mes_el = Facultatif(sd_cham_elem(SDNom(nomj='.PRO.MES_EL')))
- pro_normal = Facultatif(sd_cham_elem(SDNom(nomj='.PRO.NORMAL')))
+++ /dev/null
-#@ MODIF sd_formule SD DATE 13/02/2007 AUTEUR PELLET J.PELLET
-# -*- coding: iso-8859-1 -*-
-# CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
-# (AT YOUR OPTION) ANY LATER VERSION.
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
-# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
-# ======================================================================
-
-from SD import *
-
-class sd_formule(AsBase):
- nomj = SDNom(fin=19)
- PROL = AsVK16(lonmax=6, )
- NOVA = AsVK8()
-
-
-#@ MODIF sd_macr_elem_dyna SD DATE 24/09/2007 AUTEUR DEVESA G.DEVESA
+#@ MODIF sd_macr_elem_dyna SD DATE 22/09/2008 AUTEUR ANDRIAM H.ANDRIAMBOLOLONA
# -*- coding: iso-8859-1 -*-
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
nomj = SDNom(fin=18)
DESC = AsVI (SDNom(nomj='_DESC'),lonmax=3)
REFE = AsVK24 (SDNom(nomj='_REFE'),lonmax=2)
- VALE = AsVR (SDNom(nomj='_VALE'))
+ VALE = AsObject (SDNom(nomj='_VALE'),type=Parmi('C','R',),)
def check_macr_elem_dyna_m_1(self,checker):
vale=self.VALE.get()
-#@ MODIF sd_matr_cine SD DATE 14/01/2008 AUTEUR DESOZA T.DESOZA
+#@ MODIF sd_matr_cine SD DATE 22/09/2008 AUTEUR DESOZA T.DESOZA
# -*- coding: iso-8859-1 -*-
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
nomj = SDNom(fin=19)
CCID = AsVI()
- CCJJ = Facultatif(AsVI())
+ CCII = Facultatif(AsVI())
CCLL = Facultatif(AsVI())
CCVA = Facultatif(AsObject(genr='V', xous='S', type=Parmi('R','C')))
-#@ MODIF sd_matr_elem SD DATE 25/03/2008 AUTEUR REZETTE C.REZETTE
+#@ MODIF sd_matr_elem SD DATE 16/09/2008 AUTEUR PELLET J.PELLET
# -*- coding: iso-8859-1 -*-
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
nomj = SDNom(fin=19)
RERR = AsVK24(lonmax=5, )
RELR = Facultatif(AsVK24())
+ RECC = Facultatif(AsVK8())
TITR = AsVK80(SDNom(debut=19), optional=True)
-
+
# indirection par RELR :
def check_matr_elem_i_RELR(self, checker):
if not self.RELR.exists : return
-#@ MODIF sd_nume_ddl_com SD DATE 13/02/2007 AUTEUR PELLET J.PELLET
+#@ MODIF sd_nume_ddl_com SD DATE 03/11/2008 AUTEUR PELLET J.PELLET
# -*- coding: iso-8859-1 -*-
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
-# (AT YOUR OPTION) ANY LATER VERSION.
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
-# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
# ======================================================================
from SD import *
class sd_nume_ddl_com(sd_stockage):
-#--------------------------------
+#----------------------------------
nomj = SDNom(fin=14)
NSLV = AsVK24(lonmax=1, )
-#@ MODIF sd_nume_ddl_gene SD DATE 13/02/2007 AUTEUR PELLET J.PELLET
+#@ MODIF sd_nume_ddl_gene SD DATE 03/11/2008 AUTEUR PELLET J.PELLET
# -*- coding: iso-8859-1 -*-
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
-# (AT YOUR OPTION) ANY LATER VERSION.
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
-# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
# ======================================================================
from SD import *
class sd_nume_ddl_gene(sd_nume_ddl_com):
-#--------------------------------
+#---------------------------------------
nomj = SDNom(fin=14)
nume = Facultatif(sd_nume_eqge(SDNom(nomj='.NUME'))) # n'existe pas toujours : CALC_MATR_AJOU/fdlv106a
-#@ MODIF sd_nume_equa SD DATE 11/02/2008 AUTEUR PELLET J.PELLET
+#@ MODIF sd_nume_equa SD DATE 03/11/2008 AUTEUR PELLET J.PELLET
# -*- coding: iso-8859-1 -*-
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
from SD.sd_prof_chno import sd_prof_chno
class sd_nume_equa(sd_prof_chno):
nomj = SDNom(fin=19)
- NEQU = Facultatif(AsVI(SDNom(debut=19), lonmax=2, ))
- DELG = Facultatif(AsVI(SDNom(debut=19), ))
- REFN = Facultatif(AsVK24(SDNom(debut=19),lonmax=4, ))
+ NEQU = AsVI(lonmax=2,)
+ DELG = AsVI( )
+ REFN = AsVK24(lonmax=4,)
+++ /dev/null
-#@ MODIF sd_obstacle SD DATE 13/02/2007 AUTEUR PELLET J.PELLET
-# -*- coding: iso-8859-1 -*-
-# CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
-# (AT YOUR OPTION) ANY LATER VERSION.
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
-# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
-# ======================================================================
-
-from SD import *
-
-class sd_obstacle(AsBase):
- nomj = SDNom(fin=19)
- VALR = Facultatif(AsVR(lonmax=19, ))
- REFO = AsVK24(lonmax=1, )
- VALT = Facultatif(AsVR(lonmax=19, ))
-
-
-#@ MODIF sd_prof_chno SD DATE 13/02/2007 AUTEUR PELLET J.PELLET
+#@ MODIF sd_prof_chno SD DATE 03/11/2008 AUTEUR PELLET J.PELLET
# -*- coding: iso-8859-1 -*-
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
-# (AT YOUR OPTION) ANY LATER VERSION.
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
-# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
# ======================================================================
from SD import *
class sd_prof_chno(AsBase):
nomj = SDNom(fin=19)
- LPRN = Facultatif(AsVI(SDNom(debut=19), ))
- PRNO = AsColl(SDNom(debut=19), acces='NU', stockage='CONTIG', modelong=Parmi('CONSTANT', 'VARIABLE'), type='I', )
- LILI = AsObject(SDNom(debut=19), genr='N', xous='S', type='K', ltyp=24, )
- NUEQ = AsVI(SDNom(debut=19), )
- DEEQ = AsVI(SDNom(debut=19), )
+ PRNO = AsColl( acces='NU', stockage='CONTIG', modelong=Parmi('CONSTANT', 'VARIABLE'), type='I', )
+ LILI = AsObject( genr='N', xous='S', type='K', ltyp=24, )
+ NUEQ = AsVI( )
+ DEEQ = AsVI( )
-#@ MODIF sd_resultat SD DATE 22/10/2007 AUTEUR PELLET J.PELLET
+#@ MODIF sd_resultat SD DATE 07/10/2008 AUTEUR PELLET J.PELLET
# -*- coding: iso-8859-1 -*-
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
ORDR = AsVI(SDNom(debut=19), )
DESC = AsObject(SDNom(debut=19), genr='N', xous='S', type='K', ltyp=16, )
+ NOEU = Facultatif(AsVK16(SDNom(debut=19))) # en attendant la correction de EL 12583
+
# la déclaration suivante simplifie la fonction check_resultat_i_char
CHAR = Facultatif(AsVK24(SDNom(debut=19),))
ltyp=Parmi(4,8,16,24),) ; sd2.check(checker)
- # indirection vers les sd_l_charges stockées comme paramètres dans l'objet .CHAR :
- def check_resultat_i_CHAR(self, checker):
+ # indirection vers les sd_l_charges stockées comme paramètres sous le nom EXCIT :
+ def check_resultat_i_EXCIT(self, checker):
lnom = self.CHAR.get()
if not lnom: return
S1=Set()
sdu_compare(sd2,checker,len(sd2.get()),'==',npara*nbmax_ordr,'Incohérence LONMAX / LONMAX(.ORDR)')
- # vérification que les variables d'accès sont bien différentes :
- def check_ACCES(self, checker):
+ # vérifications supplémentaires :
+ def check_veri1(self, checker):
ordr = self.ORDR.get()
nova = self.NOVA.get()
tava = self.TAVA.get()
# objets trouvés dans .TAVA
for knova in tava.keys():
- nova1=nova[knova-1]
+ nova1=nova[knova-1].strip()
suffix=tava[knova][0][:5]
if not suffix.strip(): continue
nupara=int(tava[knova][1])
nbpara=int(tava[knova][2])
+ assert nupara <= nbpara, (nupara, nbpara)
acces=tava[knova][3].strip()
assert acces in ('PARA','ACCES') , acces
+
+ # on vérifie que les variables d'accès sont toutes différentes :
if acces == 'ACCES' :
# pour l'instant, on ne vérifie que 'INST' car 'FREQ', 'NUME_MODE', 'NOEUD_CMP' ne semblent pas tous différents ...
- if nova1.strip() != 'INST' : continue
- sdu_compare(tava,checker,nupara,'<=',nbpara,'nupara <= nbpara')
+ if nova1 != 'INST' : continue
nom=self.nomj()[:19]+suffix
sd2 = AsObject(SDNom(nomj=nom,debut=0),)
sdu_tous_differents(sd2,checker,seq,nova1)
+ # on vérifie les éventuelles sd_l_charge (EXCIT) :
+ if nova1=="EXCIT" :
+ nom=self.nomj()[:19]+suffix
+ sd2 = AsObject(SDNom(nomj=nom,debut=0),)
+ vect=sd2.get()
+ S1=Set()
+ for k in range(nbuti_ordr) :
+ S1.add(vect[k*nbpara+nupara-1])
+ for nom in S1 :
+ if nom.strip() != '' :
+ sd2 = sd_l_charges(nomj=nom); sd2.check(checker)
+
-#@ MODIF sd_resultat_dyn SD DATE 11/02/2008 AUTEUR PELLET J.PELLET
+#@ MODIF sd_resultat_dyn SD DATE 03/11/2008 AUTEUR PELLET J.PELLET
# -*- coding: iso-8859-1 -*-
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
class sd_resultat_dyn(sd_resultat):
#--------------------------------------------------
nomj = SDNom(fin=8)
- PROFC_NUME_REFN = Facultatif(AsVK24(SDNom(nomj='.PROFC.NUME.REFN'), lonmax=4, ))
- REFD = Facultatif(AsVK24(SDNom(debut=19), lonmax=6, )) # n'existe pas dans sdll23a
+ REFD = AsVK24(SDNom(debut=19), lonmax=6, )
# si utilisation de PROJ_MESU_MODAL :
PROJM = Facultatif(sd_proj_mesu())
-#@ MODIF sd_solveur SD DATE 13/02/2007 AUTEUR PELLET J.PELLET
+#@ MODIF sd_solveur SD DATE 22/07/2008 AUTEUR PELLET J.PELLET
# -*- coding: iso-8859-1 -*-
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
SLVI = AsVI(SDNom(debut=19), lonmax=6, )
+ def check_SLVK(self,checker):
+ #---------------------------------------------
+ slvk = self.SLVK.get_stripped()
+ method=slvk[0]
+ if method == 'MUMPS' :
+ assert slvk[1] in ('AUTO', 'SANS'), slvk
+ assert slvk[2] in ('NONSYM', 'SYMGEN', 'SYMDEF', 'AUTO'), slvk
+ assert slvk[3] in ('AMD','AMF','PORD','METIS','QAMD','AUTO'), slvk
+ assert slvk[4] in ('OUI', 'NON'), slvk
+ assert slvk[5] in ('OUI', 'NON'), slvk
+ else :
+ pass
+
+
-#@ MODIF sd_squelette SD DATE 19/06/2007 AUTEUR PELLET J.PELLET
+#@ MODIF sd_squelette SD DATE 03/11/2008 AUTEUR PELLET J.PELLET
# -*- coding: iso-8859-1 -*-
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
class sd_squelette(sd_maillage):
#-------------------------------
nomj = SDNom(fin=8)
- inv_skeleton = AsVI(SDNom(nomj='.INV.SKELETON'), )
+ inv_skeleton = Facultatif(AsVI(SDNom(nomj='.INV.SKELETON'),))
CORRES = Facultatif(AsVI())
NOMSST = Facultatif(AsVK8(SDNom(debut=17),))
def check_SKELETON(self,checker):
- dime=self.DIME.get()
+ if not self.inv_skeleton.exists : return
skeleton=self.inv_skeleton.get()
+ dime=self.DIME.get()
nbno=dime[0]
assert len(skeleton)==2*nbno, (dime,len(skeleton))
for k in skeleton :
-#@ MODIF sd_table_container SD DATE 12/02/2008 AUTEUR REZETTE C.REZETTE
+#@ MODIF sd_table_container SD DATE 21/10/2008 AUTEUR REZETTE C.REZETTE
# -*- coding: iso-8859-1 -*-
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# 'NOM_OBJET','TYPE_OBJET','NOM_SD'
param=['NOM_OBJET','TYPE_OBJET','NOM_SD']
shape = self.TBNP.get()
- assert 3,shape[0] # la table a exactement 3 paramètres
+ assert shape[0]>2 # la table à au moins 3 paramètres
for n in param:
col=self.get_column_name(n)
if col == None:
-#@ MODIF sd_tran_gene SD DATE 27/11/2007 AUTEUR ANDRIAM H.ANDRIAMBOLOLONA
+#@ MODIF sd_tran_gene SD DATE 25/11/2008 AUTEUR BOYERE E.BOYERE
# -*- coding: iso-8859-1 -*-
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
assert self.ORDR.lonmax == nbsauv
assert self.INST.lonmax == nbsauv
assert self.PTEM.lonmax in (1, nbsauv)
- # sdu_tous_differents(self.ORDR,checker) # AJACOT_PB : j'aimerais bien "tous_différents"
- # sdu_tous_differents(self.INST,checker) # mais il y a sdld102a => fiche à émettre ?
+ sdu_tous_differents(self.ORDR,checker) # AJACOT_PB : j'aimerais bien "tous_différents"
+ sdu_tous_differents(self.INST,checker) # mais il y a sdld102a => fiche à émettre ?
def check_DEPL_VITE_ACCE(self,checker):
-#@ MODIF sd_xfem SD DATE 04/02/2008 AUTEUR GALENNE E.GALENNE
+#@ MODIF sd_xfem SD DATE 14/10/2008 AUTEUR GENIAUT S.GENIAUT
# -*- coding: iso-8859-1 -*-
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
FONDFISS = Facultatif(AsVR())
BASEFOND = Facultatif(AsVR())
FONDMULT = Facultatif(AsVI())
- CARAFOND = AsVR()
+ CARAFOND = AsVR(lonmax=12,)
# I.2) objets relatifs à l'enrichissement
Utilitaire sur le catalogue des structures de données.
"""
-__revision__ = "$Id: utilsd.py,v 1.2.6.3.4.2 2008-10-10 13:32:10 pnoyret Exp $"
+__revision__ = "$Id: utilsd.py,v 1.3.4.2 2008-11-28 16:53:33 pnoyret Exp $"
import sys
import os
from __future__ import division
__version__ = "$Name: $"
-__Id__ = "$Id: cata.py,v 1.2.6.5.4.3 2008-10-10 13:31:49 pnoyret Exp $"
+__Id__ = "$Id: cata.py,v 1.3.4.2 2008-11-28 16:53:32 pnoyret Exp $"
import Accas
from Accas import *
vect_elem_pres_r, vect_elem_pres_c, \
vect_elem_temp_r
-#& MODIF COMMUN DATE 06/05/2008 AUTEUR MARKOVIC D.MARKOVIC
+#& MODIF COMMUN DATE 20/10/2008 AUTEUR MICHEL S.MICHEL
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2003 EDF R&D WWW.CODE-ASTER.ORG
# ======================================================================
# RESPONSABLE PROIX J.M.PROIX
def C_COMP_INCR() : return FACT(statut='f',min=1,max='**', #COMMUN#
- RELATION =SIMP(statut='o',typ='TXM',defaut="VMIS_ISOT_TRAC",
- into=( "ELAS",
-# Spécial Discrets : début
- "DIS_VISC", # RESP. : FLEJOU J.L.FLEJOU
- "DIS_ECRO_CINE", # RESP. : FLEJOU J.L.FLEJOU
+ RELATION =SIMP(statut='o',typ='TXM',defaut="ELAS",
+ into=( "ELAS", # RESP. : PROIX J.M.PROIX
+ "ARME", # RESP. : PEYRARD C.PEYRARD
+ "ASSE_CORN", # RESP. : PEYRARD C.PEYRARD
+ "BARCELONE", # RESP. : ELGHARIB J.ELGHARIB
+ "BETON_DOUBLE_DP", # RESP. : ELGHARIB J.ELGHARIB
+ "BETON_REGLE_PR", # RESP. : NECS
+ "BETON_UMLV_FP", # RESP. : LEPAPE Y.LEPAPE
+ "CAM_CLAY", # RESP. : ELGHARIB J.ELGHARIB
+ "CJS", # RESP. : CHAVANT C.CHAVANT
+ "CORR_ACIER", # RESP. : LEPAPE Y.LEPAPE
+ "CZM_EXP_REG", # RESP. : LAVERNE J.LAVERNE
+ "CZM_EXP", # RESP. : LAVERNE J.LAVERNE
+ "CZM_LIN_REG", # RESP. : LAVERNE J.LAVERNE
+ "CZM_OUV_MIX", # RESP. : LAVERNE J.LAVERNE
+ "CZM_TAC_MIX", # RESP. : LAVERNE J.LAVERNE
"DIS_BILI_ELAS", # RESP. : FLEJOU J.L.FLEJOU
-# Spécial Discrets : fin
+ "DIS_CHOC", # RESP. : DEVESA G.DEVESA
+ "DIS_ECRO_CINE", # RESP. : FLEJOU J.L.FLEJOU
+ "DIS_GOUJ2E_ELAS", # RESP. : ANGLES J.ANGLES
+ "DIS_GOUJ2E_PLAS", # RESP. : ANGLES J.ANGLES
+ "DIS_GRICRA", # RESP. : FERNANDES R.FERNANDES
+ "DIS_VISC", # RESP. : FLEJOU J.L.FLEJOU
+ "DRUCK_PRAGER", # RESP. : FERNANDES R.FERNANDES
+ "DRUCK_PRAG_N_A", # RESP. : FERNANDES R.FERNANDES
+ "ELAS_GONF", # RESP. : GRANET S.GRANET
"ELAS_HYPER", # RESP. : ABBAS M.ABBAS
- "VMIS_ISOT_TRAC", # RESP. : PROIX J.M.PROIX
- "VISC_ISOT_TRAC", # RESP. : PROIX J.M.PROIX
- "VMIS_ISOT_LINE", # RESP. : PROIX J.M.PROIX
- "VISC_ISOT_LINE", # RESP. : MICHEL S.MICHEL
- "VMIS_ISOT_PUIS", # RESP. : PROIX J.M.PROIX
- "VMIS_ECMI_TRAC", # RESP. : PROIX J.M.PROIX
- "VMIS_ECMI_LINE", # RESP. : PROIX J.M.PROIX
- "LABORD_1D", # RESP. : VOLDOIRE F.VOLDOIRE
"ENDO_FRAGILE", # RESP. : MICHEL S.MICHEL
"ENDO_ISOT_BETON", # RESP. : MICHEL S.MICHEL
"ENDO_ORTH_BETON", # RESP. : MICHEL S.MICHEL
- "BETON_REGLE_PR", # RESP. : NECS
- "MAZARS", # RESP. : MICHEL S.MICHEL
+ "GATT_MONERIE", # RESP. : DEBONNIERES P.DEBONNIERES
+ "GLRC_DAMAGE", # RESP. : MARKOVIC D.MARKOVIC
+ "GLRC_DM", # RESP. : MARKOVIC D.MARKOVIC
+ "GRANGER_FP_INDT", # RESP. : ROSPARS C.ROSPARS
+ "GRANGER_FP", # RESP. : ROSPARS C.ROSPARS
+ "GRANGER_FP_V", # RESP. : ROSPARS C.ROSPARS
+ "GRAN_IRRA_LOG", # RESP. : FERNANDES R.FERNANDES
+ "GRILLE_CINE_LINE",# RESP. : ROSPARS C.ROSPARS
+ "GRILLE_ISOT_LINE",# RESP. : ROSPARS C.ROSPARS
+ "GRILLE_PINTO_MEN",# RESP. : ROSPARS C.ROSPARS
+ "HOEK_BROWN_EFF", # RESP. : CHAVANT C.CHAVANT
+ "HOEK_BROWN", # RESP. : CHAVANT C.CHAVANT
+ "HOEK_BROWN_TOT", # RESP. : CHAVANT C.CHAVANT
+ "HUJEUX", # RESP. : FOUCAULT A.FOUCAULT
+ "IRRAD3M", # RESP. : FLEJOU J.L.FLEJOU
"JOINT_BA", # RESP. : MICHEL S.MICHEL
- "RUPT_FRAG", # RESP. : LAVERNE J.LAVERNE
- "CZM_EXP_REG", # RESP. : LAVERNE J.LAVERNE
- "CZM_LIN_REG", # RESP. : LAVERNE J.LAVERNE
- "CZM_EXP", # RESP. : LAVERNE J.LAVERNE
- "META_P_IL", # RESP. : CANO V.CANO
+ "KIT_DDI", # RESP. : CHAVANT C.CHAVANT
+ "KIT_HHM", # RESP. : GRANET S.GRANET
+ "KIT_HH", # RESP. : GRANET S.GRANET
+ "KIT_HM", # RESP. : GRANET S.GRANET
+ "KIT_THHM", # RESP. : GRANET S.GRANET
+ "KIT_THH", # RESP. : GRANET S.GRANET
+ "KIT_THM", # RESP. : GRANET S.GRANET
+ "KIT_THV", # RESP. : GRANET S.GRANET
+ "LABORD_1D", # RESP. : VOLDOIRE F.VOLDOIRE
+ "LAIGLE", # RESP. : ELGHARIB J.ELGHARIB
+ "LEMAITRE_IRRA", # RESP. : FERNANDES R.FERNANDES
+ "LEMAITRE", # RESP. : DEBONNIERES P.DEBONNIERES
+ "LEMA_SEUIL", # RESP. : LECLERC S.LECLERC
+ "LETK", # RESP. : ELGHARIB J.ELGHARIB
+ "LMARC_IRRA", # RESP. : FERNANDES R.FERNANDES
+ "LMARC", # RESP. : None
+ "MAZARS", # RESP. : MICHEL S.MICHEL
+ "META_LEMA_ANI", # RESP. : CANO V.CANO
+ "META_P_CL_PT_RE", # RESP. : CANO V.CANO
+ "META_P_CL_PT", # RESP. : CANO V.CANO
+ "META_P_CL_RE", # RESP. : CANO V.CANO
+ "META_P_CL", # RESP. : CANO V.CANO
+ "META_P_IL_PT_RE", # RESP. : CANO V.CANO
"META_P_IL_PT", # RESP. : CANO V.CANO
"META_P_IL_RE", # RESP. : CANO V.CANO
- "META_P_IL_PT_RE", # RESP. : CANO V.CANO
- "META_V_IL", # RESP. : CANO V.CANO
- "META_V_IL_PT", # RESP. : CANO V.CANO
- "META_V_IL_RE", # RESP. : CANO V.CANO
- "META_V_IL_PT_RE", # RESP. : CANO V.CANO
- "META_P_INL", # RESP. : CANO V.CANO
+ "META_P_IL", # RESP. : CANO V.CANO
+ "META_P_INL_PT_RE",# RESP. : CANO V.CANO
"META_P_INL_PT", # RESP. : CANO V.CANO
"META_P_INL_RE", # RESP. : CANO V.CANO
- "META_P_INL_PT_RE",# RESP. : CANO V.CANO
- "META_V_INL", # RESP. : CANO V.CANO
- "META_V_INL_PT", # RESP. : CANO V.CANO
- "META_V_INL_RE", # RESP. : CANO V.CANO
- "META_V_INL_PT_RE",# RESP. : CANO V.CANO
- "META_P_CL", # RESP. : CANO V.CANO
- "META_P_CL_PT", # RESP. : CANO V.CANO
- "META_P_CL_RE", # RESP. : CANO V.CANO
- "META_P_CL_PT_RE", # RESP. : CANO V.CANO
- "META_V_CL", # RESP. : CANO V.CANO
+ "META_P_INL", # RESP. : CANO V.CANO
+ "META_V_CL_PT_RE", # RESP. : CANO V.CANO
"META_V_CL_PT", # RESP. : CANO V.CANO
"META_V_CL_RE", # RESP. : CANO V.CANO
- "META_V_CL_PT_RE", # RESP. : CANO V.CANO
- "META_LEMA_ANI", # RESP. : CANO V.CANO
- "VMIS_CINE_LINE", # RESP. : PROIX J.M.PROIX
- "VISC_TAHERI", # RESP. : TAHERI S.TAHERI
+ "META_V_CL", # RESP. : CANO V.CANO
+ "META_V_IL_PT_RE", # RESP. : CANO V.CANO
+ "META_V_IL_PT", # RESP. : CANO V.CANO
+ "META_V_IL_RE", # RESP. : CANO V.CANO
+ "META_V_IL", # RESP. : CANO V.CANO
+ "META_V_INL_PT_RE",# RESP. : CANO V.CANO
+ "META_V_INL_PT", # RESP. : CANO V.CANO
+ "META_V_INL_RE", # RESP. : CANO V.CANO
+ "META_V_INL", # RESP. : CANO V.CANO
+ "MONOCRISTAL", # RESP. : PROIX J.M.PROIX
+ "MULTIFIBRE", # RESP. : FLEJOU J.L.FLEJOU
+ "NADAI_B", # RESP. : None
+ "NORTON_HOFF", # RESP. : MICHEL S.MICHEL
+ "PINTO_MENEGOTTO", # RESP. : ROSPARS C.ROSPARS
+ "POLYCRISTAL", # RESP. : PROIX J.M.PROIX
+ "ROUSSELIER", # RESP. : CANO V.CANO
+ "ROUSS_PR", # RESP. : PARROT A.PARROT
+ "ROUSS_VISC", # RESP. : CANO V.CANO
+ "RUPT_FRAG", # RESP. : LAVERNE J.LAVERNE
+ "SANS", # RESP. : MICHEL S.MICHEL
+ "VENDOCHAB", # RESP. : PROIX J.M.PROIX
+ "VISC_CIN1_CHAB", # RESP. : PROIX J.M.PROIX
+ "VISC_CIN2_CHAB", # RESP. : PROIX J.M.PROIX
+ "VISC_CIN2_MEMO", # RESP. : PROIX J.M.PROIX
+ "VISC_IRRA_LOG", # RESP. : FERNANDES R.FERNANDES
+ "VISC_ISOT_LINE", # RESP. : MICHEL S.MICHEL
+ "VISC_ISOT_TRAC", # RESP. : PROIX J.M.PROIX
"VISCOCHAB", # RESP. : None
+ "VISC_TAHERI", # RESP. : TAHERI S.TAHERI
+ "VMIS_ASYM_LINE", # RESP. : PROIX J.M.PROIX
"VMIS_CIN1_CHAB", # RESP. : PROIX J.M.PROIX
"VMIS_CIN2_CHAB", # RESP. : PROIX J.M.PROIX
- "VISC_CIN1_CHAB", # RESP. : PROIX J.M.PROIX
- "VISC_CIN2_CHAB", # RESP. : PROIX J.M.PROIX
"VMIS_CIN2_MEMO", # RESP. : PROIX J.M.PROIX
- "VISC_CIN2_MEMO", # RESP. : PROIX J.M.PROIX
- "LMARC", # RESP. : None
- "LMARC_IRRA", # RESP. : FERNANDES R.FERNANDES
- "ROUSSELIER", # RESP. : CANO V.CANO
- "ROUSS_PR", # RESP. : PARROT A.PARROT
- "ROUSS_VISC", # RESP. : CANO V.CANO
- "VMIS_POU_LINE", # RESP. : PROIX J.M.PROIX
+ "VMIS_CINE_LINE", # RESP. : PROIX J.M.PROIX
+ "VMIS_ECMI_LINE", # RESP. : PROIX J.M.PROIX
+ "VMIS_ECMI_TRAC", # RESP. : PROIX J.M.PROIX
+ "VMIS_ISOT_LINE", # RESP. : PROIX J.M.PROIX
+ "VMIS_ISOT_PUIS", # RESP. : PROIX J.M.PROIX
+ "VMIS_ISOT_TRAC", # RESP. : PROIX J.M.PROIX
"VMIS_POU_FLEJOU", # RESP. : FLEJOU J.L.FLEJOU
- "ARME", # RESP. : PEYRARD C.PEYRARD
- "ASSE_CORN", # RESP. : PEYRARD C.PEYRARD
- "NORTON_HOFF", # RESP. : MICHEL S.MICHEL
- "LEMAITRE", # RESP. : DEBONNIERES P.DEBONNIERES
- "LEMAITRE_IRRA", # RESP. : FERNANDES R.FERNANDES
- "LEMA_SEUIL", # RESP. : LECLERC S.LECLERC
- "IRRAD3M", # RESP. : FLEJOU J.L.FLEJOU
- "VISC_IRRA_LOG", # RESP. : FERNANDES R.FERNANDES
- "GRAN_IRRA_LOG", # RESP. : FERNANDES R.FERNANDES
- "VENDOCHAB", # RESP. : None
- "NADAI_B", # RESP. : None
- "DIS_CHOC", # RESP. : DEVESA G.DEVESA
- "DIS_GRICRA", # RESP. : FERNANDES R.FERNANDES
- "DIS_GOUJ2E_PLAS", # RESP. : ANGLES J.ANGLES
- "DIS_GOUJ2E_ELAS", # RESP. : ANGLES J.ANGLES
- "GRILLE_ISOT_LINE",# RESP. : ROSPARS C.ROSPARS
- "GRILLE_CINE_LINE",# RESP. : ROSPARS C.ROSPARS
- "GRILLE_PINTO_MEN",# RESP. : ROSPARS C.ROSPARS
- "PINTO_MENEGOTTO", # RESP. : ROSPARS C.ROSPARS
- "CJS", # RESP. : CHAVANT C.CHAVANT
- "HUJEUX", # RESP. : FOUCAULT A.FOUCAULT
- "CAM_CLAY", # RESP. : ELGHARIB J.ELGHARIB
- "BARCELONE", # RESP. : ELGHARIB J.ELGHARIB
- "LAIGLE", # RESP. : ELGHARIB J.ELGHARIB
- "LETK", # RESP. : ELGHARIB J.ELGHARIB
- "DRUCK_PRAGER", # RESP. : FERNANDES R.FERNANDES
- "DRUCK_PRAG_N_A", # RESP. : FERNANDES R.FERNANDES
- "HOEK_BROWN", # RESP. : CHAVANT C.CHAVANT
- "HOEK_BROWN_EFF", # RESP. : CHAVANT C.CHAVANT
- "HOEK_BROWN_TOT", # RESP. : CHAVANT C.CHAVANT
- "GRANGER_FP", # RESP. : ROSPARS C.ROSPARS
- "GRANGER_FP_INDT", # RESP. : ROSPARS C.ROSPARS
- "GRANGER_FP_V", # RESP. : ROSPARS C.ROSPARS
- "BETON_UMLV_FP", # RESP. : LEPAPE Y.LEPAPE
- "BETON_DOUBLE_DP", # RESP. : ELGHARIB J.ELGHARIB
- "KIT_HH", # RESP. : GRANET S.GRANET
- "KIT_HM", # RESP. : GRANET S.GRANET
- "KIT_HHM", # RESP. : GRANET S.GRANET
- "KIT_THH", # RESP. : GRANET S.GRANET
- "KIT_THV", # RESP. : GRANET S.GRANET
- "KIT_THM", # RESP. : GRANET S.GRANET
- "KIT_THHM", # RESP. : GRANET S.GRANET
- "VMIS_ASYM_LINE", # RESP. : None
- "KIT_DDI", # RESP. : CHAVANT C.CHAVANT
- "GLRC_DAMAGE", # RESP. : MARKOVIC D.MARKOVIC
- "GLRC_DM", # RESP. : MARKOVIC D.MARKOVIC
- "SANS", # RESP. : None
- "CORR_ACIER", # RESP. : LEPAPE Y.LEPAPE
- "MONOCRISTAL", # RESP. : PROIX J.M.PROIX
- "POLYCRISTAL", # RESP. : PROIX J.M.PROIX
+ "VMIS_POU_LINE", # RESP. : PROIX J.M.PROIX
"ZMAT", # RESP. : PROIX J.M.PROIX
- "GATT_MONERIE", # RESP. : DEBONNIERES P.DEBONNIERES
- "MULTIFIBRE", # RESP. : FLEJOU J.L.FLEJOU
) ),
-# Spécial discrets : début
- DIS_VISC =SIMP(statut='c',typ='I',defaut=12,into=(12,)),
- DIS_ECRO_CINE =SIMP(statut='c',typ='I',defaut=18,into=(18,)),
- DIS_BILI_ELAS =SIMP(statut='c',typ='I',defaut= 6,into=( 6,)),
-# Spécial discrets : fin
- ELAS =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- ELAS_HYPER =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- SANS =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- CORR_ACIER =SIMP(statut='c',typ='I',defaut=3,into=(3,)),
- VMIS_ISOT_TRAC =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
- VISC_ISOT_TRAC =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
- VMIS_ISOT_LINE =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
- VISC_ISOT_LINE =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
- VMIS_ISOT_PUIS =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
- VMIS_ECMI_TRAC =SIMP(statut='c',typ='I',defaut=8,into=(8,)),
- VMIS_ECMI_LINE =SIMP(statut='c',typ='I',defaut=8,into=(8,)),
- LABORD_1D =SIMP(statut='c',typ='I',defaut=5,into=(5,)),
- ENDO_FRAGILE =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
- ENDO_ISOT_BETON =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
- ENDO_ORTH_BETON =SIMP(statut='c',typ='I',defaut=7,into=(7,)),
- BETON_REGLE_PR =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- MAZARS =SIMP(statut='c',typ='I',defaut=4,into=(4,)),
- JOINT_BA =SIMP(statut='c',typ='I',defaut=6,into=(6,)),
- RUPT_FRAG =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- CZM_EXP_REG =SIMP(statut='c',typ='I',defaut=9,into=(9,)),
- CZM_LIN_REG =SIMP(statut='c',typ='I',defaut=9,into=(9,)),
- CZM_EXP =SIMP(statut='c',typ='I',defaut=7,into=(7,)),
- META_P_IL =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- META_P_IL_PT =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- META_P_IL_RE =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- META_P_IL_PT_RE =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- META_V_IL =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- META_V_IL_PT =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- META_V_IL_RE =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- META_V_IL_PT_RE =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- META_P_INL =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- META_P_INL_PT =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- META_P_INL_RE =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- META_P_INL_PT_RE=SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- META_V_INL =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- META_V_INL_PT =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- META_V_INL_RE =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- META_V_INL_PT_RE=SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- META_P_CL =SIMP(statut='c',typ='I',defaut=6,into=(6,)),
- META_P_CL_PT =SIMP(statut='c',typ='I',defaut=6,into=(6,)),
- META_P_CL_RE =SIMP(statut='c',typ='I',defaut=6,into=(6,)),
- META_P_CL_PT_RE =SIMP(statut='c',typ='I',defaut=6,into=(6,)),
- META_V_CL =SIMP(statut='c',typ='I',defaut=6,into=(6,)),
- META_V_CL_PT =SIMP(statut='c',typ='I',defaut=6,into=(6,)),
- META_V_CL_RE =SIMP(statut='c',typ='I',defaut=6,into=(6,)),
- META_V_CL_PT_RE =SIMP(statut='c',typ='I',defaut=6,into=(6,)),
- META_LEMA_ANI =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
- VMIS_CINE_LINE =SIMP(statut='c',typ='I',defaut=7,into=(7,)),
- VISCOCHAB =SIMP(statut='c',typ='I',defaut=28,into=(28,)),
- VMIS_CIN1_CHAB =SIMP(statut='c',typ='I',defaut=8,into=(8,)),
- VMIS_CIN2_CHAB =SIMP(statut='c',typ='I',defaut=14,into=(14,)),
- VISC_CIN1_CHAB =SIMP(statut='c',typ='I',defaut=8,into=(8,)),
- VISC_CIN2_CHAB =SIMP(statut='c',typ='I',defaut=14,into=(14,)),
- VMIS_CIN2_MEMO =SIMP(statut='c',typ='I',defaut=28,into=(28,)),
- VISC_CIN2_MEMO =SIMP(statut='c',typ='I',defaut=28,into=(28,)),
- LMARC =SIMP(statut='c',typ='I',defaut=20,into=(20,)),
- LMARC_IRRA =SIMP(statut='c',typ='I',defaut=20,into=(20,)),
- VISC_TAHERI =SIMP(statut='c',typ='I',defaut=9,into=(9,)),
- ROUSSELIER =SIMP(statut='c',typ='I',defaut=9,into=(9,)),
- ROUSS_PR =SIMP(statut='c',typ='I',defaut=5,into=(5,)),
- ROUSS_VISC =SIMP(statut='c',typ='I',defaut=5,into=(5,)),
- VMIS_POU_LINE =SIMP(statut='c',typ='I',defaut=9,into=(9,)),
- VMIS_POU_FLEJOU =SIMP(statut='c',typ='I',defaut=9 ,into=(9,)),
- ASSE_CORN =SIMP(statut='c',typ='I',defaut=7,into=(7,)),
- ARME =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- NORTON_HOFF =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- LEMAITRE =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
- LEMA_SEUIL =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
- IRRAD3M =SIMP(statut='c',typ='I',defaut=5,into=(5,)),
- LEMAITRE_IRRA =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
- VISC_IRRA_LOG =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
- GRAN_IRRA_LOG =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
- NADAI_B =SIMP(statut='c',typ='I',defaut=34,into=(34,)),
- VENDOCHAB =SIMP(statut='c',typ='I',defaut=10,into=(10,)),
- GRILLE_ISOT_LINE=SIMP(statut='c',typ='I',defaut=4,into=(4,)),
- GRILLE_CINE_LINE=SIMP(statut='c',typ='I',defaut=4,into=(4,)),
- GRILLE_PINTO_MEN=SIMP(statut='c',typ='I',defaut=16,into=(16,)),
- DIS_CHOC =SIMP(statut='c',typ='I',defaut=7,into=(7,)),
- DIS_GRICRA =SIMP(statut='c',typ='I',defaut=5,into=(5,)),
- DIS_GOUJ2E_PLAS =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
- DIS_GOUJ2E_ELAS =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- PINTO_MENEGOTTO =SIMP(statut='c',typ='I',defaut=8,into=(8,)),
- CJS =SIMP(statut='c',typ='I',defaut=16,into=(16,)),
- HUJEUX =SIMP(statut='c',typ='I',defaut=35,into=(35,)),
- CAM_CLAY =SIMP(statut='c',typ='I',defaut=7,into=(7,)),
- BARCELONE =SIMP(statut='c',typ='I',defaut=5,into=(5,)),
- LAIGLE =SIMP(statut='c',typ='I',defaut=4,into=(4,)),
- LETK =SIMP(statut='c',typ='I',defaut=7,into=(7,)),
- DRUCK_PRAGER =SIMP(statut='c',typ='I',defaut=3,into=(3,)),
- DRUCK_PRAG_N_A =SIMP(statut='c',typ='I',defaut=3,into=(3,)),
- HOEK_BROWN =SIMP(statut='c',typ='I',defaut=3,into=(3,)),
- HOEK_BROWN_EFF =SIMP(statut='c',typ='I',defaut=3,into=(3,)),
- HOEK_BROWN_TOT =SIMP(statut='c',typ='I',defaut=3,into=(3,)),
- GRANGER_FP =SIMP(statut='c',typ='I',defaut=55,into=(55,)),
- GRANGER_FP_INDT =SIMP(statut='c',typ='I',defaut=55,into=(55,)),
- GRANGER_FP_V =SIMP(statut='c',typ='I',defaut=55,into=(55,)),
- BETON_DOUBLE_DP =SIMP(statut='c',typ='I',defaut=4,into=(4,)),
- KIT_HH =SIMP(statut='c',typ='I',defaut=0,into=(0,)),
- KIT_HM =SIMP(statut='c',typ='I',defaut=0,into=(0,)),
- KIT_HHM =SIMP(statut='c',typ='I',defaut=0,into=(0,)),
- KIT_THH =SIMP(statut='c',typ='I',defaut=0,into=(0,)),
- KIT_THV =SIMP(statut='c',typ='I',defaut=0,into=(0,)),
- KIT_THM =SIMP(statut='c',typ='I',defaut=0,into=(0,)),
- KIT_THHM =SIMP(statut='c',typ='I',defaut=0,into=(0,)),
- VMIS_ASYM_LINE =SIMP(statut='c',typ='I',defaut=4,into=(4,)),
- BETON_UMLV_FP =SIMP(statut='c',typ='I',defaut=21,into=(21,)),
- GLRC_DAMAGE =SIMP(statut='c',typ='I',defaut=19,into=(19,)),
- GLRC_DM =SIMP(statut='c',typ='I',defaut=4,into=(4,)),
- GATT_MONERIE =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
-
b_monox = BLOC(condition = "RELATION == 'MONOCRISTAL' ",
fr="SD issue de DEFI_COMPOR",
COMPOR =SIMP(statut='o',typ=compor_sdaster,max=1),),
-#
b_polyx = BLOC(condition = "RELATION == 'POLYCRISTAL' ",
- fr="SD issue de DEFI_COMPOR",
- COMPOR =SIMP(statut='o',typ=compor_sdaster,max=1),),
-#
- b_zmat = BLOC(condition = "RELATION == 'ZMAT' ",
- fr="Comportement de la bibliotheque Zmat",
- NB_VARI =SIMP(statut='o',typ='I',max=1),
- UNITE =SIMP(statut='o',typ='I',max=1),),
-
-
-
- RELATION_KIT =SIMP(statut='f',typ='TXM',max='**',validators=NoRepeat(),
- into=(
-# MECA
- "ELAS",
- "CJS",
- "HUJEUX",
- "CAM_CLAY",
- "BARCELONE",
- "LAIGLE",
- "LETK",
- "DRUCK_PRAGER",
- "DRUCK_PRAG_N_A",
- "HOEK_BROWN_EFF",
- "HOEK_BROWN_TOT",
- "MAZARS",
- "ENDO_ISOT_BETON",
-# THMC
- "GAZ",
- "LIQU_SATU",
- "LIQU_GAZ_ATM",
- "LIQU_VAPE_GAZ",
- "LIQU_AD_GAZ_VAPE",
- "LIQU_VAPE",
- "LIQU_GAZ",
-# HYDR
- "HYDR_UTIL",
- "HYDR_VGM",
- "HYDR",
- "HYDR_ENDO",
-# MECA_META
- "ACIER",
- "ZIRC",
-# MECA KIT_DDI
- "VMIS_CINE_LINE",
- "VMIS_ISOT_TRAC",
- "VMIS_ISOT_LINE",
- "VMIS_ISOT_CINE",
- "VMIS_ISOT_PUIS",
- "GLRC_DM",
- "GRANGER_FP",
- "GRANGER_FP_INDT",
- "GRANGER_FP_V",
- "BETON_UMLV_FP",
- "ROUSS_PR",
- "NADAI_B",
- "BETON_DOUBLE_DP",
- ),),
-
-
- GAZ =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- LIQU_SATU =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- LIQU_GAZ_ATM =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
- LIQU_VAPE_GAZ =SIMP(statut='c',typ='I',defaut=3,into=(3,)),
- LIQU_AD_GAZ_VAPE=SIMP(statut='c',typ='I',defaut=3,into=(3,)),
- LIQU_VAPE =SIMP(statut='c',typ='I',defaut=3,into=(3,)),
- LIQU_GAZ =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
- HYDR_UTIL =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- HYDR_VGM =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- HYDR =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- HYDR_ENDO =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- ACIER =SIMP(statut='c',typ='I',defaut=5,into=(5,)),
- ZIRC =SIMP(statut='c',typ='I',defaut=3,into=(3,)),
-
- DEFORMATION =SIMP(statut='f',typ='TXM',defaut="PETIT",
- into=("PETIT","PETIT_REAC","SIMO_MIEHE","GREEN_GR","GREEN","COROTATIONNEL",
- "REAC_GEOM","EULER_ALMANSI")),
- ALGO_C_PLAN =SIMP(statut='f',typ='TXM',defaut="ANALYTIQUE",into=("DEBORST","ANALYTIQUE",)),
-# b_deborst = BLOC(condition = " ALGO_C_PLAN == 'DEBORST' ",
-# fr="Tolérance relative sur la verification des contraintes planes",
- RESI_DEBORST =SIMP(statut='f',typ='R',defaut= 1.0E-6),
-# ),
- ALGO_1D =SIMP(statut='f',typ='TXM',defaut="ANALYTIQUE",into=("DEBORST","ANALYTIQUE",)),
-# b_dbiter = BLOC(condition = " (ALGO_C_PLAN == 'DEBORST') or (ALGO_1D == 'DEBORST')",
-# fr="Nombre d'iterations maximal pour la boucle pour les contraintes planes",
- ITER_MAXI_DEBORST =SIMP(statut='f',typ='I',defaut= 1),
-# ),
- regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),),
- TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
- MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'),
- RESI_INTE_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-6),
- ITER_INTE_MAXI =SIMP(statut='f',typ='I',defaut= 10 ),
- ITER_INTE_PAS =SIMP(statut='f',typ='I',defaut= 0 ),
- RESO_INTE =SIMP(statut='f',typ='TXM',defaut="IMPLICITE",
- into=("RUNGE_KUTTA_2","RUNGE_KUTTA_4","IMPLICITE")),
- TYPE_MATR_TANG =SIMP(statut='f',typ='TXM',into=("PERTURBATION","VERIFICATION","TANGENTE_SECANTE")),
- b_perturb = BLOC(condition = " (TYPE_MATR_TANG != None) and (TYPE_MATR_TANG != 'TANGENTE_SECANTE') ",
- fr="Calcul de la matrice tangente par perturbation, valeur de la perturbation",
- VALE_PERT_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-5),
- ),
- b_tangsec = BLOC(condition = " TYPE_MATR_TANG == 'TANGENTE_SECANTE' ",
- fr="Modification evolutive de la matrice tangente/secante",
- SEUIL =SIMP(statut='f',typ='R',defaut= 3. ),
- AMPLITUDE =SIMP(statut='f',typ='R',defaut= 1.5 ),
- TAUX_RETOUR =SIMP(statut='f',typ='R',defaut= 0.05 ),
- ),
- PARM_THETA =SIMP(statut='f',typ='R',defaut= 1. ),
- ) ;
-#& MODIF COMMUN DATE 06/05/2008 AUTEUR CNGUYEN C.NGUYEN
-# CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2008 EDF R&D WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
-# (AT YOUR OPTION) ANY LATER VERSION.
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
-# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
-# ======================================================================
-
-def C_CONTACT() : return FACT(statut='f',max='**',
- fr="Définit les zones soumises à des conditions de contact unilatéral avec ou sans frottement",
-
-
- METHODE =SIMP(statut='f',typ='TXM',defaut="CONTRAINTE",
- into =("VERIF","CONTRAINTE","LAGRANGIEN","PENALISATION","CONTINUE","GCP","XFEM") ),
-#
-# OPTIONS D'APPARIEMENT
-#
-
- APPARIEMENT =SIMP(statut='f',typ='TXM',defaut="MAIT_ESCL",
- into =("NODAL","MAIT_ESCL")),
-
- LISSAGE =SIMP(statut='f',typ='TXM',defaut="NON",
- into =("OUI","NON")),
-
- NORMALE =SIMP(statut='f',typ='TXM',defaut="MAIT",
- into =("MAIT","MAIT_ESCL","ESCL"),),
-
- VECT_MAIT =SIMP(statut='f',typ='TXM',defaut="AUTO",
- into =("AUTO","FIXE","VECT_Y")),
-
- b_nmait_fixe =BLOC(condition = "VECT_MAIT == 'FIXE'",
- MAIT_FIXE =SIMP(statut='f',typ='R',min=3,max=3),
- ),
-
- b_nmait_vecty =BLOC(condition = "VECT_MAIT == 'VECT_Y'",
- MAIT_VECT_Y =SIMP(statut='f',typ='R',min=3,max=3),
- ),
-
- VECT_ESCL =SIMP(statut='f',typ='TXM',defaut="AUTO",
- into =("AUTO","FIXE","VECT_Y")),
-
- b_nescl_fixe =BLOC(condition = "VECT_ESCL == 'FIXE'",
- ESCL_FIXE =SIMP(statut='f',typ='R',min=3,max=3),
- ),
-
- b_nescl_vecty =BLOC(condition = "VECT_ESCL == 'VECT_Y'",
- ESCL_VECT_Y =SIMP(statut='f',typ='R',min=3,max=3),
- ),
-
-
- TYPE_APPA =SIMP(statut='f',typ='TXM',defaut="PROCHE",
- into =("PROCHE","FIXE")),
-
- b_appa_fixe =BLOC(condition = "TYPE_APPA == 'FIXE'",
- DIRE_APPA =SIMP(statut='f',typ='R',min=3,max=3),
- ),
-
- b_dist_struct =BLOC(condition = "METHODE != 'CONTINUE' and METHODE != 'XFEM' ",
- DIST_POUTRE =SIMP(statut='f',typ='TXM',defaut="NON", into=("OUI","NON")),
- DIST_COQUE =SIMP(statut='f',typ='TXM',defaut="NON", into=("OUI","NON")),
- b_cara =BLOC(condition = "DIST_POUTRE == 'OUI' or DIST_COQUE == 'OUI'",
- CARA_ELEM =SIMP(statut='o',typ=(cara_elem) ),
- ),
- ),
-
- DIST_MAIT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
- DIST_ESCL =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-
-
- TOLE_APPA =SIMP(statut='f',typ='R' ,defaut=-1.0),
- TOLE_PROJ_EXT =SIMP(statut='f',typ='R' ,defaut=0.50),
-
-
- b_xfem =BLOC(condition = "METHODE == 'XFEM' ",
- FISS_MAIT = SIMP(statut='o',typ=fiss_xfem,max=1),
- FISS_ESCL = SIMP(statut='f',typ=fiss_xfem,max=1),
- SIGN_MAIT = SIMP(statut='f',typ='TXM',into=("+","-",) ),
- SIGN_ESCL = SIMP(statut='f',typ='TXM',into=("+","-",) ),
- INTEGRATION = SIMP(statut='f',typ='TXM',defaut="FPG4",into=("GAUSS","FPG2","FPG3","FPG4","FPG6","FPG7","NOEUD",) ),
- COEF_REGU_CONT = SIMP(statut='f',typ='R',defaut=100.E+0),
- ITER_CONT_MAXI = SIMP(statut='f',typ='I',defaut=30),
- ITER_GEOM_MAXI =SIMP(statut='f',typ='I',defaut=0),
-
- CONTACT_INIT = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ),
- ALGO_LAGR = SIMP(statut='f',typ='TXM',defaut="VERSION1",into=("NON","VERSION1","VERSION2" , ) ),
- COEF_ECHELLE = SIMP(statut='f',typ='R',defaut=1.E+6),
- FROTTEMENT = SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","COULOMB",) ),
- GLISSIERE = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
- b_frotxfem =BLOC(condition = "FROTTEMENT == 'COULOMB' ",fr="Paramètres du frottement de Coulomb",
- COULOMB = SIMP(statut='o',typ='R',),
- ITER_FROT_MAXI = SIMP(statut='f',typ='I',defaut=2),
- COEF_REGU_FROT = SIMP(statut='f',typ='R',defaut=100.E+0),
- SEUIL_INIT = SIMP(statut='f',typ='R',defaut=0.E+0),
- ),
- ),
-
- b_notxfem =BLOC(condition = "METHODE != 'XFEM' ",
- regles=(UN_PARMI('GROUP_MA_ESCL','MAILLE_ESCL'),),
- GROUP_MA_MAIT =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max='**'),
- MAILLE_MAIT =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'),
- GROUP_MA_ESCL =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max='**'),
- MAILLE_ESCL =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'),
- ),
-
-
-
- b_verif =BLOC(condition = "METHODE == 'VERIF' ",
- fr="Paramètres de la méthode sans calcul de contact",
- STOP_INTERP =SIMP(statut='f',typ='TXM',defaut="NON",
- into=("OUI","NON")),
- TOLE_INTERP =SIMP(statut='f',typ='R',defaut = 0.),
-
- GROUP_MA_FOND =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
- ),
-
- b_active =BLOC(condition = "METHODE == 'CONTRAINTE' ",
- fr="Paramètres de la méthode des contraintes actives (contact uniquement)",
- GLISSIERE =SIMP(statut='f',typ='TXM',defaut="NON",
- into=("OUI","NON")),
- b_glissiere =BLOC(condition = "GLISSIERE == 'OUI' ",
- ALARME_JEU =SIMP(statut='f',typ='R',defaut=0.),
- ),
-
- STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",
- into=("OUI","NON")),
- NB_RESOL =SIMP(statut='f',typ='I', defaut=10 ),
- REAC_GEOM =SIMP(statut='f',typ='TXM',defaut="AUTOMATIQUE",
- into=("AUTOMATIQUE","CONTROLE","SANS")),
-
- b_reac_geom =BLOC(condition = "REAC_GEOM == 'CONTROLE' ",
- fr="Paramètre de la réactualisation géométrique",
- NB_REAC_GEOM =SIMP(statut='o',typ='I'),
- ),
-
- SANS_NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'),
- SANS_GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
- SANS_NOEUD_QUAD =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
-
- ),
- b_lagrangien =BLOC(condition = "METHODE == 'LAGRANGIEN' ",
- fr="Paramètres de la méthode Lagrangienne (contact avec ou sans frottement)",
- FROTTEMENT =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","COULOMB",) ),
- STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",
- into=("OUI","NON")),
- NB_RESOL =SIMP(statut='f',typ='I', defaut=10 ),
- ITER_MULT_MAXI =SIMP(statut='f',typ='I' ,defaut=4),
-
- REAC_GEOM =SIMP(statut='f',typ='TXM',defaut="AUTOMATIQUE",
- into=("AUTOMATIQUE","CONTROLE","SANS")),
-
- b_reac_geom =BLOC(condition = "REAC_GEOM == 'CONTROLE' ",fr="Paramètre de la réactualisation géométrique",
- NB_REAC_GEOM =SIMP(statut='o',typ='I'),
-
- ),
-
-
- SANS_NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'),
- SANS_GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
- SANS_NOEUD_QUAD =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
-
- b_frottement =BLOC(condition = "FROTTEMENT == 'COULOMB' ",fr="Paramètres du frottement de Coulomb",
- COULOMB =SIMP(statut='o',typ='R',),
- COEF_MATR_FROT =SIMP(statut='f',typ='R',defaut=0.E+0),
- ),),
-
- b_penalisation =BLOC(condition = "METHODE == 'PENALISATION' ",
- fr="Paramètres de la méthode pénalisée (contact avec ou sans frottement)",
- E_N =SIMP(statut='f',typ='R'),
- FROTTEMENT =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","COULOMB",) ),
- STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",
- into=("OUI","NON")),
- NB_RESOL =SIMP(statut='f',typ='I', defaut=10 ),
- ITER_MULT_MAXI =SIMP(statut='f',typ='I',defaut=4),
-
- REAC_GEOM =SIMP(statut='f',typ='TXM',defaut="AUTOMATIQUE",
- into=("AUTOMATIQUE","CONTROLE","SANS")),
-
- b_reac_geom =BLOC(condition = "REAC_GEOM == 'CONTROLE' ",fr="Paramètre de la réactualisation géométrique",
- NB_REAC_GEOM =SIMP(statut='o',typ='I'),
- ),
-
- SANS_NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'),
- SANS_GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
- SANS_NOEUD_QUAD =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
-
-
-
- b_frottement =BLOC(condition = "FROTTEMENT == 'COULOMB' ",fr="Paramètres du frottement de Coulomb",
- COULOMB =SIMP(statut='o',typ='R',),
- E_T =SIMP(statut='f',typ='R',
- fr="Active la pénalisation sur le frottement et définit le coefficient de pénalisation"),
- COEF_MATR_FROT =SIMP(statut='f',typ='R',defaut=0.E+0),
- ),),
-
- b_continue =BLOC(condition = "METHODE == 'CONTINUE' ",
- fr="Paramètres de la méthode continue (contact avec ou sans frottement)",
-# regles=(UN_PARMI('GLISSIERE','FROTTEMENT'),),
-
-# -------------------------------- CHOIX DE LA FORMULATION DE LA METHODE CONTINUE
- ALGO_CONT =SIMP(statut='f',typ='TXM',defaut="LAGRANGIEN",into=("LAGRANGIEN","AUGMENTE","STABILISE"),),
- b_CONT_LAGR =BLOC(condition = "ALGO_CONT == 'LAGRANGIEN' ",fr="Parametres de la formulation Lagrangienne",
- COEF_REGU_CONT =SIMP(statut='f',typ='R',defaut=100.E+0),),
- b_CONT_STAB =BLOC(condition = "ALGO_CONT == 'STABILISE' ",fr="Parametres du Lagrangien stabilisé",
- COEF_REGU_CONT =SIMP(statut='f',typ='R',defaut=100.E+0),
- COEF_STAB_CONT =SIMP(statut='f',typ='R',defaut=100.E+0),),
- b_CONT_AUGM =BLOC(condition = "ALGO_CONT == 'AUGMENTE' ",fr="Parametres du Lagrangien augmenté",
- COEF_REGU_CONT =SIMP(statut='f',typ='R',defaut=100.E+0),
- COEF_STAB_CONT =SIMP(statut='f',typ='R',defaut=100.E+0),
- COEF_PENA_CONT =SIMP(statut='f',typ='R',defaut=100.E+0),),
-# --------------------------------
- GLISSIERE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"),),
- b_glissiere =BLOC(condition = "GLISSIERE == 'OUI' ",
- ALARME_JEU =SIMP(statut='f',typ='R',defaut=0.),),
-# --------------------------------
- COMPLIANCE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ),
- b_compliance =BLOC(condition = "COMPLIANCE == 'OUI' ",fr="Parametres de la compliance",
- ASPERITE =SIMP(statut='o',typ='R',),
- E_N =SIMP(statut='o',typ='R',),
- E_V =SIMP(statut='f',typ='R',defaut=0.E+0),),
-# --------------------------------
- FOND_FISSURE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ),
- b_FOND_FISSURE =BLOC(condition = "FOND_FISSURE == 'OUI' ",fr="TRAITEMENT EN FOND DE FISSURE",
- regles=(UN_PARMI('NOEUD_FOND','GROUP_NO_FOND','MAILLE_FOND','GROUP_MA_FOND'),),
- NOEUD_FOND =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'),
- GROUP_NO_FOND =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
- MAILLE_FOND =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'),
- GROUP_MA_FOND =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),),
-# --------------------------------
- RACCORD_LINE_QUAD=SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ),
- b_RACCORD_SURF =BLOC(condition = "RACCORD_LINE_QUAD == 'OUI' ",fr="TRAITEMENT DU RACCORD SURFACIQUE",
- regles=(UN_PARMI('NOEUD_RACC','GROUP_NO_RACC'),),
- NOEUD_RACC =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'),
- GROUP_NO_RACC =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),),
-# -------------------------------- MOTS-CLEF CONTACT
- INTEGRATION =SIMP(statut='f',typ='TXM',defaut="NOEUD",
- into=("GAUSS","NOEUD","SIMPSON","SIMPSON1","SIMPSON2",
- "NCOTES","NCOTES1","NCOTES2"),),
- FORMULATION =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL","VITE"),),
-
- ITER_GEOM_MAXI =SIMP(statut='f',typ='I',defaut=2),
- ITER_CONT_MAXI =SIMP(statut='f',typ='I',defaut=30),
- CONTACT_INIT =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",),),
-# -------------------------------- détection automatique et exclusion des noeuds impliqués dans le pivot nul
- EXCLUSION_PIV_NUL=SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",),),
-# -------------------------------- exclusion manuelle des noeuds impliqués dans le pivot nul;
-# prévaut sur la fonctionnalité précédente sans pour autant interférer avec elle
- SANS_NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'),
- SANS_GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
- regles =(EXCLUS('SANS_NOEUD','SANS_GROUP_NO'),),
-# -------------------------------- MOTS-CLEF FROTTEMENT
- FROTTEMENT =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","COULOMB",) ),
- b_frottement =BLOC(condition = "FROTTEMENT == 'COULOMB' ",fr="Paramètres du frottement de Coulomb",
- ALGO_FROT =SIMP(statut='f',typ='TXM',defaut="LAGRANGIEN",
- into=("LAGRANGIEN","AUGMENTE","STABILISE") ),
- b_FROT_LAGR =BLOC(condition = "ALGO_FROT == 'LAGRANGIEN' ",fr="Parametres de la formulation Lagrangienne",
- COEF_REGU_FROT =SIMP(statut='f',typ='R',defaut=100.E+0),),
- b_FROT_STAB =BLOC(condition = "ALGO_FROT == 'STABILISE' ",fr="Parametres du Lagrangien stabilisé",
- COEF_REGU_FROT =SIMP(statut='f',typ='R',defaut=100.E+0),
- COEF_STAB_FROT =SIMP(statut='f',typ='R',defaut=100.E+0),),
- b_FROT_AUGM =BLOC(condition = "ALGO_FROT == 'AUGMENTE' ",fr="Parametres du Lagrangien augmenté",
- COEF_REGU_FROT =SIMP(statut='f',typ='R',defaut=100.E+0),
- COEF_STAB_FROT =SIMP(statut='f',typ='R',defaut=100.E+0),
- COEF_PENA_FROT =SIMP(statut='f',typ='R',defaut=100.E+0),),
- COULOMB =SIMP(statut='o',typ='R',),
- SANS_NOEUD_FR =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'),
- SANS_GROUP_NO_FR =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
- regles =(EXCLUS('SANS_NOEUD_FR','SANS_GROUP_NO_FR'),),
- b_sans_group_no_frot =BLOC(condition = "SANS_GROUP_NO_FR != None or SANS_NO_FR != None",
- fr="Direction(s) de frottement à exclure",
- EXCL_FROT_1 =SIMP(statut='f',typ='R',min=3,max=3),
- EXCL_FROT_2 =SIMP(statut='f',typ='R',min=3,max=3),),
- ITER_FROT_MAXI =SIMP(statut='f',typ='I',defaut=2),
- SEUIL_INIT =SIMP(statut='f',typ='R',defaut=0.E+0),
- USURE =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","ARCHARD",),),
- b_usure =BLOC(condition = "USURE == 'ARCHARD' ",fr="Parametres de la loi d'usure d'Archard",
- K =SIMP(statut='o',typ='R',),
- H =SIMP(statut='o',typ='R',),),),),
-
- b_gcp =BLOC(condition = "METHODE == 'GCP' ",
- fr="Paramètres de la méthode du gradient conjugué projeté (contact uniquement)",
- RESI_ABSO =SIMP(statut='o',typ='R',
- fr="Critère de convergence (niveau d'interpénétration autorisé)"),
- REAC_ITER =SIMP(statut='f',typ='I',defaut=3, fr="Fréquence de réinitialisation de la conjugaison"),
- ITER_GCP_MAXI =SIMP(statut='f',typ='I',defaut=0, fr="Nombre d'itérations maximal pour le GCP"),
- STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",
- into=("OUI","NON")),
- REAC_GEOM =SIMP(statut='f',typ='TXM',defaut="AUTOMATIQUE",
- into=("AUTOMATIQUE","CONTROLE","SANS")),
-
- b_reac_geom =BLOC(condition = "REAC_GEOM == 'CONTROLE' ",fr="Paramètre de la réactualisation géométrique",
- NB_REAC_GEOM =SIMP(statut='o',typ='I'),
+ fr="SD issue de DEFI_COMPOR",
+ COMPOR =SIMP(statut='o',typ=compor_sdaster,max=1),),
+ b_zmat = BLOC(condition = "RELATION == 'ZMAT' ",
+ fr="Comportement de la bibliotheque Zmat",
+ NB_VARI =SIMP(statut='o',typ='I',max=1),
+ UNITE =SIMP(statut='o',typ='I',max=1),),
+# KITs
+ b_kit_ddi = BLOC(condition = "RELATION == 'KIT_DDI' ",
+ fr="relations de couplage fluage-plasticite",
+ RELATION_KIT =SIMP(statut='o',typ='TXM',min=2,max=2,validators=NoRepeat(),
+ into=(
+ "VMIS_CINE_LINE",
+ "VMIS_ISOT_TRAC",
+ "VMIS_ISOT_LINE",
+ "VMIS_ISOT_CINE",
+ "VMIS_ISOT_PUIS",
+ "GLRC_DM",
+ "GRANGER_FP",
+ "GRANGER_FP_INDT",
+ "GRANGER_FP_V",
+ "BETON_UMLV_FP",
+ "ROUSS_PR",
+ "NADAI_B",
+ "BETON_DOUBLE_DP",
+ "ENDO_ISOT_BETON",
+ "MAZARS"
+ ),),
+ ),
+ b_kit_thm = BLOC(condition = "RELATION in ['KIT_HHM','KIT_HH','KIT_HM','KIT_THHM','KIT_THH','KIT_THM','KIT_THV']",
+ fr="lois de comportements thermo-hydro-mecaniques",
+ RELATION_KIT =SIMP(statut='o',typ='TXM',max=9,validators=NoRepeat(),
+ into=(
+# MECA
+ "ELAS",
+ "CJS",
+ "HUJEUX",
+ "CAM_CLAY",
+ "BARCELONE",
+ "LAIGLE",
+ "LETK",
+ "DRUCK_PRAGER",
+ "DRUCK_PRAG_N_A",
+ "ELAS_GONF",
+ "HOEK_BROWN_EFF",
+ "HOEK_BROWN_TOT",
+ "MAZARS",
+ "ENDO_ISOT_BETON",
+# THMC
+ "GAZ",
+ "LIQU_SATU",
+ "LIQU_GAZ_ATM",
+ "LIQU_VAPE_GAZ",
+ "LIQU_AD_GAZ_VAPE",
+ "LIQU_VAPE",
+ "LIQU_GAZ",
+# HYDR
+ "HYDR_UTIL",
+ "HYDR_VGM",
+ "HYDR",
+ "HYDR_ENDO",
+ ),),
+ ),
+ b_kit_meta = BLOC(condition = "RELATION in ('META_LEMA_ANI','META_P_CL_PT_RE','META_P_CL_PT','META_P_CL_RE','META_P_CL',\
+ 'META_P_IL_PT_RE','META_P_IL_PT','META_P_IL_RE','META_P_IL','META_P_INL_PT_RE','META_P_INL_PT','META_P_INL_RE','META_P_INL',\
+ 'META_V_CL_PT_RE','META_V_CL_PT','META_V_CL_RE','META_V_CL','META_V_IL_PT_RE','META_V_IL_PT','META_V_IL_RE','META_V_IL',\
+ 'META_V_INL_PT_RE','META_V_INL_PT','META_V_INL_RE','META_V_INL')",
+ fr="nombre de phases metallurgiques",
+ RELATION_KIT =SIMP(statut='o',typ='TXM',max=1,validators=NoRepeat(),
+ into=("ACIER","ZIRC"),),
),
- PRE_COND =SIMP(statut='f',typ='TXM',defaut="SANS",
- into=("DIRICHLET","SANS"),fr="Choix d'un préconditionneur (accélère la convergence)"),
- ITER_PRE_MAXI =SIMP(statut='f',typ='I',defaut=0, fr="Nombre d'itérations maximal pour le préconditionneur"),
- COEF_RESI =SIMP(statut='f',typ='R',defaut = 1.,
- fr="Critère_Convergence_Préconditionneur = COEF_RESI*Critère_Convergence_GCP",),
- RECH_LINEAIRE=SIMP(statut='f',typ='TXM',defaut="ADMISSIBLE",into=("ADMISSIBLE","NON_ADMISSIBLE"),
- fr="Autorise-t-on de sortir du domaine admissible lors de la recherche linéaire",),
- SANS_NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'),
- SANS_GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
- SANS_NOEUD_QUAD =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
- ),
- );
+ DEFORMATION =SIMP(statut='f',typ='TXM',defaut="PETIT",
+ into=("PETIT","PETIT_REAC","SIMO_MIEHE","GREEN_GR","GREEN","COROTATIONNEL",
+ "REAC_GEOM","EULER_ALMANSI")),
+
+ ALGO_C_PLAN =SIMP(statut='f',typ='TXM',defaut="ANALYTIQUE",into=("DEBORST","ANALYTIQUE",)),
+ RESI_DEBORST =SIMP(statut='f',typ='R',defaut= 1.0E-6),
+ ALGO_1D =SIMP(statut='f',typ='TXM',defaut="ANALYTIQUE",into=("DEBORST","ANALYTIQUE",)),
+ ITER_MAXI_DEBORST =SIMP(statut='f',typ='I',defaut= 1),
+
+ RESI_INTE_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-6),
+ ITER_INTE_MAXI =SIMP(statut='f',typ='I',defaut= 10 ),
+ b_redec_local = BLOC(condition = "DEFORMATION in ('PETIT','PETIT_REAC','GREEN')",
+ fr="Nombre de redécoupages internes du pas de temps",
+ ITER_INTE_PAS =SIMP(statut='f',typ='I',defaut= 0 ),
+ ),
+ RESO_INTE =SIMP(statut='f',typ='TXM',defaut="IMPLICITE",
+ into=("RUNGE_KUTTA_2","RUNGE_KUTTA_4","IMPLICITE")),
+ TYPE_MATR_TANG =SIMP(statut='f',typ='TXM',into=("PERTURBATION","VERIFICATION","TANGENTE_SECANTE")),
+ b_perturb = BLOC(condition = " (TYPE_MATR_TANG != None) and (TYPE_MATR_TANG != 'TANGENTE_SECANTE') ",
+ fr="Calcul de la matrice tangente par perturbation, valeur de la perturbation",
+ VALE_PERT_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-5),
+ ),
+ b_tangsec = BLOC(condition = " TYPE_MATR_TANG == 'TANGENTE_SECANTE' ",
+ fr="Modification evolutive de la matrice tangente/secante",
+ SEUIL =SIMP(statut='f',typ='R',defaut= 3. ),
+ AMPLITUDE =SIMP(statut='f',typ='R',defaut= 1.5 ),
+ TAUX_RETOUR =SIMP(statut='f',typ='R',defaut= 0.05 ),
+ ),
+ PARM_THETA =SIMP(statut='f',typ='R',defaut= 1. ),
+ regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),),
+ TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
+ GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
+ MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'),
-#& MODIF COMMUN DATE 22/04/2008 AUTEUR ABBAS M.ABBAS
+ ) ;
+#& MODIF COMMUN DATE 21/10/2008 AUTEUR DESOZA T.DESOZA
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2008 EDF R&D WWW.CODE-ASTER.ORG
# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
# ======================================================================
-
-def C_CONTACT_F() : return FACT(statut='f',max='**',
+# RESPONSABLE DESOZA T.DESOZA
+def C_CONTACT() : return FACT(statut='f',max='**',
fr="Définit les zones soumises à des conditions de contact unilatéral avec ou sans frottement",
b_appa_fixe =BLOC(condition = "TYPE_APPA == 'FIXE'",
DIRE_APPA =SIMP(statut='f',typ='R',min=3,max=3),
),
-
- DIST_POUTRE =SIMP(statut='f',typ='TXM',defaut="NON", into=("OUI","NON")),
- DIST_COQUE =SIMP(statut='f',typ='TXM',defaut="NON", into=("OUI","NON")),
+
+ b_dist_struct =BLOC(condition = "METHODE != 'CONTINUE' and METHODE != 'XFEM' ",
+ DIST_POUTRE =SIMP(statut='f',typ='TXM',defaut="NON", into=("OUI","NON")),
+ DIST_COQUE =SIMP(statut='f',typ='TXM',defaut="NON", into=("OUI","NON")),
+ b_cara =BLOC(condition = "DIST_POUTRE == 'OUI' or DIST_COQUE == 'OUI'",
+ CARA_ELEM =SIMP(statut='o',typ=(cara_elem) ),
+ ),
+ ),
+
DIST_MAIT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
- DIST_ESCL =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
+ DIST_ESCL =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
- b_cara =BLOC(condition = "DIST_POUTRE == 'OUI' or DIST_COQUE == 'OUI'",
- CARA_ELEM =SIMP(statut='o',typ=(cara_elem) ),
- ),
- TOLE_APPA =SIMP(statut='f',typ='R' ,defaut=-1.0),
+ TOLE_APPA =SIMP(statut='f',typ='R' ,defaut=-1.0),
TOLE_PROJ_EXT =SIMP(statut='f',typ='R' ,defaut=0.50),
FISS_ESCL = SIMP(statut='f',typ=fiss_xfem,max=1),
SIGN_MAIT = SIMP(statut='f',typ='TXM',into=("+","-",) ),
SIGN_ESCL = SIMP(statut='f',typ='TXM',into=("+","-",) ),
- INTEGRATION = SIMP(statut='f',typ='TXM',defaut="FPG4",into=("GAUSS","FPG4","FPG6","FPG7",) ),
+ INTEGRATION = SIMP(statut='f',typ='TXM',defaut="FPG4",into=("GAUSS","FPG2","FPG3","FPG4","FPG6",
+ "FPG7","NOEUD","SIMPSON","SIMPSON1","NCOTES","NCOTES1","NCOTES2") ),
COEF_REGU_CONT = SIMP(statut='f',typ='R',defaut=100.E+0),
ITER_CONT_MAXI = SIMP(statut='f',typ='I',defaut=30),
ITER_GEOM_MAXI =SIMP(statut='f',typ='I',defaut=0),
SANS_NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'),
SANS_GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
- SANS_NOEUD_QUAD =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
),
b_lagrangien =BLOC(condition = "METHODE == 'LAGRANGIEN' ",
SANS_NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'),
SANS_GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
- SANS_NOEUD_QUAD =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
b_frottement =BLOC(condition = "FROTTEMENT == 'COULOMB' ",fr="Paramètres du frottement de Coulomb",
COULOMB =SIMP(statut='o',typ='R',),
SANS_NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'),
SANS_GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
- SANS_NOEUD_QUAD =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
fr="Autorise-t-on de sortir du domaine admissible lors de la recherche linéaire",),
SANS_NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'),
SANS_GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
- SANS_NOEUD_QUAD =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
),
);
-#& MODIF COMMUN DATE 26/06/2007 AUTEUR REZETTE C.REZETTE
+#& MODIF COMMUN DATE 14/10/2008 AUTEUR DELMAS J.DELMAS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2003 EDF R&D WWW.CODE-ASTER.ORG
"SIEF_ELNO_ELGA",
"SIEF_NOEU",
"SIEF_NOEU_ELGA",
+ "SIEF_SENO_SEGA",
"SIEQ_ELNO_TUYO",
"SIGM_ELNO_CART",
"SIGM_ELNO_COQU",
l.append(typ+"_"+gd)
return tuple(l)
-#& MODIF COMMANDE DATE 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE
+#& MODIF COMMANDE DATE 23/10/2008 AUTEUR TORKHANI M.TORKHANI
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
DISCRET =FACT(statut='f',max='**',
REPERE =SIMP(statut='f',typ='TXM',into=("LOCAL","GLOBAL") ),
AMOR_HYST =SIMP(statut='f',typ='R' ),
+ SYME =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
CARA =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=1,
fr="Affectation de matrices de rigidité, de masse ou d'amortissement à des mailles ou noeuds",
into=("K_T_D_N","K_T_D_L","K_TR_D_N","K_TR_D_L",
"M_T_D_N","M_TR_D_N","M_T_N",
"M_T_L", "M_TR_N", "M_TR_L",
"A_T_D_N","A_TR_D_N","A_T_D_L","A_TR_D_L",
- "A_T_N", "A_T_L", "A_TR_N", "A_TR_L") ),
+ "A_T_N", "A_T_L", "A_TR_N", "A_TR_L",
+ "K_T_N_NS", "K_T_L_NS", "K_TR_N_NS", "K_TR_L_NS",
+ "M_T_N_NS",
+ "M_T_L_NS", "M_TR_N_NS", "M_TR_L_NS",
+ "A_T_N_NS", "A_T_L_NS", "A_TR_N_NS", "A_TR_L_NS") ),
# affection des caractéristiques de RIGIDITE/AMORTISSEMENT
b_K_T_D_N =BLOC(condition = "(CARA=='K_T_D_N')or(CARA=='A_T_D_N')",
GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
VALE =SIMP(statut='f',typ='R',min=78,max=78),
VALE_F =SIMP(statut='f',typ=(para_sensi,),min=78 ,max=78 ),),
+ b_K_T_N_NS =BLOC(condition = "(CARA=='K_T_N_NS')or(CARA=='A_T_N_NS')",
+ regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),
+ AU_MOINS_UN('VALE','VALE_F',),PRESENT_ABSENT('VALE','VALE_F',),),
+ NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'),
+ MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
+ GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
+ VALE =SIMP(statut='f',typ='R',min=9 ,max=9 ),
+ VALE_F =SIMP(statut='f',typ=(para_sensi,),min=9 ,max=9 ),),
+ b_K_T_L_NS =BLOC(condition = "(CARA=='K_T_L_NS')or(CARA=='A_T_L_NS')",
+ regles=(UN_PARMI('MAILLE','GROUP_MA'),
+ AU_MOINS_UN('VALE','VALE_F',),PRESENT_ABSENT('VALE','VALE_F',),),
+ MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
+ VALE =SIMP(statut='f',typ='R',min=36,max=36),
+ VALE_F =SIMP(statut='f',typ=(para_sensi,),min=36 ,max=36 ),),
+ b_K_TR_N_NS =BLOC(condition = "(CARA=='K_TR_N_NS')or(CARA=='A_TR_N_NS')",
+ regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),
+ AU_MOINS_UN('VALE','VALE_F',),PRESENT_ABSENT('VALE','VALE_F',),),
+ NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'),
+ MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
+ GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
+ VALE =SIMP(statut='f',typ='R',min=36,max=36),
+ VALE_F =SIMP(statut='f',typ=(para_sensi,),min=36 ,max=36 ),),
+ b_K_TR_L_NS =BLOC(condition = "(CARA=='K_TR_L_NS')or(CARA=='A_TR_L_NS')",
+ regles=(UN_PARMI('MAILLE','GROUP_MA'),
+ AU_MOINS_UN('VALE','VALE_F',),PRESENT_ABSENT('VALE','VALE_F',),),
+ MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
+ VALE =SIMP(statut='f',typ='R',min=144,max=144),
+ VALE_F =SIMP(statut='f',typ=(para_sensi,),min=144 ,max=144 ),),
# affection des caractéristiques de MASSE
b_M_T_D_N =BLOC(condition = "CARA=='M_T_D_N'",
GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
VALE =SIMP(statut='f',typ='R',min=78,max=78),
VALE_F =SIMP(statut='f',typ=(para_sensi,),min=78 ,max=78 ),),
+ b_M_T_N_NS =BLOC(condition = "CARA=='M_T_N_NS'",
+ fr="NOEUD: 9 valeurs de masse (pleine)",
+ regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),
+ AU_MOINS_UN('VALE','VALE_F',),PRESENT_ABSENT('VALE','VALE_F',),),
+ NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'),
+ MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
+ GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
+ VALE =SIMP(statut='f',typ='R',min=9 ,max=9 ),
+ VALE_F =SIMP(statut='f',typ=(para_sensi,),min=9 ,max=9 ),),
+ b_M_T_L_NS =BLOC(condition = "CARA=='M_T_L_NS'",
+ fr="SEGMENT: 36 valeurs de masse (pleine)",
+ regles=(UN_PARMI('MAILLE','GROUP_MA'),
+ AU_MOINS_UN('VALE','VALE_F',),PRESENT_ABSENT('VALE','VALE_F',),),
+ MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
+ VALE =SIMP(statut='f',typ='R',min=36,max=36),
+ VALE_F =SIMP(statut='f',typ=(para_sensi,),min=36 ,max=36 ),),
+ b_M_TR_N_NS =BLOC(condition = "CARA=='M_TR_N_NS'",
+ fr="NOEUD: 36 valeurs de masse (pleine)",
+ regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),
+ AU_MOINS_UN('VALE','VALE_F',),PRESENT_ABSENT('VALE','VALE_F',),),
+ NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'),
+ MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
+ GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
+ VALE =SIMP(statut='f',typ='R',min=36,max=36),
+ VALE_F =SIMP(statut='f',typ=(para_sensi,),min=36 ,max=36 ),),
+ b_M_TR_L_NS =BLOC(condition = "CARA=='M_TR_L_NS'",
+ fr="SEGMENT: 144 valeurs de masse (pleine)",
+ regles=(UN_PARMI('MAILLE','GROUP_MA'),
+ AU_MOINS_UN('VALE','VALE_F',),PRESENT_ABSENT('VALE','VALE_F',),),
+ MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
+ VALE =SIMP(statut='f',typ='R',min=144,max=144),
+ VALE_F =SIMP(statut='f',typ=(para_sensi,),min=144 ,max=144 ),),
),
#============================================================================
DISCRET_2D =FACT(statut='f',max='**',
REPERE =SIMP(statut='f',typ='TXM',into=("LOCAL","GLOBAL") ),
AMOR_HYST =SIMP(statut='f',typ='R' ),
+ SYME =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
CARA =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=1,
fr="Affectation de matrices de rigidité, de masse ou d'amortissement à des mailles ou noeuds",
into=("K_T_D_N","K_T_D_L","K_TR_D_N","K_TR_D_L",
"M_T_D_N","M_T_N", "M_TR_D_N",
"M_T_L", "M_TR_N", "M_TR_L",
"A_T_D_N","A_TR_D_N","A_T_D_L","A_TR_D_L",
- "A_T_N", "A_T_L", "A_TR_N", "A_TR_L") ),
+ "A_T_N", "A_T_L", "A_TR_N", "A_TR_L",
+ "K_T_N_NS", "K_T_L_NS", "K_TR_N_NS", "K_TR_L_NS",
+ "M_T_N_NS", "M_T_L_NS", "M_TR_N_NS", "M_TR_L_NS",
+ "A_T_N_NS", "A_T_L_NS", "A_TR_N_NS", "A_TR_L_NS") ),
# affection des caractéristiques de RIGIDITE/AMORTISSEMENT
b_K_T_D_N =BLOC(condition = "(CARA=='K_T_D_N')or(CARA=='A_T_D_N')",
GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
VALE =SIMP(statut='f',typ='R',min=21,max=21),
VALE_F =SIMP(statut='f',typ=(para_sensi,),min=21 ,max=21 ),),
+
+ b_K_T_N_NS =BLOC(condition = "(CARA=='K_T_N_NS')or(CARA=='A_T_N_NS')",
+ regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),
+ AU_MOINS_UN('VALE','VALE_F',),PRESENT_ABSENT('VALE','VALE_F',),),
+ NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'),
+ MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
+ GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
+ VALE =SIMP(statut='f',typ='R',min=4 ,max=4 ),
+ VALE_F =SIMP(statut='f',typ=(para_sensi,),min=4 ,max=4 ),),
+ b_K_T_L_NS =BLOC(condition = "(CARA=='K_T_L_NS')or(CARA=='A_T_L_NS')",
+ regles=(UN_PARMI('MAILLE','GROUP_MA'),
+ AU_MOINS_UN('VALE','VALE_F',),PRESENT_ABSENT('VALE','VALE_F',),),
+ MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
+ VALE =SIMP(statut='f',typ='R',min=16,max=16),
+ VALE_F =SIMP(statut='f',typ=(para_sensi,),min=16 ,max=16 ),),
+ b_K_TR_N_NS =BLOC(condition = "(CARA=='K_TR_N_NS')or(CARA=='A_TR_N_NS')",
+ regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),
+ AU_MOINS_UN('VALE','VALE_F',),PRESENT_ABSENT('VALE','VALE_F',),),
+ NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'),
+ MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
+ GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
+ VALE =SIMP(statut='f',typ='R',min=9 ,max=9),
+ VALE_F =SIMP(statut='f',typ=(para_sensi,),min=9 ,max=9 ),),
+ b_K_TR_L_NS =BLOC(condition = "(CARA=='K_TR_L_NS')or(CARA=='A_TR_L_NS')",
+ regles=(UN_PARMI('MAILLE','GROUP_MA'),
+ AU_MOINS_UN('VALE','VALE_F',),PRESENT_ABSENT('VALE','VALE_F',),),
+ MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
+ VALE =SIMP(statut='f',typ='R',min=36,max=36),
+ VALE_F =SIMP(statut='f',typ=(para_sensi,),min=36 ,max=36 ),),
# affection des caractéristiques de MASSE
b_M_T_D_N =BLOC(condition = "CARA=='M_T_D_N'",
GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
VALE =SIMP(statut='f',typ='R',min=21,max=21),
VALE_F =SIMP(statut='f',typ=(para_sensi,),min=21 ,max=21 ),),
+ b_M_T_N_NS =BLOC(condition = "CARA=='M_T_N_NS'",
+ fr="NOEUD: 4 valeurs de masse (triangulaire supérieure par colonne)",
+ regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),
+ AU_MOINS_UN('VALE','VALE_F',),PRESENT_ABSENT('VALE','VALE_F',),),
+ NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'),
+ MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
+ GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
+ VALE =SIMP(statut='f',typ='R',min=4 ,max=4 ),
+ VALE_F =SIMP(statut='f',typ=(para_sensi,),min=4 ,max=4 ),),
+ b_M_T_L_NS =BLOC(condition = "CARA=='M_T_L_NS'",
+ fr="SEGMENT: 16 valeurs de masse (triangulaire supérieure par colonne)",
+ regles=(UN_PARMI('MAILLE','GROUP_MA'),
+ AU_MOINS_UN('VALE','VALE_F',),PRESENT_ABSENT('VALE','VALE_F',),),
+ MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
+ VALE =SIMP(statut='f',typ='R',min=16,max=16),
+ VALE_F =SIMP(statut='f',typ=(para_sensi,),min=16 ,max=16 ),),
+ b_M_TR_N_NS =BLOC(condition = "CARA=='M_TR_N_NS'",
+ fr="NOEUD: 9 valeurs de masse (triangulaire supérieure par colonne)",
+ regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),
+ AU_MOINS_UN('VALE','VALE_F',),PRESENT_ABSENT('VALE','VALE_F',),),
+ NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'),
+ MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
+ GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
+ VALE =SIMP(statut='f',typ='R',min=9 ,max=9 ),
+ VALE_F =SIMP(statut='f',typ=(para_sensi,),min=9 ,max=9 ),),
+ b_M_TR_L_NS =BLOC(condition = "CARA=='M_TR_L_NS'",
+ fr="SEGMENT: 36 valeurs de masse (triangulaire supérieure par colonne)",
+ regles=(UN_PARMI('MAILLE','GROUP_MA'),
+ AU_MOINS_UN('VALE','VALE_F',),PRESENT_ABSENT('VALE','VALE_F',),),
+ MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
+ VALE =SIMP(statut='f',typ='R',min=36,max=36),
+ VALE_F =SIMP(statut='f',typ=(para_sensi,),min=36 ,max=36 ),),
),
#============================================================================
GROUP_NO_CENTRE =SIMP(statut='f',typ=grno),
NOEUD_CENTRE =SIMP(statut='f',typ=no),
COOR_CENTRE =SIMP(statut='f',typ='R',min=2,max=3),
+ UNITE_EUROPLEXUS=SIMP(statut='f',typ='I'),
),
#============================================================================
) ;
-#& MODIF COMMANDE DATE 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE
+#& MODIF COMMANDE DATE 16/09/2008 AUTEUR PELLET J.PELLET
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
-# (AT YOUR OPTION) ANY LATER VERSION.
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
-# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
# ======================================================================
# RESPONSABLE None
AFFE_CHAR_ACOU=OPER(nom="AFFE_CHAR_ACOU",op= 68,sd_prod=char_acou,
regles=(AU_MOINS_UN('PRES_IMPO','VITE_FACE','IMPE_FACE','LIAISON_UNIF' ),),
MODELE =SIMP(statut='o',typ=modele_sdaster ),
VERI_DDL =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
+ METHODE =SIMP(statut='c',typ='TXM',fr="Stratégie de résolution pour les pressions imposées",
+ into=('DUALISATION',),defaut='DUALISATION',),
+ # METHODE='ELIMINATION' est traité dans le fortran mais dangereux actuellement
PRES_IMPO =FACT(statut='f',max='**',
regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'),),
TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
),
INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
) ;
-#& MODIF COMMANDE DATE 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE
+#& MODIF COMMANDE DATE 16/09/2008 AUTEUR PELLET J.PELLET
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
typ=evol_char ),
PESANTEUR =SIMP(statut='f',typ='R',fr="Champ de pesanteur",min=4,max=4),
+ METHODE =SIMP(statut='c',typ='TXM',fr="Stratégie de résolution pour les déplacements imposés",
+ into=('DUALISATION',),defaut='DUALISATION',),
+ # METHODE='ELIMINATION' est traité dans le fortran mais dangereux actuellement
ROTATION =SIMP(statut='f',typ='R',fr="Champ de rotation", min=4,max=4),
b_rotation =BLOC ( condition = "ROTATION != None",
CENTRE =SIMP(statut='f',typ='R',defaut=(0.,0.,0.),max=3),),
CONTACT = C_CONTACT(),
#
# FORCES
-#
+#
FORCE_NODALE =FACT(statut='f',fr="Applique à des noeuds des forces nodales",max='**',
regles=(AU_MOINS_UN('GROUP_NO','NOEUD'),
AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ' ),),
) ;
-#& MODIF COMMANDE DATE 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE
+#& MODIF COMMANDE DATE 16/09/2008 AUTEUR PELLET J.PELLET
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
-# (AT YOUR OPTION) ANY LATER VERSION.
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
-# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
# ======================================================================
# RESPONSABLE DESROCHES X.DESROCHES
AFFE_CHAR_MECA_C=OPER(nom="AFFE_CHAR_MECA_C",op= 7,sd_prod=char_meca,
regles=(AU_MOINS_UN('DDL_IMPO','FORCE_POUTRE','LIAISON_DDL', ),),
MODELE =SIMP(statut='o',typ=modele_sdaster ),
VERI_DDL =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
+ METHODE =SIMP(statut='c',typ='TXM',fr="Stratégie de résolution pour les déplacements imposés",
+ into=('DUALISATION',),defaut='DUALISATION',),
+ # METHODE='ELIMINATION' est traité dans le fortran mais dangereux actuellement
DDL_IMPO =FACT(statut='f',max='**',
fr="Impose à des noeuds une ou plusieurs valeurs de déplacement (ou de certaines grandeurs asscociées)",
regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD',),
MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'),
GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'),
- LIAISON =SIMP(statut='f',typ='TXM',into=('ENCASTRE',)),
+ LIAISON =SIMP(statut='f',typ='TXM',into=('ENCASTRE',)),
DX =SIMP(statut='f',typ='C' ),
DY =SIMP(statut='f',typ='C' ),
DZ =SIMP(statut='f',typ='C' ),
),
INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
) ;
-#& MODIF COMMANDE DATE 06/05/2008 AUTEUR CNGUYEN C.NGUYEN
+#& MODIF COMMANDE DATE 16/09/2008 AUTEUR PELLET J.PELLET
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
VERI_DDL =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
VERI_NORM =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
MODELE =SIMP(statut='o',typ=modele_sdaster),
+ METHODE =SIMP(statut='c',typ='TXM',fr="Stratégie de résolution pour les déplacements imposés",
+ into=('DUALISATION',),defaut='DUALISATION',),
+ # METHODE='ELIMINATION' est traité dans le fortran mais dangereux actuellement
DDL_IMPO =FACT(statut='f',max='**',
fr="Impose à des noeuds une ou plusieurs valeurs de déplacement (ou de certaines grandeurs asscociées) fournies"
),
INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
) ;
-#& MODIF COMMANDE DATE 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE
+#& MODIF COMMANDE DATE 16/09/2008 AUTEUR PELLET J.PELLET
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
'ECHANGE_PAROI','GRAD_TEMP_INIT','LIAISON_DDL','LIAISON_GROUP',
'LIAISON_UNIF','LIAISON_CHAMNO','RAYONNEMENT','LIAISON_MAIL' ),),
MODELE =SIMP(statut='o',typ=(modele_sdaster) ),
+ METHODE =SIMP(statut='c',typ='TXM',fr="Stratégie de résolution pour les températures imposées",
+ into=('DUALISATION',),defaut='DUALISATION',),
+ # METHODE='ELIMINATION' est traité dans le fortran mais dangereux actuellement
TEMP_IMPO =FACT(statut='f',max='**',
regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'),
INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
) ;
-#& MODIF COMMANDE DATE 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE
+#& MODIF COMMANDE DATE 16/09/2008 AUTEUR PELLET J.PELLET
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
-# (AT YOUR OPTION) ANY LATER VERSION.
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
-# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
# ======================================================================
# RESPONSABLE DESROCHES X.DESROCHES
AFFE_CHAR_THER_F=OPER(nom="AFFE_CHAR_THER_F",op=34,sd_prod=char_ther,
TEMP_IMPO =FACT(statut='f',max='**',
regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'),
- AU_MOINS_UN('TEMP_SUP','TEMP','TEMP_INF','EVOL_THER'),
- PRESENT_ABSENT('EVOL_THER','TEMP','TEMP_INF','TEMP_SUP'),),
+ AU_MOINS_UN('TEMP_SUP','TEMP','TEMP_INF'),),
TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'),
GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'),
- EVOL_THER =SIMP(statut='f',typ=(evol_ther) ),
DDL =SIMP(statut='f',typ='TXM',into=("TEMP",) ),
TEMP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
TEMP_INF =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
TEMP_SUP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
),
-
+
FLUX_REP =FACT(statut='f',max='**',
regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'),
FLUN =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
- ),
-
+ ),
+
RAYONNEMENT =FACT(statut='f',max='**',
fr="Attention, exprimer les températures en Celsius si rayonnement",
EPSILON =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
TEMP_EXT =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
),
-
+
ECHANGE =FACT(statut='f',max='**',
COEF_H_SUP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
TEMP_EXT_SUP =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
),
-
+
SOURCE =FACT(statut='f',max='**',
regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE'),),
MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'),
SOUR =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
),
-
+
GRAD_TEMP_INIT =FACT(statut='f',max='**',
regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
FLUX_Y =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
FLUX_Z =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
),
-
+
ECHANGE_PAROI =FACT(statut='f',max='**',
regles=(UN_PARMI('GROUP_MA_1','MAILLE_1'),
UN_PARMI('GROUP_MA_2','MAILLE_2'),),
INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
) ;
-#& MODIF COMMANDE DATE 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE
+#& MODIF COMMANDE DATE 22/07/2008 AUTEUR PELLET J.PELLET
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
VARC_M_ZIRC =FACT(statut='d',
NOM_VARC =SIMP(statut='c',typ='TXM',defaut="M_ZIRC"),
GRANDEUR =SIMP(statut='c',typ='TXM',defaut="VARI_R"),
- CMP_GD =SIMP(statut='c',typ='TXM',max=3,min=3,defaut=("V1","V2","V3")),
- CMP_VARC =SIMP(statut='c',typ='TXM',max=3,min=3,defaut=("ALPHPUR","ALPHBETA","TZIRC",)),
+ CMP_GD =SIMP(statut='c',typ='TXM',max=4,min=4,defaut=("V1","V2","V3","V4")),
+ CMP_VARC =SIMP(statut='c',typ='TXM',max=4,min=4,defaut=("ALPHPUR","ALPHBETA","TZIRC","TEMPS")),
),
INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
) ;
-#& MODIF COMMANDE DATE 06/05/2008 AUTEUR PELLET J.PELLET
+#& MODIF COMMANDE DATE 01/09/2008 AUTEUR DELMAS J.DELMAS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
"3D_GRAD_VARI", # RESP. : MICHEL S.MICHEL
"3D_XFEM_CONT", # RESP. : GENIAUT S.GENIAUT
"3D_JOINT", # RESP. : LAVERNE J.LAVERNE
+ "3D_INTERFACE", # RESP. : LAVERNE J.LAVERNE
"AXIS", # RESP. : LEFEBVRE J.P.LEFEBVRE
"AXIS_FLUI_STRU", # RESP. : GREFFET N.GREFFET
"AXIS_FLUIDE", # RESP. : GREFFET N.GREFFET
"AXIS_FOURIER", # RESP. : DESROCHES X.DESROCHES
"AXIS_INCO", # RESP. : MICHEL S.MICHEL
"AXIS_INCO_GD", # RESP. : MICHEL S.MICHEL
- "AXIS_NS", # RESP. : BADEL P.BADEL
"AXIS_SI", # RESP. : DESROCHES X.DESROCHES
"AXIS_GRAD_VARI", # RESP. : MICHEL S.MICHEL
"AXIS_JOINT", # RESP. : LAVERNE J.LAVERNE
+ "AXIS_INTERFACE", # RESP. : LAVERNE J.LAVERNE
"AXIS_ELDI", # RESP. : LAVERNE J.LAVERNE
"BARRE", # RESP. : FLEJOU J.L.FLEJOU
"2D_BARRE", # RESP. : FLEJOU J.L.FLEJOU
"C_PLAN", # RESP. : LEFEBVRE J.P.LEFEBVRE
"C_PLAN_XFEM_CONT",# RESP. : GENIAUT S.GENIAUT
- "C_PLAN_NS", # RESP. : BADEL P.BADEL
"C_PLAN_SI", # RESP. : DESROCHES X.DESROCHES
"C_PLAN_GRAD_EPSI",# RESP. : MICHEL S.MICHEL
"CABLE", # RESP. : FLEJOU J.L.FLEJOU
"D_PLAN_XFEM_CONT",# RESP. : GENIAUT S.GENIAUT
"D_PLAN_GRAD_EPSI",# RESP. : MICHEL S.MICHEL
"D_PLAN_GRAD_VARI",# RESP. : MICHEL S.MICHEL
- "D_PLAN_NS", # RESP. : BADEL P.BADEL
"PLAN_JOINT", # RESP. : LAVERNE J.LAVERNE
+ "PLAN_INTERFACE", # RESP. : LAVERNE J.LAVERNE
"PLAN_ELDI", # RESP. : LAVERNE J.LAVERNE
"D_PLAN_ABSO", # RESP. : DEVESA G.DEVESA
"D_PLAN_INCO", # RESP. : MICHEL S.MICHEL
), ),),
),
+
+ VERI_JACOBIEN =SIMP(statut='f',typ='TXM',into=('OUI','NON'),defaut='OUI',
+ fr ="Vérification de la forme des mailles (jacobiens tous de meme signe).",),
) ;
#& MODIF COMMANDE DATE 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE
# CONFIGURATION MANAGEMENT OF EDF VERSION
OPTION =SIMP(statut='o',typ='TXM',into=("RIGI_GENE","RIGI_GENE_C","MASS_GENE","AMOR_GENE") ),
),
) ;
-#& MODIF COMMANDE DATE 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE
+#& MODIF COMMANDE DATE 06/10/2008 AUTEUR DEVESA G.DEVESA
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
MATR_ELEM =SIMP(statut='o',
typ=(matr_elem_depl_r,matr_elem_depl_c,matr_elem_temp_r,matr_elem_pres_c) ),
NUME_DDL =SIMP(statut='o',typ=nume_ddl_sdaster),
+ SYME =SIMP(statut='f',typ='TXM',into=("OUI",) ),
CHAR_CINE =SIMP(statut='f',typ=(char_cine_meca,char_cine_ther,char_cine_acou) ),
INFO =SIMP(statut='f',typ='I',into=(1,2) ),
) ;
),
TITRE =SIMP(statut='f',typ='TXM',max='**'),
) ;
-#& MODIF COMMANDE DATE 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE
+#& MODIF COMMANDE DATE 30/09/2008 AUTEUR REZETTE C.REZETTE
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
NUME_MODE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
NOEUD_CMP =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
NOM_CAS =SIMP(statut='f',typ='TXM' ),
-
INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
FREQ =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
LIST_INST =SIMP(statut='f',typ=listr8_sdaster),
LIST_FREQ =SIMP(statut='f',typ=listr8_sdaster),
- PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3 ),
CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",) ),
+ b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
+ PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6),),
+ b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
+ PRECISION =SIMP(statut='o',typ='R'),),
LIST_ORDRE =SIMP(statut='f',typ=listis_sdaster),
-
TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**',
fr="le calcul ne sera effectué que sur ces mailles là"),
b_sing =BLOC(condition= "OPTION == 'SING_ELEM' or \
(type(OPTION)==type(()) and 'SING_ELEM' in OPTION)",
- PREC_ERR=SIMP(statut='o',typ='R',val_min= 0.,val_max= 1.,
- fr="precision demandee pour calculer la carte de taille des elements"),),
+ PREC_ERR=SIMP(statut='o',typ='R',val_min= 0.,
+ fr="precision demandee pour calculer la carte de taille des elements"),
+ TYPE_ESTI=SIMP(statut='f',typ='TXM',into=("ERRE_ELEM_SIGM","ERZ1_ELEM_SIGM","ERZ2_ELEM_SIGM",
+ "QIRE_ELEM_SIGM","QIZ1_ELEM_SIGM","QIZ2_ELEM_SIGM",),
+ fr="choix de l'estimateur d'erreur"),),
EXCIT =FACT(statut='f',max='**',
fr="Charges contenant les températures, les efforts répartis pour les poutres...",
b_sing =BLOC(condition= "OPTION == 'SING_ELEM' or \
(type(OPTION)==type(()) and 'SING_ELEM' in OPTION)",
- PREC_ERR=SIMP(statut='o',typ='R',val_min= 0.,val_max=1.,
- fr="precision demandee pour calculer la carte de taille des elements" ),),
+ PREC_ERR=SIMP(statut='o',typ='R',val_min= 0.,
+ fr="precision demandee pour calculer la carte de taille des elements" ),
+ TYPE_ESTI=SIMP(statut='f',typ='TXM',into=("ERRE_ELEM_SIGM","ERZ1_ELEM_SIGM","ERZ2_ELEM_SIGM",
+ "QIRE_ELEM_SIGM","QIZ1_ELEM_SIGM","QIZ2_ELEM_SIGM",),
+ fr="choix de l'estimateur d'erreur"),),
EXCIT =FACT(statut='f',max='**',fr="charge contenant les temperatures",
CHARGE =SIMP(statut='o',typ=(char_meca,char_ther,char_acou) ),),
b_sing =BLOC(condition= "OPTION == 'SING_ELEM' or \
(type(OPTION)==type(()) and 'SING_ELEM' in OPTION)",
- PREC_ERR=SIMP(statut='o',typ='R',val_min= 0.,val_max=1.,
- fr="precision demandee pour calculer la carte de taille des elements" ),),
+ PREC_ERR=SIMP(statut='o',typ='R',val_min= 0.,
+ fr="precision demandee pour calculer la carte de taille des elements" ),
+ TYPE_ESTI=SIMP(statut='f',typ='TXM',into=("ERRE_ELEM_SIGM","ERZ1_ELEM_SIGM","ERZ2_ELEM_SIGM",
+ "QIRE_ELEM_SIGM","QIZ1_ELEM_SIGM","QIZ2_ELEM_SIGM",),
+ fr="choix de l'estimateur d'erreur"),),
b_extr = BLOC( condition = "OPTION in ('EXTR_ELNO_VARI','EXTR_ELGA_VARI')",
CHARGE =SIMP(statut='o',typ=(char_meca,char_ther,char_acou) ),),
),
- b_crit =BLOC( condition = "TYPE_OPTION=='CRIT'",
- OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
- into=("EQUI_ELNO_SIGM","EQUI_ELGA_SIGM",
- "EQUI_ELNO_EPSI","EQUI_ELGA_EPSI","EQUI_ELNO_EPME","EQUI_ELGA_EPME",
- "ENDO_ELNO_SIGA","ENDO_ELNO_SINO","CRIT_ELNO_RUPT",
- "ENDO_ELGA","ENDO_ELNO_ELGA",
- "PMPB_ELNO_SIEF","PMPB_ELGA_SIEF","SIEQ_ELNO_TUYO","EPEQ_ELNO_TUYO",
- ) ),
- ),
+ b_crit =BLOC( condition = "TYPE_OPTION=='CRIT'",
+ OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
+ into=("EQUI_ELNO_SIGM","EQUI_ELGA_SIGM",
+ "EQUI_ELNO_EPSI","EQUI_ELGA_EPSI","EQUI_ELNO_EPME","EQUI_ELGA_EPME",
+ "ENDO_ELNO_SIGA","ENDO_ELNO_SINO","CRIT_ELNO_RUPT",
+ "ENDO_ELGA","ENDO_ELNO_ELGA",
+ "PMPB_ELNO_SIEF","PMPB_ELGA_SIEF","SIEQ_ELNO_TUYO","EPEQ_ELNO_TUYO",
+ ) ),
+ ),
+
+ b_autres =BLOC( condition = "TYPE_OPTION=='AUTRES'",
+ OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
+ into=("VALE_NCOU_MAXI",) ),
+ b_maxi =BLOC( condition = "OPTION=='VALE_NCOU_MAXI' or \
+ (type(OPTION)==type(()) and 'VALE_NCOU_MAXI' in OPTION)",
+ NOM_CHAM =SIMP(statut='o',typ='TXM',fr="Nom du champ pour VALE_NCOU_MAXI" ),
+ NOM_CMP =SIMP(statut='o',typ='TXM',fr="Nom de la composante pour VALE_NCOU_MAXI"),),
+ ),
+
+ b_indi_erreur =BLOC( condition = "TYPE_OPTION=='INDI_ERREUR'",
+ OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',defaut="ERRE_ELEM_SIGM",
+ into=("ERRE_ELEM_SIGM","ERRE_ELNO_ELEM","ERZ1_ELEM_SIGM","ERZ2_ELEM_SIGM",
+ "DCHA_ELNO_SIGM","DCHA_ELGA_SIGM","RADI_ELNO_SIGM","RADI_ELGA_SIGM",
+ "QIRE_ELEM_SIGM","QIRE_ELNO_ELEM","QIZ1_ELEM_SIGM","QIZ2_ELEM_SIGM",
+ "SING_ELEM","SING_ELNO_ELEM",) ),
+
+ b_erre_qi =BLOC(condition = "OPTION in ('QIRE_ELEM_SIGM','QIZ1_ELEM_SIGM','QIZ2_ELEM_SIGM') or \
+ (type(OPTION)==type(()) and 'QIRE_ELEM_SIGM' in OPTION) or \
+ (type(OPTION)==type(()) and 'QIZ1_ELEM_SIGM' in OPTION) or \
+ (type(OPTION)==type(()) and 'QIZ2_ELEM_SIGM' in OPTION)",
+ RESU_DUAL =SIMP(statut='o',typ=(evol_elas,evol_noli),fr="resultat du probleme dual")),
+
+ b_sing =BLOC(condition= "OPTION == 'SING_ELEM' or \
+ (type(OPTION)==type(()) and 'SING_ELEM' in OPTION)",
+ PREC_ERR=SIMP(statut='o',typ='R',val_min= 0.,
+ fr="precision demandee pour calculer la carte de taille des elements" ),
+ TYPE_ESTI=SIMP(statut='f',typ='TXM',into=("ERRE_ELEM_SIGM","ERZ1_ELEM_SIGM","ERZ2_ELEM_SIGM",
+ "QIRE_ELEM_SIGM","QIZ1_ELEM_SIGM","QIZ2_ELEM_SIGM",),
+ fr="choix de l'estimateur d'erreur"),),
+
+ b_indic = BLOC( condition ="OPTION in ('DCHA_ELNO_SIGM','DCHA_ELGA_SIGM','RADI_ELNO_SIGM','RADI_ELGA_SIGM') or\
+ (type(OPTION)==type(()) and 'DCHA_ELNO_SIGM' in OPTION) or\
+ (type(OPTION)==type(()) and 'DCHA_ELGA_SIGM' in OPTION) or\
+ (type(OPTION)==type(()) and 'RADI_ELNO_SIGM' in OPTION) or\
+ (type(OPTION)==type(()) and 'RADI_ELGA_SIGM' in OPTION) ",
+ NORME =SIMP(statut='f',typ='TXM',defaut="VMIS",
+ into=("VMIS","TOTAL","VMIS_CINE","TOTAL_CINE") ),
+ ),
+ ),
+ ),
+# fin bloc evol_noli
+
+# thermique : evol_ther, fourier_ther
+ b_ther =BLOC( condition = "AsType(RESULTAT) in (evol_ther,fourier_ther,)" ,fr="options thermiques",
+ OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
+ into=("DEUL_ELGA_TEMP","DETE_ELNO_DLTE","FLUX_ELGA_TEMP","FLUX_ELNO_TEMP",
+ "HYDR_ELNO_ELGA","DURT_ELGA_META","DURT_ELNO_META",
+ "SOUR_ELGA_ELEC","ERRE_ELEM_TEMP","ERRE_ELNO_ELEM",),),
+ EXCIT =FACT(statut='f',max='**',
+ regles=(EXCLUS('FONC_MULT','FONC_MULT_C','COEF_MULT','COEF_MULT_C'),),
+ CHARGE =SIMP(statut='o',typ=char_ther ),
+ FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
+ FONC_MULT_C =SIMP(statut='f',typ=fonction_c),
+ COEF_MULT =SIMP(statut='f',typ='R'),
+ COEF_MULT_C =SIMP(statut='f',typ='C'),
+ PHAS_DEG =SIMP(statut='f',typ='R'),
+ PUIS_PULS =SIMP(statut='f',typ='I'),
+ TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",),),
+ ),
+ ),
+
+# acoustique
+ b_acou =BLOC( condition = "AsType(RESULTAT) in (acou_harmo,mode_acou,)",fr="options acoustiques",
+ OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
+ into=("PRES_ELNO_DBEL","PRES_ELNO_REEL","PRES_ELNO_IMAG",
+ "INTE_ELNO_ACTI","INTE_ELNO_REAC",
+ ),),
+ EXCIT =FACT(statut='f',max='**',
+ regles=(EXCLUS('FONC_MULT','FONC_MULT_C','COEF_MULT','COEF_MULT_C'),),
+ CHARGE =SIMP(statut='o',typ=char_acou ),
+ FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
+ FONC_MULT_C =SIMP(statut='f',typ=fonction_c),
+ COEF_MULT =SIMP(statut='f',typ='R'),
+ COEF_MULT_C =SIMP(statut='f',typ='C'),
+ PHAS_DEG =SIMP(statut='f',typ='R'),
+ PUIS_PULS =SIMP(statut='f',typ='I'),
+ TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",),),),
+ ),
+
+
+# Choix du solveur (utilisé actuellement pour estimateur d'erreur ZZ1) :
+ SOLVEUR =FACT(statut='d', fr="Méthode de résolution des systèmes linéaires",
+ METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("LDLT","MUMPS","MULT_FRONT",) ),
+
+
+ b_ldlt =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT",
+ RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
+ NPREC =SIMP(statut='f',typ='I',defaut=8),
+ STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
+ ),
+
+ b_mult_front =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale",
+ RENUM =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
+ NPREC =SIMP(statut='f',typ='I',defaut=8),
+ STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
+ ),
+
+
+ b_mumps =BLOC(condition = "METHODE == 'MUMPS' ",fr="Paramètres de la méthode MUMPS",
+ TYPE_RESOL =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("NONSYM","SYMGEN","SYMDEF","AUTO")),
+ PRETRAITEMENTS =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO")),
+ RENUM =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("AMD","AMF","PORD","METIS","QAMD","AUTO")),
+ ELIM_LAGR2 =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
+ PCENT_PIVOT =SIMP(statut='f',typ='I',defaut=10,),
+ RESI_RELA =SIMP(statut='f',typ='R',defaut=-1.0,),
+ PARALLELISME =SIMP(statut='f',typ='TXM',defaut="CENTRALISE",
+ into=("CENTRALISE","DISTRIBUE_MC","DISTRIBUE_MD","DISTRIBUE_SD")),
+ PARTITION =SIMP(statut='f',typ=sd_feti_sdaster),
+ CHARGE_PROC0_MA =SIMP(statut='f',typ='I',defaut=100,min=0,max=100),
+ CHARGE_PROC0_SD =SIMP(statut='f',typ='I',defaut=0,min=0),
+ OUT_OF_CORE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
+ ),
+ ),
+
+
+
+ SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**',
+ fr="Liste des paramètres de sensibilité.",
+ ang="List of sensitivity parameters"),
+ INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
+ TITRE =SIMP(statut='f',typ='TXM',max='**'),
+) ;
+#& MODIF COMMANDE DATE 21/10/2008 AUTEUR NISTOR I.NISTOR
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2008 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# ======================================================================
+
+# RESPONSABLE NISTOR I.NISTOR
+
+from Macro.calc_essai_ops import calc_essai_ops
+
+def calc_essai_prod(self,RESU_FLUDELA,RESU_IDENTIFICATION,RESU_TURBULENT, RESU_MODIFSTRU,**args):
+
+ if RESU_FLUDELA != None:
+ for res in RESU_FLUDELA:
+ self.type_sdprod(res['TABLE'],table_sdaster)
+ if RESU_IDENTIFICATION != None:
+ for res in RESU_IDENTIFICATION:
+ self.type_sdprod(res['TABLE'],table_fonction)
+ if RESU_TURBULENT != None:
+ for res in RESU_TURBULENT:
+ self.type_sdprod(res['FONCTION'],fonction_sdaster)
+
+
+ MTYPES = {
+ 'MODELE' : modele_sdaster,
+ 'MODE_MECA' : mode_meca,
+ 'NUME_DDL' : nume_ddl_sdaster,
+ 'MAILLAGE' : maillage_sdaster,
+ 'MASS_MECA' : matr_asse_depl_r,
+ 'RIGI_MECA' : matr_asse_depl_r,
+ 'AMOR_MECA' : matr_asse_depl_r,
+ 'MACR_ELEM' : macr_elem_stat,
+ 'PROJ_MESU' : mode_gene,
+ 'BASE_ES' : base_modale,
+ 'BASE_LMME' : mode_meca,
+ 'MODE_STA' : mode_stat_forc,
+ }
+ if RESU_MODIFSTRU != None:
+ for res in RESU_MODIFSTRU:
+ for mc, typ in MTYPES.items():
+ if res[mc]:
+ self.type_sdprod(res[mc], typ)
+ return None
+
+
+CALC_ESSAI = MACRO(nom = 'CALC_ESSAI',
+ op = calc_essai_ops,
+ sd_prod = calc_essai_prod,
+ reentrant = 'n',
+ UIinfo = {"groupes":("Outils métier",)},
+ fr = "Outil de post-traitement interactif pour Meidee ",
+ UNITE_FIMEN = SIMP( statut='f',typ='I',max='**' ),
+ INTERACTIF = SIMP( statut='f',typ='TXM',into=('OUI','NON'),defaut='OUI' ),
+ RESU_FLUDELA = FACT( statut='f',max='**',
+ TABLE = SIMP(statut='f', typ=CO),
+ ),
+ RESU_TURBULENT = FACT( statut='f',max=1,
+ FONCTION = SIMP(statut='f', typ=CO),
+ ),
+ RESU_IDENTIFICATION = FACT( statut='f',max='**',
+ TABLE = SIMP(statut='f', typ=CO),
+ ),
+ RESU_MODIFSTRU = FACT( statut='f', max=1,
+ MODELE=SIMP(statut='f',typ=CO,defaut=None),
+ MODE_MECA=SIMP(statut='f',typ=CO,defaut=None),
+ MAILLAGE=SIMP(statut='f',typ=CO,defaut=None),
+ NUME_DDL=SIMP(statut='f',typ=CO,defaut=None),
+ MASS_MECA=SIMP(statut='f',typ=CO,defaut=None),
+ RIGI_MECA=SIMP(statut='f',typ=CO,defaut=None),
+ AMOR_MECA=SIMP(statut='f',typ=CO,defaut=None),
+ MACR_ELEM=SIMP(statut='f',typ=CO,defaut=None),
+ PROJ_MESU=SIMP(statut='f',typ=CO,defaut=None),
+ BASE_ES=SIMP(statut='f',typ=CO,defaut=None),
+ BASE_LMME=SIMP(statut='f',typ=CO,defaut=None),
+ MODE_STA=SIMP(statut='f',typ=CO,defaut=None),
+ ),
+ UNITE_RESU = SIMP( statut='f',typ='I'),
+
+ b_inter = BLOC( condition="INTERACTIF=='NON'",
+
+ EXPANSION = FACT( statut='f',max='**',
+ CALCUL = SIMP(statut='o',typ=mode_meca),
+ NUME_MODE_CALCUL = SIMP(statut='f',typ='I',validators=NoRepeat(),
+ max='**',defaut=0),
+ MESURE = SIMP(statut='o',typ=mode_meca),
+ NUME_MODE_MESURE = SIMP(statut='f',typ='I',validators=NoRepeat(),
+ max='**',defaut=0),
+ RESOLUTION = SIMP(statut='f',typ='TXM',defaut='SVD',into=('SVD','LU')),
+ b_reso = BLOC(condition = "RESOLUTION=='SVD'",
+ EPS = SIMP(statut='f',typ='R', defaut = 0.)
+ )
+ ),
+ MEIDEE_FLUDELA = FACT( statut='f', max='**',
+ MESURE1 = SIMP(statut='o',typ=mode_meca),
+ MESURE2 = SIMP(statut='o',typ=mode_meca),
+ MESURE3 = SIMP(statut='o',typ=mode_meca),
+ BASE = SIMP(statut='o',typ=mode_meca),
+ ),
+ MEIDEE_TURBULENT = FACT( statut='f', max='**',
+ INTE_SPEC = SIMP(statut='o',typ=table_sdaster),
+ NUME_MODE_DECONV = SIMP(statut='f',typ='I',validators=NoRepeat(),
+ max=1,defaut=0),
+ NUME_MODE_LOCAL = SIMP(statut='f',typ='I',validators=NoRepeat(),
+ max='**',defaut=0),
+ BASE = SIMP(statut='o',typ=mode_meca),
+ MESURE = SIMP(statut='o',typ=(mode_meca,base_modale)),
+ ),
+ IDENTIFICATION = FACT( statut='f',max='**',
+ ALPHA = SIMP(statut='f',typ='R', defaut = 0.),
+ EPS = SIMP(statut='f',typ='R', defaut = 0.),
+ OBSERVABILITE = SIMP(statut='o',typ=(mode_meca, base_modale)),
+ COMMANDABILITE = SIMP(statut='o',typ=(mode_meca, base_modale)),
+ INTE_SPEC = SIMP(statut='o',typ=table_sdaster),
+ RESU_EXPANSION = SIMP(statut='f',typ='TXM',defaut='NON',into=('OUI','NON')),
+ BASE = SIMP(statut='o',typ=mode_meca),
+ ),
+ MODIFSTRUCT = FACT( statut='f', max=1,
+ MESURE = SIMP(statut='o', typ=mode_meca),
+ MODELE_SUP = SIMP(statut='o', typ=modele_sdaster),
+ MATR_RIGI = SIMP(statut='o', typ=matr_asse_depl_r),
+ RESOLUTION = SIMP(statut='o', typ='TXM',
+ into=('ES', 'LMME')),
+ b_resol = BLOC( condition = "RESOLUTION=='LMME'",
+ MATR_MASS = SIMP(statut='o', typ=matr_asse_depl_r),
+ ),
+ NUME_MODE_MESU = SIMP(statut='o', typ='I',max='**'),
+ NUME_MODE_CALCUL = SIMP(statut='o', typ='I',max='**'),
+ MODELE_MODIF = SIMP(statut='o', typ=modele_sdaster),
+ ),
+
+ # Si on realise une modification structurale, on donne les DDL capteurs et interface
+ b_inter = BLOC( condition="MODIFSTRUCT!=None",
+ GROUP_NO_CAPTEURS = FACT( statut='f', max='**',
+ GROUP_NO = SIMP(statut='f',typ='TXM', max='**'),
+ NOM_CMP = SIMP(statut='f',typ='TXM', max='**'),
+ ),
+ GROUP_NO_EXTERIEUR = FACT( statut='f', max='**',
+ GROUP_NO = SIMP(statut='f',typ='TXM', max='**'),
+ NOM_CMP = SIMP(statut='f',typ='TXM', max='**'),
+ ),
+ ),
+ ),
+ );
+
+#& MODIF COMMANDE DATE 20/10/2008 AUTEUR ASSIRE A.ASSIRE
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2008 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# ======================================================================
+# RESPONSABLE ASSIRE A.ASSIRE
+from Macro.calc_europlexus_ops import calc_europlexus_ops
+
+import types
+
+def calc_europlexus_prod(self,COURBE=None,**args):
+ if COURBE is not None:
+ self.type_sdprod(args['TABLE_COURBE'],table_sdaster)
+ return evol_noli
+
+CALC_EUROPLEXUS = MACRO(nom="CALC_EUROPLEXUS",op=calc_europlexus_ops,sd_prod=calc_europlexus_prod,
+ reentrant='n',
+ #UIinfo={"groupes":("Dynamique rapide",)},
+ fr="Chainage Code_Aster-Europlexus",
+
+ LOGICIEL = SIMP(statut='f', typ='TXM', defaut='/home/europlex/EPXD/EUROPLEXUS_GESTION/runepx_d'),
+
+ MODELE = SIMP(statut='o',typ=modele_sdaster),
+ CARA_ELEM = SIMP(statut='o',typ=cara_elem),
+
+ FONC_PARASOL = FACT(statut='f',
+ NFKT = SIMP(statut='o',typ=(fonction_sdaster,)),
+ NFKR = SIMP(statut='o',typ=(fonction_sdaster,)),
+ GROUP_MA = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
+ ),
+
- b_autres =BLOC( condition = "TYPE_OPTION=='AUTRES'",
- OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
- into=("VALE_NCOU_MAXI",) ),
- b_maxi =BLOC( condition = "OPTION=='VALE_NCOU_MAXI' or \
- (type(OPTION)==type(()) and 'VALE_NCOU_MAXI' in OPTION)",
- NOM_CHAM =SIMP(statut='o',typ='TXM',fr="Nom du champ pour VALE_NCOU_MAXI" ),
- NOM_CMP =SIMP(statut='o',typ='TXM',fr="Nom de la composante pour VALE_NCOU_MAXI"),),
- ),
+ CHAM_MATER = SIMP(statut='o',typ=cham_mater),
- b_indi_erreur =BLOC( condition = "TYPE_OPTION=='INDI_ERREUR'",
- OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',defaut="ERRE_ELEM_SIGM",
- into=("ERRE_ELEM_SIGM","ERRE_ELNO_ELEM","ERZ1_ELEM_SIGM","ERZ2_ELEM_SIGM",
- "DCHA_ELNO_SIGM","DCHA_ELGA_SIGM","RADI_ELNO_SIGM","RADI_ELGA_SIGM",
- "QIRE_ELEM_SIGM","QIRE_ELNO_ELEM","QIZ1_ELEM_SIGM","QIZ2_ELEM_SIGM",
- "SING_ELEM","SING_ELNO_ELEM",) ),
+ EXCIT = FACT(statut='o',max='**',
+ CHARGE = SIMP(statut='o',typ=(char_meca,)),
+ FONC_MULT = SIMP(statut='o',typ=(fonction_sdaster,)),
+ ),
- b_erre_qi =BLOC(condition = "OPTION in ('QIRE_ELEM_SIGM','QIZ1_ELEM_SIGM','QIZ2_ELEM_SIGM') or \
- (type(OPTION)==type(()) and 'QIRE_ELEM_SIGM' in OPTION) or \
- (type(OPTION)==type(()) and 'QIZ1_ELEM_SIGM' in OPTION) or \
- (type(OPTION)==type(()) and 'QIZ2_ELEM_SIGM' in OPTION)",
- RESU_DUAL =SIMP(statut='o',typ=(evol_elas,evol_noli),fr="resultat du probleme dual")),
+ DIME = FACT(statut='o', regles=(AU_MOINS_UN('UNITE_DIME','Q4GS','FORCE',
+ 'PT6L','ZONE','POUT','ECRO',
+ 'APPU','BLOQ','PRESS','PMAT',
+ 'DKT3','DEPL','FNOM','TABLE','FTAB',
+ 'MTTI','NEPE','LIAI',), ),
+ UNITE_DIME=SIMP(statut='f',typ='I'),
+
+ Q4GS = SIMP(statut='f',typ='I'),
+ FORCE = SIMP(statut='f',typ='I'),
+ PT6L = SIMP(statut='f',typ='I'),
+ ZONE = SIMP(statut='f',typ='I'),
+ POUT = SIMP(statut='f',typ='I'),
+ ECRO = SIMP(statut='f',typ='I'),
+ APPU = SIMP(statut='f',typ='I'),
+ BLOQ = SIMP(statut='f',typ='I'),
+ PRESS = SIMP(statut='f',typ='I',min=2,max=2,),
+ PMAT = SIMP(statut='f',typ='I'),
+ DKT3 = SIMP(statut='f',typ='I'),
+ DEPL = SIMP(statut='f',typ='I'),
+ FNOM = SIMP(statut='f',typ='I'),
+ TABLE = SIMP(statut='f',typ='I',min=2,max=2,),
+ FTAB = SIMP(statut='f',typ='I'),
+ MTTI = SIMP(statut='f',typ='I'),
+ NEPE = SIMP(statut='f',typ='I'),
+ LIAI = SIMP(statut='f',typ='I'),
+ ),
- b_sing =BLOC(condition= "OPTION == 'SING_ELEM' or \
- (type(OPTION)==type(()) and 'SING_ELEM' in OPTION)",
- PREC_ERR=SIMP(statut='o',typ='R',val_min= 0.,val_max=1.,
- fr="precision demandee pour calculer la carte de taille des elements" ),),
+ CALCUL = FACT(statut='o',
+ TYPE_DISCRETISATION = SIMP(statut='o',typ='TXM',defaut='AUTO',into=('AUTO','UTIL')),
+ INST_FIN = SIMP(statut='o',typ='R'),
+ INST_INIT = SIMP(statut='o',typ='R'),
+ NMAX = SIMP(statut='f',typ='R'),
- b_indic = BLOC( condition ="OPTION in ('DCHA_ELNO_SIGM','DCHA_ELGA_SIGM','RADI_ELNO_SIGM','RADI_ELGA_SIGM') or\
- (type(OPTION)==type(()) and 'DCHA_ELNO_SIGM' in OPTION) or\
- (type(OPTION)==type(()) and 'DCHA_ELGA_SIGM' in OPTION) or\
- (type(OPTION)==type(()) and 'RADI_ELNO_SIGM' in OPTION) or\
- (type(OPTION)==type(()) and 'RADI_ELGA_SIGM' in OPTION) ",
- NORME =SIMP(statut='f',typ='TXM',defaut="VMIS",
- into=("VMIS","TOTAL","VMIS_CINE","TOTAL_CINE") ),
- ),
- ),
- ),
-# fin bloc evol_noli
+ b_auto =BLOC( condition = "TYPE_DISCRETISATION=='AUTO'",
+ CSTAB = SIMP(statut='o',typ='R',max='**',defaut=0.3),
+# DTMAX = SIMP(statut='f',typ='R',max='**'),
+ ),
-# thermique : evol_ther, fourier_ther
- b_ther =BLOC( condition = "AsType(RESULTAT) in (evol_ther,fourier_ther,)" ,fr="options thermiques",
- OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
- into=("DEUL_ELGA_TEMP","DETE_ELNO_DLTE","FLUX_ELGA_TEMP","FLUX_ELNO_TEMP",
- "HYDR_ELNO_ELGA","DURT_ELGA_META","DURT_ELNO_META",
- "SOUR_ELGA_ELEC","ERRE_ELEM_TEMP","ERRE_ELNO_ELEM",),),
- EXCIT =FACT(statut='f',max='**',
- regles=(EXCLUS('FONC_MULT','FONC_MULT_C','COEF_MULT','COEF_MULT_C'),),
- CHARGE =SIMP(statut='o',typ=char_ther ),
- FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
- FONC_MULT_C =SIMP(statut='f',typ=fonction_c),
- COEF_MULT =SIMP(statut='f',typ='R'),
- COEF_MULT_C =SIMP(statut='f',typ='C'),
- PHAS_DEG =SIMP(statut='f',typ='R'),
- PUIS_PULS =SIMP(statut='f',typ='I'),
- TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",),),
- ),
- ),
+ b_util =BLOC( condition = "TYPE_DISCRETISATION=='UTIL'",
+ PASFIX = SIMP(statut='o',typ='R',max='**'),
+ ),
+ ),
-# acoustique
- b_acou =BLOC( condition = "AsType(RESULTAT) in (acou_harmo,mode_acou,)",fr="options acoustiques",
- OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
- into=("PRES_ELNO_DBEL","PRES_ELNO_REEL","PRES_ELNO_IMAG",
- "INTE_ELNO_ACTI","INTE_ELNO_REAC",
- ),),
- EXCIT =FACT(statut='f',max='**',
- regles=(EXCLUS('FONC_MULT','FONC_MULT_C','COEF_MULT','COEF_MULT_C'),),
- CHARGE =SIMP(statut='o',typ=char_acou ),
- FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
- FONC_MULT_C =SIMP(statut='f',typ=fonction_c),
- COEF_MULT =SIMP(statut='f',typ='R'),
- COEF_MULT_C =SIMP(statut='f',typ='C'),
- PHAS_DEG =SIMP(statut='f',typ='R'),
- PUIS_PULS =SIMP(statut='f',typ='I'),
- TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",),),),
- ),
- SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**',
- fr="Liste des paramètres de sensibilité.",
- ang="List of sensitivity parameters"),
- INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
- TITRE =SIMP(statut='f',typ='TXM',max='**'),
-) ;
+ OBSERVATION =FACT(statut='f',max='**',
+ SUIVI_DDL = SIMP(statut='o',typ='TXM',defaut="OUI",max=1,into=("OUI","NON")),
+ b_suivi =BLOC(condition = "SUIVI_DDL == 'OUI' ",
+ regles=( AU_MOINS_UN('PAS_NBRE','PAS_INST',),
+ EXCLUS('PAS_NBRE','PAS_INST',),
+ EXCLUS('GROUP_NO','TOUT_GROUP_NO',),
+ EXCLUS('GROUP_MA','TOUT_GROUP_MA',), ),
+ NOM_CHAM = SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**', defaut = ('DEPL',),
+ into=('DEPL','VITE','ACCE','SIEF_ELGA','EPSI_ELGA','VARI_ELGA'),),
+ PAS_INST = SIMP(statut='f',typ='R'),
+ PAS_NBRE = SIMP(statut='f',typ='I'),
+ GROUP_NO = SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
+ GROUP_MA = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
+ TOUT_GROUP_NO = SIMP(statut='f',typ='TXM',into=('OUI',),),
+ TOUT_GROUP_MA = SIMP(statut='f',typ='TXM',into=('OUI',),),
+ ),
+ ),
+
+
+ ARCHIVAGE =FACT(statut='f', regles=( AU_MOINS_UN('PAS_NBRE','PAS_INST',), EXCLUS('PAS_NBRE','PAS_INST',), ),
+ PAS_INST = SIMP(statut='f',typ='R'),
+ PAS_NBRE = SIMP(statut='f',typ='I'),
+ CONT_GENER = SIMP(statut='o',typ='TXM',defaut="NON",max=1,into=("OUI","NON")),
+ ),
+ COURBE = FACT(statut='f',max='**', regles=(EXCLUS('GROUP_NO','GROUP_MA')),
+ UNITE_ALIT = SIMP(statut='f',typ='I'),
+ NOM_CHAM = SIMP(statut='f',typ='TXM'),
+ NOM_CMP = SIMP(statut='f',typ='TXM'),
+# NOEUD = SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
+# MAILLE = SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
+ GROUP_NO = SIMP(statut='f',typ=grno,validators=NoRepeat(),max=1),
+ GROUP_MA = SIMP(statut='f',typ=grma,validators=NoRepeat(),max=1),
+
+ b_maille = BLOC(condition = "MAILLE != None", regles=(AU_MOINS_UN('NUM_GAUSS')),
+ NUM_GAUSS = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),),
+ ),
+ b_courbe = BLOC(condition = "COURBE != None",
+ regles=(AU_MOINS_UN('PAS_NBRE_COURBE','PAS_INST_COURBE',),
+ AU_MOINS_UN('TABLE_COURBE',)),
+ PAS_INST_COURBE = SIMP(statut='f',typ='R'),
+ PAS_NBRE_COURBE = SIMP(statut='f',typ='I'),
+ TABLE_COURBE = SIMP(statut='f', typ=CO),
+ ),
+ DOMAINES = FACT(statut='f',max='**',
+ GROUP_MA = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
+ IDENTIFIANT = SIMP(statut='f',typ='I'),),
+ INTERFACES = FACT(statut='f',max='**',
+ GROUP_MA_1 = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
+ GROUP_MA_2 = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
+ TOLE = SIMP(statut='f',typ='R'),
+ IDENT_DOMAINE_1 = SIMP(statut='f',typ='I'),
+ IDENT_DOMAINE_2 = SIMP(statut='f',typ='I'),),
+
+ INFO =SIMP(statut='f',typ='I',defaut=1,into=( 1, 2 ) ),
+ ) ;
#& MODIF COMMANDE DATE 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
PROL_GAUCHE_FONC=SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ),
INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
)
-#& MODIF COMMANDE DATE 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE
+#& MODIF COMMANDE DATE 30/09/2008 AUTEUR REZETTE C.REZETTE
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ),
SOLVEUR =FACT(statut='d',
- METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ),
+ METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC","MUMPS","PETSC") ),
b_mult_front = BLOC ( condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale",
RENUM =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
),
RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ),
RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ),
+ ),
+ b_mumps =BLOC(condition = "METHODE == 'MUMPS' ",fr="Paramètres de la méthode MUMPS",
+ TYPE_RESOL =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("NONSYM","SYMGEN","SYMDEF","AUTO")),
+ PRETRAITEMENTS =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO")),
+ RENUM =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("AMD","AMF","PORD","METIS","QAMD","AUTO")),
+ ELIM_LAGR2 =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
+ PCENT_PIVOT =SIMP(statut='f',typ='I',defaut=10,),
+ RESI_RELA =SIMP(statut='f',typ='R',defaut=1.0E-6,),
+ PARALLELISME =SIMP(statut='f',typ='TXM',defaut="CENTRALISE",
+ into=("CENTRALISE","DISTRIBUE_MC","DISTRIBUE_MD","DISTRIBUE_SD")),
+ PARTITION =SIMP(statut='f',typ=sd_feti_sdaster),
+ CHARGE_PROC0_MA =SIMP(statut='f',typ='I',defaut=100,min=0,max=100),
+ CHARGE_PROC0_SD =SIMP(statut='f',typ='I',defaut=0,min=0),
+ OUT_OF_CORE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
+ ),
+
+ b_petsc =BLOC(condition = "METHODE == 'PETSC' ",fr="Paramètres de la méthode PETSC",
+ ALGORITHME =SIMP(statut='f',typ='TXM',into=("BCGS","BICG","CG","CR","GMRES","TFQMR",),defaut="CG" ),
+ PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC","JACOBI","SOR"),defaut="LDLT_INC" ),
+ b_petsc_ilu =BLOC(condition = "PRE_COND == 'LDLT_INC' ",
+ NIVE_REMPLISSAGE = SIMP(statut='f',typ='I',defaut= 0 ),
+ REMPLISSAGE = SIMP(statut='f',typ='R',defaut= 1.0),
+ ),
+ RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ),
+ RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
+ NMAX_ITER =SIMP(statut='f',typ='I',defaut= -1 ),
),
),
) ;
-#& MODIF COMMANDE DATE 13/05/2008 AUTEUR GALENNE E.GALENNE
+#& MODIF COMMANDE DATE 20/10/2008 AUTEUR GALENNE E.GALENNE
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2006 EDF R&D WWW.CODE-ASTER.ORG
FISSURE =SIMP(statut='f',typ=fiss_xfem,max=1),
DTAN_ORIG =SIMP(statut='f',typ='R',max='**'),
DTAN_EXTR =SIMP(statut='f',typ='R',max='**'),
+ NB_POINT_FOND =SIMP(statut='f',typ='I',val_min=2),
regles=(EXCLUS('FOND_FISS','FISSURE'),
+ EXCLUS('FOND_FISS','NB_POINT_FOND'),
EXCLUS('FOND_FISS','DTAN_ORIG'),
EXCLUS('FOND_FISS','DTAN_EXTR'),),
b_theta =BLOC(condition="THETA == None",fr="calcul de theta",
R_SUP =SIMP(statut='f',typ='R'),
MODULE =SIMP(statut='f',typ='R',defaut=1.),
DIRE_THETA =SIMP(statut='f',typ=cham_no_sdaster ),
- DIRECTION =SIMP(statut='f',typ='R',max='**'),
+ DIRECTION =SIMP(statut='f',typ='R',max=3,min=3),
R_INF_FO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
R_SUP_FO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
MODULE_FO =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
FREQ =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
b_acce_reel =BLOC(condition="(INST != None)or(LIST_INST != None)or(FREQ != None)or(LIST_FREQ != None)",
- PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-6),
CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
+ b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
+ PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
+ b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
+ PRECISION =SIMP(statut='o',typ='R'),),
),
),
COMP_ELAS =FACT(statut='f',
RELATION =SIMP(statut='f',typ='TXM',defaut="ELAS",
into=("ELAS","ELAS_VMIS_LINE","ELAS_VMIS_TRAC","ELAS_VMIS_PUIS") ),
- ELAS =SIMP(statut='c',typ='I',defaut=1,into=(1,) ),
- ELAS_VMIS_LINE =SIMP(statut='c',typ='I',defaut=1,into=(1,) ),
- ELAS_VMIS_TRAC =SIMP(statut='c',typ='I',defaut=1,into=(1,) ),
- ELAS_VMIS_PUIS =SIMP(statut='c',typ='I',defaut=1,into=(1,) ),
+ CALCUL_CONTRAINTE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
DEFORMATION =SIMP(statut='f',typ='TXM',defaut="PETIT",into=("PETIT","GREEN") ),
regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),),
TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
COMP_INCR =FACT(statut='f',
RELATION =SIMP(statut='f',typ='TXM',defaut="ELAS",
into=("ELAS","VMIS_ISOT_TRAC","VMIS_ISOT_LINE","VMIS_CINE_LINE","ELAS_VMIS_PUIS") ),
- ELAS =SIMP(statut='f',typ='I',defaut=1,into=(1,) ),
- VMIS_ISOT_TRAC =SIMP(statut='f',typ='I',defaut=2,into=(2,) ),
- VMIS_ISOT_LINE =SIMP(statut='f',typ='I',defaut=2,into=(2,) ),
DEFORMATION =SIMP(statut='f',typ='TXM',defaut="PETIT",into=("PETIT","PETIT_REAC") ),
regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),),
TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
TITRE =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
INFO =SIMP(statut='f',typ='I',defaut=1,into=(1 , 2) ),
) ;
-#& MODIF COMMANDE DATE 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE
+#& MODIF COMMANDE DATE 30/09/2008 AUTEUR REZETTE C.REZETTE
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ),
SOLVEUR =FACT(statut='d',
- METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ),
+ METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC","MUMPS","PETSC") ),
b_mult_front = BLOC ( condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale",
RENUM =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
),
RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ),
),
+ b_mumps =BLOC(condition = "METHODE == 'MUMPS' ",fr="Paramètres de la méthode MUMPS",
+ TYPE_RESOL =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("NONSYM","SYMGEN","SYMDEF","AUTO")),
+ PRETRAITEMENTS =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO")),
+ RENUM =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("AMD","AMF","PORD","METIS","QAMD","AUTO")),
+ ELIM_LAGR2 =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
+ PCENT_PIVOT =SIMP(statut='f',typ='I',defaut=10,),
+ RESI_RELA =SIMP(statut='f',typ='R',defaut=1.0E-6,),
+ PARALLELISME =SIMP(statut='f',typ='TXM',defaut="CENTRALISE",
+ into=("CENTRALISE","DISTRIBUE_MC","DISTRIBUE_MD","DISTRIBUE_SD")),
+ PARTITION =SIMP(statut='f',typ=sd_feti_sdaster),
+ CHARGE_PROC0_MA =SIMP(statut='f',typ='I',defaut=100,min=0,max=100),
+ CHARGE_PROC0_SD =SIMP(statut='f',typ='I',defaut=0,min=0),
+ OUT_OF_CORE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
+ ),
+
+ b_petsc =BLOC(condition = "METHODE == 'PETSC' ",fr="Paramètres de la méthode PETSC",
+ ALGORITHME =SIMP(statut='f',typ='TXM',into=("BCGS","BICG","CG","CR","GMRES","TFQMR",),defaut="CG" ),
+ PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC","JACOBI","SOR"),defaut="LDLT_INC" ),
+ b_petsc_ilu =BLOC(condition = "PRE_COND == 'LDLT_INC' ",
+ NIVE_REMPLISSAGE = SIMP(statut='f',typ='I',defaut= 0 ),
+ REMPLISSAGE = SIMP(statut='f',typ='R',defaut= 1.0),
+ ),
+ RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ),
+ RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
+ NMAX_ITER =SIMP(statut='f',typ='I',defaut= -1 ),
+ ),
),
) ;
-#& MODIF COMMANDE DATE 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE
+#& MODIF COMMANDE DATE 17/11/2008 AUTEUR DELMAS J.DELMAS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
def calc_matr_elem_prod(OPTION,**args):
if OPTION == "RIGI_MECA" : return matr_elem_depl_r
if OPTION == "RIGI_FLUI_STRU" : return matr_elem_depl_r
- if OPTION == "MASS_ID_MDEP_R" : return matr_elem_depl_r
- if OPTION == "MASS_ID_MDNS_R" : return matr_elem_depl_r
- if OPTION == "MASS_ID_MTEM_R" : return matr_elem_temp_r
- if OPTION == "MASS_ID_MTNS_R" : return matr_elem_temp_r
if OPTION == "MASS_MECA" : return matr_elem_depl_r
if OPTION == "MASS_FLUI_STRU" : return matr_elem_depl_r
if OPTION == "RIGI_GEOM" : return matr_elem_depl_r
"AMOR_MECA","RIGI_THER","MASS_THER","IMPE_MECA",
"ONDE_FLUI","AMOR_MECA_ABSO","MASS_FLUI_STRU","RIGI_FLUI_STRU",
"RIGI_ROTA","MECA_GYRO","MASS_MECA_DIAG","RIGI_ACOU",
- "MASS_ID_MDEP_R","MASS_ID_MDNS_R","MASS_ID_MTEM_R","MASS_ID_MTNS_R",
"MASS_ACOU","AMOR_ACOU","RIGI_MECA_HYST") ),
+ MODELE =SIMP(statut='o',typ=modele_sdaster ),
# mots clés facultatifs que l'on a du mal à mettre dans les blocs
# sans gener MACRO_MATR_ASSE :
b_rigi_meca = BLOC( condition = "OPTION=='RIGI_MECA'",
- regles=(AU_MOINS_UN('MODELE','CHARGE' ),),
- MODELE =SIMP(statut='f',typ=modele_sdaster ),
- b_modele =BLOC(condition = "MODELE != None",
- CHAM_MATER =SIMP(statut='f',typ=cham_mater ),
- CARA_ELEM =SIMP(statut='f',typ=cara_elem ),
- MODE_FOURIER =SIMP(statut='f',typ='I',defaut= 0 ),
- ),
+ CHAM_MATER =SIMP(statut='f',typ=cham_mater ),
+ CARA_ELEM =SIMP(statut='f',typ=cara_elem ),
+ MODE_FOURIER =SIMP(statut='f',typ='I',defaut= 0 ),
CHARGE =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**' ),
),
- b_mass_meca =BLOC(condition = "(OPTION=='MASS_MECA') or (OPTION=='MASS_MECA_DIAG')",
- regles=(AU_MOINS_UN('MODELE','CHARGE'),),
- MODELE =SIMP(statut='f',typ=modele_sdaster ),
- b_modele =BLOC(condition = "MODELE != None",
- CHAM_MATER =SIMP(statut='f',typ=cham_mater ),
- CARA_ELEM =SIMP(statut='f',typ=cara_elem ),
- ),
+ b_mass_meca =BLOC(condition = "(OPTION=='MASS_MECA') or (OPTION=='MASS_MECA_DIAG')",
+ CHAM_MATER =SIMP(statut='f',typ=cham_mater ),
+ CARA_ELEM =SIMP(statut='f',typ=cara_elem ),
CHARGE =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**'),
),
- b_mass_identite =BLOC(condition = "(OPTION in ('MASS_ID_MDEP_R','MASS_ID_MTEM_R','MASS_ID_MDNS_R','MASS_ID_MTNS_R')) ",
- MODELE =SIMP(statut='o',typ=modele_sdaster ),
- # j'ajoute ces 2 mot clés inutiles à cause de l'alarme pas assez subtile de MEDOME
- CHAM_MATER =SIMP(statut='f',typ=cham_mater ),
- CARA_ELEM =SIMP(statut='f',typ=cara_elem ),
- ),
-
b_rigi_geom =BLOC(condition = "OPTION=='RIGI_GEOM'",
- MODELE =SIMP(statut='o',typ=modele_sdaster ),
CARA_ELEM =SIMP(statut='f',typ=cara_elem ),
SIEF_ELGA =SIMP(statut='o',typ=cham_elem ),
MODE_FOURIER =SIMP(statut='f',typ='I',defaut= 0 ),
),
b_rigi_rota =BLOC(condition = "OPTION=='RIGI_ROTA'",
- MODELE =SIMP(statut='o',typ=modele_sdaster ),
CHAM_MATER =SIMP(statut='o',typ=cham_mater ),
CHARGE =SIMP(statut='o',typ=char_meca,validators=NoRepeat(),max='**' ),
),
b_meca_gyro = BLOC( condition = "OPTION=='MECA_GYRO'",
- MODELE =SIMP(statut='o',typ=modele_sdaster ),
CHAM_MATER =SIMP(statut='o',typ=cham_mater ),
CARA_ELEM =SIMP(statut='o',typ=cara_elem ),
CHARGE =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**' ),
b_amor_meca =BLOC(condition = "OPTION=='AMOR_MECA'",
regles=(AU_MOINS_UN('CARA_ELEM','RIGI_MECA'),
ENSEMBLE('RIGI_MECA','MASS_MECA','CHAM_MATER'), ),
- MODELE =SIMP(statut='o',typ=modele_sdaster ),
CARA_ELEM =SIMP(statut='f',typ=cara_elem ),
CHAM_MATER =SIMP(statut='f',typ=cham_mater ),
RIGI_MECA =SIMP(statut='f',typ=matr_elem_depl_r ),
MASS_MECA =SIMP(statut='f',typ=matr_elem_depl_r ),
CHARGE =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**'),
),
-
+
b_amor_meca_abso =BLOC(condition = "OPTION=='AMOR_MECA_ABSO'",
regles=(AU_MOINS_UN('CARA_ELEM','RIGI_MECA'),
ENSEMBLE('RIGI_MECA','MASS_MECA','CHAM_MATER'), ),
- MODELE =SIMP(statut='o',typ=modele_sdaster ),
CARA_ELEM =SIMP(statut='f',typ=cara_elem ),
CHAM_MATER =SIMP(statut='o',typ=cham_mater ),
RIGI_MECA =SIMP(statut='f',typ=matr_elem_depl_r ),
MASS_MECA =SIMP(statut='f',typ=matr_elem_depl_r ),
CHARGE =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**'),
),
-
+
b_rigi_meca_hyst =BLOC( condition = "OPTION=='RIGI_MECA_HYST'",
- MODELE =SIMP(statut='o',typ=modele_sdaster ),
CHARGE =SIMP(statut='f',typ=char_meca ,validators=NoRepeat(),max='**' ),
CHAM_MATER =SIMP(statut='f',typ=cham_mater ),
CARA_ELEM =SIMP(statut='f',typ=cara_elem ),
),
b_rigi_ther =BLOC(condition = "OPTION=='RIGI_THER'",
- regles=(AU_MOINS_UN('MODELE','CHARGE' ),),
- MODELE =SIMP(statut='f',typ=modele_sdaster ),
- b_modele =BLOC(condition = "MODELE != None",
- CHAM_MATER =SIMP(statut='o',typ=cham_mater ),
- CARA_ELEM =SIMP(statut='f',typ=cara_elem ),
- MODE_FOURIER =SIMP(statut='f',typ='I',defaut= 0 ),
- ),
+ CHAM_MATER =SIMP(statut='o',typ=cham_mater ),
+ CARA_ELEM =SIMP(statut='f',typ=cara_elem ),
+ MODE_FOURIER =SIMP(statut='f',typ='I',defaut= 0 ),
CHARGE =SIMP(statut='f',typ=char_ther,validators=NoRepeat(),max='**' ),
),
b_mass_ther =BLOC(condition = "OPTION=='MASS_THER'",
- MODELE =SIMP(statut='o',typ=modele_sdaster ),
CHAM_MATER =SIMP(statut='o',typ=cham_mater ),
CARA_ELEM =SIMP(statut='f',typ=cara_elem ),
CHARGE =SIMP(statut='f',typ=char_ther ,validators=NoRepeat(),max='**' ),
),
b_rigi_acou =BLOC(condition = "OPTION=='RIGI_ACOU'",
- MODELE =SIMP(statut='o',typ=modele_sdaster ),
CHAM_MATER =SIMP(statut='o',typ=cham_mater ),
CHARGE =SIMP(statut='f',typ=char_acou ,validators=NoRepeat(),max='**' ),
),
b_mass_acou =BLOC(condition = "(OPTION=='MASS_ACOU') or (OPTION=='AMOR_ACOU')",
- MODELE =SIMP(statut='o',typ=modele_sdaster ),
CHAM_MATER =SIMP(statut='o',typ=cham_mater ),
CHARGE =SIMP(statut='f',typ=char_acou ,validators=NoRepeat(),max='**' ),
),
b_rigi_flui =BLOC(condition = "OPTION=='RIGI_FLUI_STRU'",
- MODELE =SIMP(statut='o',typ=modele_sdaster ),
CARA_ELEM =SIMP(statut='o',typ=cara_elem ),
CHAM_MATER =SIMP(statut='o',typ=cham_mater ),
CHARGE =SIMP(statut='o',typ=char_meca ,validators=NoRepeat(),max='**' ),
),
b_mass_flui =BLOC(condition = "OPTION=='MASS_FLUI_STRU'",
- MODELE =SIMP(statut='o',typ=modele_sdaster ),
CARA_ELEM =SIMP(statut='o',typ=cara_elem ),
CHAM_MATER =SIMP(statut='o',typ=cham_mater ),
CHARGE =SIMP(statut='o',typ=char_meca ,validators=NoRepeat(),max='**'),
),
b_impe_meca =BLOC(condition = "(OPTION=='IMPE_MECA') or (OPTION=='ONDE_FLUI')",
- MODELE =SIMP(statut='o',typ=modele_sdaster ),
CHAM_MATER =SIMP(statut='o',typ=cham_mater ),
CHARGE =SIMP(statut='o',typ=char_meca,validators=NoRepeat(),max='**' ),
),
) ;
-#& MODIF COMMANDE DATE 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE
+#& MODIF COMMANDE DATE 30/09/2008 AUTEUR REZETTE C.REZETTE
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
NUME_INIT =SIMP(statut='f',typ='I'),
INST_INIT =SIMP(statut='f',typ='R'),
b_inst =BLOC(condition="INST_INIT != None",
- PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3),
- CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") )
+ CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
+ b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
+ PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
+ b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
+ PRECISION =SIMP(statut='o',typ='R',),),
),
),
),
- COMP_INCR =FACT(statut='o',max='**',
+ COMP_INCR =FACT(statut='o',max=1,
RELATION =SIMP(statut='o',typ='TXM',into=("ACIER","ZIRC",) ),
ACIER =SIMP(statut='c',typ='I',defaut=7,into=(7,) ),
- ZIRC =SIMP(statut='c',typ='I',defaut=3,into=(3,) ),
+ ZIRC =SIMP(statut='c',typ='I',defaut=4,into=(4,) ),
regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),),
TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- GROUP_MA =SIMP(statut='f',typ=grma),
- MAILLE =SIMP(statut='f',typ=ma),
+ GROUP_MA =SIMP(statut='f',typ=grma, validators=NoRepeat(), max='**'),
+ MAILLE =SIMP(statut='f',typ=ma, validators=NoRepeat(), max='**'),
),
OPTION =SIMP(statut='f',typ='TXM'
,into=("META_ELNO_TEMP",) ),
) ;
-#& MODIF COMMANDE DATE 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE
+#& MODIF COMMANDE DATE 14/10/2008 AUTEUR NISTOR I.NISTOR
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2008 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# ======================================================================
+
+# RESPONSABLE NISTOR I.NISTOR
+
+from Macro.calc_modal_ops import calc_modal_ops
+
+def calc_modal_prod(self,AMORTISEMENT,**args):
+ if AMORTISEMENT=="NON": return mode_meca
+ if AMORTISEMENT=="OUI": return mode_meca_c
+ raise AsException("type de concept resultat non prevu")
+
+
+CALC_MODAL=MACRO(nom="CALC_MODAL",op=calc_modal_ops,
+ UIinfo={"groupes":("Résolution",)},
+ sd_prod=calc_modal_prod,
+ fr="Calcul des modes propres reels ou complexes dans une seule commande",
+ MODELE =SIMP(statut='o',typ=modele_sdaster),
+ AMORTISEMENT =SIMP(statut='f',typ='TXM',into=("OUI","NON"),defaut="NON" ),
+ CHAM_MATER =SIMP(statut='o',typ=cham_mater),
+ INST =SIMP(statut='f',typ='R',defaut=0.),
+ CARA_ELEM =SIMP(statut='f',typ=cara_elem),
+ CHARGE =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**'),
+ SOLVEUR =FACT(statut='d',
+ METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT") ),
+ b_mult_front =BLOC(condition="METHODE=='MULT_FRONT'",fr="Paramètres associés à la méthode multifrontale",
+ RENUM =SIMP(statut='f',typ='TXM',into=("MD","MDA","METIS"),defaut="METIS" ),
+ ),
+ b_ldlt =BLOC(condition="METHODE=='LDLT'",fr="Paramètres associés à la méthode LDLT",
+ RENUM =SIMP(statut='f',typ='TXM',into=("RCMK","SANS"),defaut="RCMK" ),
+ ),),
+ METHODE =SIMP(statut='f',typ='TXM',defaut="SORENSEN",
+ into=("TRI_DIAG","JACOBI","SORENSEN","QZ") ),
+ b_tri_diag =BLOC(condition = "METHODE == 'TRI_DIAG'",
+ PREC_ORTHO =SIMP(statut='f',typ='R',defaut= 1.E-12,val_min=0.E+0 ),
+ NMAX_ITER_ORTHO =SIMP(statut='f',typ='I',defaut= 5,val_min=0 ),
+ PREC_LANCZOS =SIMP(statut='f',typ='R',defaut= 1.E-8,val_min=0.E+0 ),
+ NMAX_ITER_QR =SIMP(statut='f',typ='I',defaut= 30,val_min=0 ),
+ ),
+ b_jacobi =BLOC(condition = "METHODE == 'JACOBI'",
+ PREC_BATHE =SIMP(statut='f',typ='R',defaut= 1.E-10,val_min=0.E+0 ),
+ NMAX_ITER_BATHE =SIMP(statut='f',typ='I',defaut= 40,val_min=0 ),
+ PREC_JACOBI =SIMP(statut='f',typ='R',defaut= 1.E-2,val_min=0.E+0 ),
+ NMAX_ITER_JACOBI=SIMP(statut='f',typ='I',defaut= 12,val_min=0 ),
+ ),
+ b_sorensen =BLOC(condition = "METHODE == 'SORENSEN'",
+ PREC_SOREN =SIMP(statut='f',typ='R',defaut= 0.E+0,val_min=0.E+0 ),
+ NMAX_ITER_SOREN =SIMP(statut='f',typ='I',defaut= 20,val_min=0 ),
+ PARA_ORTHO_SOREN=SIMP(statut='f',typ='R',defaut= 0.717,val_min=0.E+0 ),
+ ),
+ b_qz =BLOC(condition = "METHODE == 'QZ'",
+ TYPE_QZ =SIMP(statut='f',typ='TXM',defaut="QZ_SIMPLE",into=("QZ_QR","QZ_SIMPLE","QZ_EQUI") ),
+ ),
+ MODE_RIGIDE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"),
+ fr="Calcul des modes de corps rigide, uniquement pour la méthode TRI_DIAG" ),
+ CALC_FREQ =FACT(statut='d',min=0,
+ OPTION =SIMP(statut='f',typ='TXM',defaut="PLUS_PETITE",into=("PLUS_PETITE","BANDE","CENTRE","TOUT"),
+ fr="Choix de l option et par conséquent du shift du problème modal" ),
+ b_plus_petite =BLOC(condition = "OPTION == 'PLUS_PETITE'",fr="Recherche des plus petites valeurs propres",
+ NMAX_FREQ =SIMP(statut='f',typ='I',defaut= 10,val_min=0 ),
+ ),
+ b_centre =BLOC(condition = "OPTION == 'CENTRE'",
+ fr="Recherche des valeurs propres les plus proches d une valeur donnée",
+ FREQ =SIMP(statut='o',typ='R',
+ fr="Fréquence autour de laquelle on cherche les fréquences propres"),
+ AMOR_REDUIT =SIMP(statut='f',typ='R',),
+ NMAX_FREQ =SIMP(statut='f',typ='I',defaut= 10,val_min=0 ),
+ ),
+ b_bande =BLOC(condition = "(OPTION == 'BANDE')",
+ fr="Recherche des valeurs propres dans une bande donnée",
+ FREQ =SIMP(statut='o',typ='R',min=2,validators=NoRepeat(),max=2,
+ fr="Valeur des deux fréquences délimitant la bande de recherche"),
+ ),
+ APPROCHE =SIMP(statut='f',typ='TXM',defaut="REEL",into=("REEL","IMAG","COMPLEXE"),
+ fr="Choix du pseudo-produit scalaire pour la résolution du problème quadratique" ),
+ regles=(EXCLUS('DIM_SOUS_ESPACE','COEF_DIM_ESPACE'),),
+ DIM_SOUS_ESPACE =SIMP(statut='f',typ='I' ),
+ COEF_DIM_ESPACE =SIMP(statut='f',typ='I' ),
+ NPREC_SOLVEUR =SIMP(statut='f',typ='I',defaut= 8,val_min=0 ),
+ NMAX_ITER_SHIFT =SIMP(statut='f',typ='I',defaut= 5,val_min=0 ),
+ PREC_SHIFT =SIMP(statut='f',typ='R',defaut= 5.E-2,val_min=0.E+0 ),
+ SEUIL_FREQ =SIMP(statut='f',typ='R',defaut= 1.E-2,val_min=0.E+0 ),
+ STOP_FREQ_VIDE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
+ ),
+
+ VERI_MODE =FACT(statut='d',min=0,
+ STOP_ERREUR =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
+ PREC_SHIFT =SIMP(statut='f',typ='R',defaut= 5.E-3,val_min=0.E+0 ),
+ SEUIL =SIMP(statut='f',typ='R',defaut= 1.E-6,val_min=0.E+0,
+ fr="Valeur limite admise pour l ereur a posteriori des modes" ),
+ STURM =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
+ ),
+
+ TITRE =SIMP(statut='f',typ='TXM',max='**'),
+ INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
+) ;
+#& MODIF COMMANDE DATE 06/10/2008 AUTEUR DEVESA G.DEVESA
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
if AsType(RESULTAT) != None : return AsType(RESULTAT)
raise AsException("type de concept resultat non prevu")
-CALC_NO=OPER(nom="CALC_NO",op= 106,sd_prod=calc_no_prod,reentrant='o',
+CALC_NO=OPER(nom="CALC_NO",op= 106,sd_prod=calc_no_prod,reentrant='f',
fr="Enrichir une SD Résultat par des champs aux noeuds calculés à partir de champs aux éléments évalués aux noeuds",
UIinfo={"groupes":("Post traitements",)},
RESULTAT =SIMP(statut='o',typ=resultat_sdaster),
FREQ =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
LIST_INST =SIMP(statut='f',typ=listr8_sdaster),
LIST_FREQ =SIMP(statut='f',typ=listr8_sdaster),
- PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3 ),
- CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
LIST_ORDRE =SIMP(statut='f',typ=listis_sdaster),
-
+ CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
+ b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
+ PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
+ b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
+ PRECISION =SIMP(statut='o',typ='R',),),
OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
into=("FORC_NODA","REAC_NODA",
+ "FORC_NODA_NONL",
"DCHA_NOEU_SIGM",
"DEGE_NOEU_DEPL",
"DETE_NOEU_DLTE",
(OPTION == 'REAC_NODA') or (type(OPTION) == type(()) and 'REAC_NODA' in OPTION)""",
MODELE =SIMP(statut='f',typ=modele_sdaster),
),
-
+ b_forc_nonl =BLOC(condition = """(OPTION == 'FORC_NODA_NONL')""",
+ MODELE =SIMP(statut='f',typ=modele_sdaster),
+ COMP_INCR =C_COMP_INCR(),
+ ),
+
CHAM_MATER =SIMP(statut='f',typ=cham_mater),
CARA_ELEM =SIMP(statut='f',typ=cara_elem),
EXCIT =FACT(statut='f',max='**',
GROUP_NO_RESU =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
NOEUD_RESU =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**'),
) ;
-#& MODIF COMMANDE DATE 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE
+#& MODIF COMMANDE DATE 30/09/2008 AUTEUR REZETTE C.REZETTE
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2003 EDF R&D WWW.CODE-ASTER.ORG
LIST_INST =SIMP(statut='o',typ=listr8_sdaster),
INST_INIT =SIMP(statut='f',typ='R'),
INST_FIN =SIMP(statut='f',typ='R'),
- PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3 ),
+ PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-6 ),
# DEBUT DE BLOC POUR LA SUBDIVISION DES PAS DE TEMPS
SUBD_METHODE =SIMP( statut='f',typ='TXM',
into =("AUCUNE","UNIFORME","EXTRAPOLE"),
EVOL_NOLI =SIMP(statut='f',typ=evol_noli),
NUME_ORDRE =SIMP(statut='f',typ='I'),
INST =SIMP(statut='f',typ='R'),
- PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
+ b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
+ PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
+ b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
+ PRECISION =SIMP(statut='o',typ='R',),),
NUME_DIDI =SIMP(statut='f',typ='I'),
INST_ETAT_INIT =SIMP(statut='f',typ='R'),
),
SOLVEUR =FACT(statut='d',
- METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ),
+ METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC","MUMPS","PETSC") ),
b_mult_front =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale",
RENUM =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
),
RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ),
),
+ b_mumps =BLOC(condition = "METHODE == 'MUMPS' ",fr="Paramètres de la méthode MUMPS",
+ TYPE_RESOL =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("NONSYM","SYMGEN","SYMDEF","AUTO")),
+ PRETRAITEMENTS =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO")),
+ RENUM =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("AMD","AMF","PORD","METIS","QAMD","AUTO")),
+ ELIM_LAGR2 =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
+ PCENT_PIVOT =SIMP(statut='f',typ='I',defaut=10,),
+ RESI_RELA =SIMP(statut='f',typ='R',defaut=1.0E-6,),
+ PARALLELISME =SIMP(statut='f',typ='TXM',defaut="CENTRALISE",
+ into=("CENTRALISE","DISTRIBUE_MC","DISTRIBUE_MD","DISTRIBUE_SD")),
+ PARTITION =SIMP(statut='f',typ=sd_feti_sdaster),
+ CHARGE_PROC0_MA =SIMP(statut='f',typ='I',defaut=100,min=0,max=100),
+ CHARGE_PROC0_SD =SIMP(statut='f',typ='I',defaut=0,min=0),
+ OUT_OF_CORE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
+ ),
+
+ b_petsc =BLOC(condition = "METHODE == 'PETSC' ",fr="Paramètres de la méthode PETSC",
+ ALGORITHME =SIMP(statut='f',typ='TXM',into=("BCGS","BICG","CG","CR","GMRES","TFQMR",),defaut="CG" ),
+ PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC","JACOBI","SOR"),defaut="LDLT_INC" ),
+ b_petsc_ilu =BLOC(condition = "PRE_COND == 'LDLT_INC' ",
+ NIVE_REMPLISSAGE = SIMP(statut='f',typ='I',defaut= 0 ),
+ REMPLISSAGE = SIMP(statut='f',typ='R',defaut= 1.0),
+ ),
+ RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ),
+ RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
+ NMAX_ITER =SIMP(statut='f',typ='I',defaut= -1 ),
+ ),
SYME =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
),
INFO =SIMP(statut='f',typ='I',into=(1,2) ),
COMP_INCR =C_COMP_INCR(),
) ;
+#& MODIF COMMANDE DATE 21/10/2008 AUTEUR CORUS M.CORUS
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2008 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# ======================================================================
+
+# RESPONSABLE CORUS M.CORUS
+
+from Macro.calc_spec_ops import calc_spec_ops
+
+CALC_SPEC=MACRO(nom="CALC_SPEC",op= calc_spec_ops,sd_prod=table_fonction,
+ reentrant='n',
+ fr="Calcule une matrice interspectrale ou des fonctions de transferts",
+ UIinfo={"groupes":("Fonction",)},
+ TAB_ECHANT =FACT(statut='f',
+ NOM_TAB =SIMP(statut='o',typ=table_sdaster),
+ LONGUEUR_ECH =FACT(statut='f',
+ DUREE =SIMP(statut='f',typ='R'),
+ POURCENT =SIMP(statut='f',typ='R'),
+ NB_PTS =SIMP(statut='f',typ='I'),
+ ),
+ RECOUVREMENT =FACT(statut='f',
+ DUREE =SIMP(statut='f',typ='R'),
+ POURCENT =SIMP(statut='f',typ='R'),
+ NB_PTS =SIMP(statut='f',typ='I'),
+ ),
+ ),
+ ECHANT =FACT(statut='f',max='**',
+ NUME_ORDRE_I =SIMP(statut='o',typ='I' ),
+ NUME_MES =SIMP(statut='o',typ='I' ),
+ FONCTION =SIMP(statut='o',typ=fonction_sdaster),
+ ),
+#-- Cas de la matrice interspectrale --#
+ INTERSPE =FACT(statut='f',
+ FENETRE =SIMP(statut='f',typ='TXM',defaut="RECT",into=("RECT","HAMM","HANN","EXPO","PART",)),
+ BLOC_DEFI_FENE =BLOC(condition = "FENETRE == 'EXPO' or FENETRE == 'PART' ",
+# DEFI_FENE =SIMP(statut='f',typ='R',max='**'),
+ ),
+ ),
+#-- Cas des transferts - estimateurs H1 / H2 / Hv + Coherence --#
+ TRANSFERT =FACT(statut='f',
+ ESTIM =SIMP(statut='f',typ='TXM',defaut="H1",into=("H1","H2","CO",)),
+ REFER =SIMP(statut='o',typ='I',max='**'),
+ FENETRE =SIMP(statut='f',typ='TXM',defaut="RECT",into=("RECT","HAMM","HANN","EXPO","PART",)),
+ DEFI_FENE =SIMP(statut='f',typ='R',max='**'),
+
+ ),
+ TITRE =SIMP(statut='f',typ='TXM',max='**'),
+ INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
+);
#& MODIF COMMANDE DATE 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
FORMAT =SIMP(statut='f',typ='TXM',defaut="EXCEL",into=("EXCEL","AGRAF") ),
),
) ;
-#& MODIF COMMANDE DATE 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE
+#& MODIF COMMANDE DATE 21/10/2008 AUTEUR REZETTE C.REZETTE
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG
# ======================================================================
# RESPONSABLE ABBAS M.ABBAS
-CALCUL=OPER(nom="CALCUL",op=26,sd_prod=table_container,reentrant='n',
+CALCUL=OPER(nom="CALCUL",op=26,sd_prod=table_container,reentrant='f',
UIinfo={"groupes":("Résolution",)},
fr="Calculer des objets élémentaires comme une matrice tangente, intégrer une loi de comportement, etc...",
OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',defaut="COMPORTEMENT",
MODELE =SIMP(statut='o',typ=modele_sdaster),
CARA_ELEM =SIMP(statut='f',typ=cara_elem),
CHAM_MATER =SIMP(statut='o',typ=cham_mater),
+ TABLE =SIMP(statut='f',typ=table_container),
EXCIT =FACT(statut='o',max='**',
CHARGE =SIMP(statut='o',typ=(char_meca,char_cine_meca)),
FONC_MULT =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
RELATION =SIMP(statut='o',typ='TXM',defaut="ELAS",
into=("ELAS","ELAS_VMIS_LINE","ELAS_VMIS_TRAC",
"ELAS_POUTRE_GR","CABLE","ELAS_HYPER")),
- ELAS =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- ELAS_VMIS_TRAC =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- ELAS_VMIS_LINE =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- ELAS_HYPER =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- ELAS_POUTRE_GR =SIMP(statut='c',typ='I',defaut=3,into=(3,)),
- CABLE =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
DEFORMATION =SIMP(statut='f',typ='TXM',defaut="PETIT" ,into=("PETIT","GREEN","GREEN_GR",) ),),
INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
) ;
),
TITRE =SIMP(statut='f',typ='TXM',max='**'),
) ;
-#& MODIF COMMANDE DATE 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE
+#& MODIF COMMANDE DATE 30/09/2008 AUTEUR REZETTE C.REZETTE
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
UIinfo={"groupes":("Résultats et champs",)},
TYPE_CHAM =SIMP(statut='o',typ='TXM',into=C_TYPE_CHAM_INTO()),
# TYPE_CHAM doit etre de la forme : CART_xx, NOEU_xx, ELEM_xx, ELGA_xx ou ELNO_xx
- # ou xx est le nom d'une grandeur définie dans le catalogue des grandeurs
+ # ou xx est le nom d'une grandeur définie dans le catalogue des grandeurs
# SI CREATION D'UN CHAM_NO, POUR IMPOSER LA NUMEROTATION DES DDLS :
# ------------------------------------------------------------------
regles=(EXCLUS('NUME_DDL','CHAM_NO',)),
# ------------------------------------------------------------------
b_c2r =BLOC(condition = "OPERATION == 'C2R'",
CHAM_GD =SIMP(statut='o',typ=cham_gd_sdaster),
- PARTIE =SIMP(statut='o',typ='TXM',into=('REEL','IMAG'),),
+ PARTIE =SIMP(statut='o',typ='TXM',into=('REEL','IMAG','MODULE','PHASE'),),
),
# ------------------------------------------------------------------
b_disc =BLOC(condition = "OPERATION == 'DISC'",
INTERPOL =SIMP(statut='f',typ='TXM',defaut="NON",into=("NON","LIN",) ),
),
- PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3),
CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",) ),
+ b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
+ PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
+ b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
+ PRECISION =SIMP(statut='o',typ='R',),),
), # fin bloc b_extr
INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2,) ),
TITRE =SIMP(statut='f',typ='TXM',max='**' ),
) ;
-#& MODIF COMMANDE DATE 19/05/2008 AUTEUR PELLET J.PELLET
+#& MODIF COMMANDE DATE 30/06/2008 AUTEUR PELLET J.PELLET
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
fr="Nombre minimal de mailles que doit contenir le groupe pour etre détruit", ),
),
RESTREINT =FACT(statut='f',fr="Restreindre un maillage à des groupes de mailles",max=1,
- GROUP_MA =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'),
+ regles=(AU_MOINS_UN('GROUP_MA','MAILLE',),),
+ GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**'),
TOUT_GROUP_MA =SIMP(statut='f',typ='TXM',defaut='NON',into=('OUI','NON'),),
GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
TOUT_GROUP_NO =SIMP(statut='f',typ='TXM',defaut='NON',into=('OUI','NON'),),
MODI_MAILLE =FACT(statut='f',max='**',fr="Modification du type de mailles",
regles=(AU_MOINS_UN('TOUT','MAILLE','GROUP_MA' ),),
TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- MAILLE =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
- GROUP_MA =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max='**'),
OPTION =SIMP(statut='o',typ='TXM',into=("TRIA6_7","QUAD8_9","SEG3_4","QUAD_TRIA3"),
fr="Choix de la transformation" ),
b_NOS =BLOC(condition = "OPTION == 'TRIA6_7' or OPTION == 'QUAD8_9' or OPTION == 'SEG3_4'",
LINE_QUAD =FACT(statut='f',fr="Passage linéaire -> quadratique",
regles=(AU_MOINS_UN('TOUT','MAILLE','GROUP_MA' ),),
TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- MAILLE =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
- GROUP_MA =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max='**'),
PREF_NOEUD =SIMP(statut='f',typ='TXM',defaut="NS"),
PREF_NUME =SIMP(statut='f',typ='I',defaut= 1 ),
),
HEXA20_27 =FACT(statut='f',fr="Passage HEXA20 -> HEXA27",
regles=(AU_MOINS_UN('TOUT','MAILLE','GROUP_MA' ),),
TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- MAILLE =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
- GROUP_MA =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max='**'),
PREF_NOEUD =SIMP(statut='f',typ='TXM',defaut="NS"),
PREF_NUME =SIMP(statut='f',typ='I',defaut= 1 ),
),
QUAD_LINE =FACT(statut='f',fr="Passage quadratique -> linéaire",
regles=(AU_MOINS_UN('TOUT','MAILLE','GROUP_MA' ),),
TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- MAILLE =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
- GROUP_MA =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max='**'),
),
REPERE =FACT(statut='f',max='**',
fr="changement de repère servant à déterminer les caractéristiques d'une section de poutre",
#
INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
) ;
-#& MODIF COMMANDE DATE 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE
+#& MODIF COMMANDE DATE 20/10/2008 AUTEUR PELLET J.PELLET
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
if TYPE_RESU == "EVOL_NOLI" : return evol_noli
if TYPE_RESU == "EVOL_THER" : return evol_ther
if TYPE_RESU == "MULT_ELAS" : return mult_elas
+ if TYPE_RESU == "MODE_MECA" : return mode_meca
if TYPE_RESU == "FOURIER_ELAS" : return fourier_elas
if TYPE_RESU == "FOURIER_THER" : return fourier_ther
if TYPE_RESU == "EVOL_VARC" : return evol_varc
#-------------------------------------
b_affe =BLOC(condition = "OPERATION == 'AFFE'",
- TYPE_RESU =SIMP(statut='o',position='global',typ='TXM',into=("MULT_ELAS","EVOL_ELAS","EVOL_NOLI","FOURIER_ELAS",
- "EVOL_THER","EVOL_VARC","EVOL_CHAR","FOURIER_THER") ),
+ TYPE_RESU =SIMP(statut='o',position='global',typ='TXM',into=("MODE_MECA","MULT_ELAS","EVOL_ELAS","EVOL_NOLI",
+ "FOURIER_ELAS","EVOL_THER","EVOL_VARC","EVOL_CHAR","FOURIER_THER") ),
NOM_CHAM =SIMP(statut='o',typ='TXM',into=C_NOM_CHAM_INTO()),
+ b_mode =BLOC(condition = "TYPE_RESU == 'MODE_MECA'",
+ MATR_A =SIMP(statut='f',typ=matr_asse_depl_r,),
+ MATR_B =SIMP(statut='f',typ=matr_asse_depl_r,),
+ ),
+
AFFE =FACT(statut='o',max='**',
CHAM_GD =SIMP(statut='o',typ=(cham_gd_sdaster)),
MODELE =SIMP(statut='f',typ=modele_sdaster),
LIST_INST =SIMP(statut='f',typ=listr8_sdaster),
NUME_INIT =SIMP(statut='f',typ='I', val_min=1),
NUME_FIN =SIMP(statut='f',typ='I', val_min=1),
- PRECISION =SIMP(statut='f',typ='R',defaut= 0. ),
+ PRECISION =SIMP(statut='f',typ='R',defaut= 0.0 ),
CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
),
b_fourier =BLOC(condition = "((TYPE_RESU == 'FOURIER_ELAS') or (TYPE_RESU == 'FOURIER_THER')) ",
NUME_MODE =SIMP(statut='f',typ='I'),
TYPE_MODE =SIMP(statut='f',typ='TXM',defaut="SYME",into=("SYME","ANTI","TOUS") ),
),
+ b_mode =BLOC(condition = "TYPE_RESU == 'MODE_MECA'",
+ NUME_MODE =SIMP(statut='f',typ='I'),
+ FREQ =SIMP(statut='f',typ='R'),
+ ),
),
),
LIST_ORDRE =SIMP(statut='f',typ=listis_sdaster),
INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
LIST_INST =SIMP(statut='f',typ=listr8_sdaster),
- PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3),
- CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",) ),
+ CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
+ b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
+ PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
+ b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
+ PRECISION =SIMP(statut='o',typ='R',),),
),
),
NOM_CHAM =SIMP(statut='f',typ='TXM',into=("DEPL","SIEF_ELGA","VARI_ELGA",),validators=NoRepeat(),max='**' ),
RESU_INIT =SIMP(statut='o',typ=evol_noli),
INST_INIT =SIMP(statut='f',typ='R'),
- PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3),
- CRITERE =SIMP(statut='f',typ='TXM',into=('RELATIF','ABSOLU'),defaut='RELATIF'),
+ CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
+ b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
+ PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
+ b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
+ PRECISION =SIMP(statut='o',typ='R',),),
MAILLAGE_INIT =SIMP(statut='o',typ=maillage_sdaster,),
RESU_FINAL =SIMP(statut='o',typ=evol_noli,),
MAILLAGE_FINAL =SIMP(statut='o',typ=maillage_sdaster,),
INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
LIST_INST =SIMP(statut='f',typ=listr8_sdaster),
b_acce_reel =BLOC(condition="(INST != None)or(LIST_INST != None)",
- PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-6),
- CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
+ CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
+ b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
+ PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
+ b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
+ PRECISION =SIMP(statut='o',typ='R',),),
),
PROL_DROITE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU",),),
PROL_GAUCHE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU",),),
IMPR_MACRO =SIMP(fr="affichage des sous-commandes produites par les macros dans le fichier mess",
statut='f',typ='TXM',into=("OUI","NON")),
);
-#& MODIF COMMANDE DATE 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE
+#& MODIF COMMANDE DATE 07/10/2008 AUTEUR COURTOIS M.COURTOIS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
),
ERREUR =FACT(fr="comportement en cas d'erreur",statut='f',min=1,max=1,
- ERREUR_F =SIMP(statut='f',typ='TXM',into=('ABORT','EXCEPTION'),defaut='ABORT'),
+ ERREUR_F =SIMP(statut='f',typ='TXM',into=('ABORT','EXCEPTION'),),
),
DEBUG =FACT(fr="option de déboggage reservée aux développeurs",
statut='f',typ='TXM',into=('TEST',)),
),
- MEMOIRE =FACT(fr="mode de gestion mémoire utilisé",statut='f',min=1,max=1,
+ MEMOIRE =FACT(fr="mode de gestion mémoire utilisé",statut='d',min=1,max=1,
GESTION =SIMP(statut='f',typ='TXM',into=('COMPACTE','RAPIDE'),defaut='RAPIDE'),
TYPE_ALLOCATION =SIMP(statut='f',typ='I',into=(1,2,3,4),defaut=1),
TAILLE =SIMP(statut='f',typ='I'),
TAILLE_BLOC =SIMP(statut='f',typ='R',defaut=800.),
PARTITION =SIMP(statut='f',typ='R'),
- DYNAMIQUE =SIMP(statut='f',typ='I'),
+ DYNAMIQUE =SIMP(statut='f',typ='I',defaut=1),
),
RESERVE_CPU =FACT(fr="reserve de temps pour terminer une execution",statut='d',max=1,
IGNORE_ALARM = SIMP(statut='f', typ='TXM', max='**', fr="Alarmes que l'utilisateur souhaite délibérément ignorer"),
);
-#& MODIF COMMANDE DATE 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE
+#& MODIF COMMANDE DATE 22/07/2008 AUTEUR PELLET J.PELLET
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
-# (AT YOUR OPTION) ANY LATER VERSION.
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
-# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
# ======================================================================
# RESPONSABLE NISTOR I.NISTOR
DEFI_BASE_MODALE=OPER(nom="DEFI_BASE_MODALE",op= 99,sd_prod=base_modale,
BASE =SIMP(statut='o',typ=(mode_meca,mode_stat_depl,mode_stat_acce,mode_stat_forc,mult_elas,base_modale)),
MATRICE =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_depl_c,matr_asse_gene_r,matr_asse_pres_r ) ),
),
+
+
+ SOLVEUR =FACT(statut='d', fr="Méthode de résolution des systèmes linéaires",
+ METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("LDLT","MULT_FRONT",) ),
+ # remarque : on ne peut pas utiliser MUMPS tant qu'il ne sait pas faire STOP_SINGULIER="NON"
+
+ b_ldlt =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT",
+ RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
+ NPREC =SIMP(statut='f',typ='I',defaut=8),
+ STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
+ ),
+
+ b_mult_front =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale",
+ RENUM =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
+ NPREC =SIMP(statut='f',typ='I',defaut=8),
+ STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
+ ),
+ ),
+
+
+
TITRE =SIMP(statut='f',typ='TXM',max='**'),
INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
) ;
PRESENT =SIMP(statut='o',typ='TXM',min=2,max=2,into=("OUI","NON") ),
),
) ;
-#& MODIF COMMANDE DATE 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE
+#& MODIF COMMANDE DATE 30/06/2008 AUTEUR PROIX J-M.PROIX
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG
"ZMAT",
"GRAN_IRRA_LOG",
) ),
- ELAS =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- ELAS_HYPER =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- SANS =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- CORR_ACIER =SIMP(statut='c',typ='I',defaut=3,into=(3,)),
- VMIS_ISOT_TRAC =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
- VISC_ISOT_TRAC =SIMP(statut='c',typ='I',defaut=3,into=(3,)),
- VMIS_ISOT_LINE =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
- VISC_ISOT_LINE =SIMP(statut='c',typ='I',defaut=3,into=(3,)),
- VMIS_ISOT_PUIS =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
- VMIS_ECMI_TRAC =SIMP(statut='c',typ='I',defaut=8,into=(8,)),
- VMIS_ECMI_LINE =SIMP(statut='c',typ='I',defaut=8,into=(8,)),
- LABORD_1D =SIMP(statut='c',typ='I',defaut=5,into=(5,)),
- ENDO_FRAGILE =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
- ENDO_ISOT_BETON =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
- ENDO_ORTH_BETON =SIMP(statut='c',typ='I',defaut=7,into=(7,)),
- BETON_REGLE_PR =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- MAZARS =SIMP(statut='c',typ='I',defaut=4,into=(4,)),
- RUPT_FRAG =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- VMIS_CINE_LINE =SIMP(statut='c',typ='I',defaut=7,into=(7,)),
- VISCOCHAB =SIMP(statut='c',typ='I',defaut=28,into=(28,)),
- VMIS_CIN1_CHAB =SIMP(statut='c',typ='I',defaut=8,into=(8,)),
- VMIS_CIN2_CHAB =SIMP(statut='c',typ='I',defaut=14,into=(14,)),
- VISC_CIN1_CHAB =SIMP(statut='c',typ='I',defaut=8,into=(8,)),
- VISC_CIN2_CHAB =SIMP(statut='c',typ='I',defaut=14,into=(14,)),
- VISC_TAHERI =SIMP(statut='c',typ='I',defaut=9,into=(9,)),
- ROUSSELIER =SIMP(statut='c',typ='I',defaut=9,into=(9,)),
- ROUSS_PR =SIMP(statut='c',typ='I',defaut=3,into=(3,)),
- ROUSS_VISC =SIMP(statut='c',typ='I',defaut=3,into=(3,)),
- VMIS_POU_LINE =SIMP(statut='c',typ='I',defaut=9,into=(9,)),
- VMIS_POU_FLEJOU =SIMP(statut='c',typ='I',defaut=9 ,into=(9,)),
- ASSE_CORN =SIMP(statut='c',typ='I',defaut=7,into=(7,)),
- ARME =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- NORTON_HOFF =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- LEMAITRE =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
- VENDOCHAB =SIMP(statut='c',typ='I',defaut=10,into=(10,)),
- GRILLE_ISOT_LINE=SIMP(statut='c',typ='I',defaut=4,into=(4,)),
- DRUCK_PRAGER =SIMP(statut='c',typ='I',defaut=3,into=(3,)),
- DRUCK_PRAG_N_A =SIMP(statut='c',typ='I',defaut=3,into=(3,)),
- HOEK_BROWN =SIMP(statut='c',typ='I',defaut=3,into=(3,)),
- HOEK_BROWN_EFF =SIMP(statut='c',typ='I',defaut=3,into=(3,)),
- HOEK_BROWN_TOT =SIMP(statut='c',typ='I',defaut=3,into=(3,)),
- GRANGER_FP =SIMP(statut='c',typ='I',defaut=55,into=(55,)),
- GRANGER_FP_INDT =SIMP(statut='c',typ='I',defaut=55,into=(55,)),
- GRANGER_FP_V =SIMP(statut='c',typ='I',defaut=55,into=(55,)),
- BETON_DOUBLE_DP =SIMP(statut='c',typ='I',defaut=4,into=(4,)),
- BETON_UMLV_FP =SIMP(statut='c',typ='I',defaut=21,into=(21,)),
- GRAN_IRRA_LOG =SIMP(statut='c',typ='I',defaut=4,into=(4,)),
-
RELATION_KIT =SIMP(statut='f',typ='TXM',max='**',validators=NoRepeat(),
into=(
# MECA KIT_DDI
"NADAI_B",
"BETON_DOUBLE_DP",
),),
-
# on pourrait ajouter TOUT_GROUP_FIBRE
) );
INFO =SIMP(statut='f',typ='I',into=(1,2) ),
)
-#& MODIF COMMANDE DATE 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE
+#& MODIF COMMANDE DATE 14/10/2008 AUTEUR GENIAUT S.GENIAUT
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG
FONC_LN =SIMP(statut='f',typ=(fonction_sdaster,formule) ),
GROUP_MA_FISS =SIMP(statut='f',typ=grma,max=01),
GROUP_MA_FOND =SIMP(statut='f',typ=grma),
- FORM_FISS =SIMP(statut='f',typ='TXM',into=("ELLIPSE",) ),
- b_ellipse =BLOC(condition = "FORM_FISS == 'ELLIPSE' ",fr="Paramères de la fissure elliptique",
+ FORM_FISS =SIMP(statut='f',typ='TXM',into=("ELLIPSE","CYLINDRE","DEMI_PLAN","SEGMENT","DEMI_DROITE") ),
+ b_ellipse =BLOC(condition = "FORM_FISS == 'ELLIPSE' ",fr="Paramètres de la fissure elliptique",
DEMI_GRAND_AXE =SIMP(statut='o',typ='R',val_min=0.E+0),
DEMI_PETIT_AXE =SIMP(statut='o',typ='R',val_min=0.E+0),
CENTRE =SIMP(statut='o',typ='R',min=3,max=3),
VECT_X =SIMP(statut='o',typ='R',min=3,max=3),
VECT_Y =SIMP(statut='o',typ='R',min=3,max=3),
COTE_FISS =SIMP(statut='f',typ='TXM',defaut="IN",into=("IN","OUT",) ), ),
+ b_cylindre =BLOC(condition = "FORM_FISS == 'CYLINDRE' ",fr="Paramètres de la fissure cylindrique",
+ DEMI_GRAND_AXE =SIMP(statut='o',typ='R',val_min=0.E+0),
+ DEMI_PETIT_AXE =SIMP(statut='o',typ='R',val_min=0.E+0),
+ CENTRE =SIMP(statut='o',typ='R',min=3,max=3),
+ VECT_X =SIMP(statut='o',typ='R',min=3,max=3),
+ VECT_Y =SIMP(statut='o',typ='R',min=3,max=3),),
+ b_demiplan =BLOC(condition = "FORM_FISS == 'DEMI_PLAN' ",fr="Paramètres de la fissure plane à front droit",
+ PFON =SIMP(statut='o',typ='R',min=3,max=3),
+ NORMALE =SIMP(statut='o',typ='R',min=3,max=3),
+ DTAN =SIMP(statut='o',typ='R',min=3,max=3),),
+ b_segment =BLOC(condition = "FORM_FISS == 'SEGMENT' ",fr="Paramètres de la fissure 2D segment",
+ PFON_ORIG =SIMP(statut='o',typ='R',min=3,max=3),
+ PFON_EXTR =SIMP(statut='o',typ='R',min=3,max=3),),
+ b_demidroite =BLOC(condition = "FORM_FISS == 'DEMI_DROITE' ",fr="Paramètres de la fissure 2D demi-droite",
+ PFON =SIMP(statut='o',typ='R',min=3,max=3),
+ DTAN =SIMP(statut='o',typ='R',min=3,max=3),),
+ b_droite =BLOC(condition = "FORM_FISS == 'DROITE' ",fr="Paramètres de l'interface 2D (fissure traversante)",
+ POINT =SIMP(statut='o',typ='R',min=3,max=3),
+ DTAN =SIMP(statut='o',typ='R',min=3,max=3),),
+ b_inclusion =BLOC(condition = "FORM_FISS == 'INCLUSION' ",fr="Paramètres de l'interface 2D (inclusion)",
+ DEMI_GRAND_AXE =SIMP(statut='o',typ='R',val_min=0.E+0),
+ DEMI_PETIT_AXE =SIMP(statut='o',typ='R',val_min=0.E+0),
+ CENTRE =SIMP(statut='o',typ='R',min=3,max=3),
+ VECT_X =SIMP(statut='o',typ='R',min=3,max=3),
+ VECT_Y =SIMP(statut='o',typ='R',min=3,max=3),),
),
GROUP_MA_ENRI =SIMP(statut='o',typ=grma,max=01),
- RAYON_ENRI =SIMP(statut='f',typ='R',defaut=0.E+0),
+ TYPE_ENRI_FOND =SIMP(statut='f',typ='TXM',into=("TOPOLOGIQUE","GEOMETRIQUE"),defaut="TOPOLOGIQUE" ),
+ b_enri_geom =BLOC(condition = "TYPE_ENRI_FOND == 'GEOMETRIQUE' ",fr="Paramètres de l enrichissement geometrique",
+ RAYON_ENRI =SIMP(statut='f',typ='R',val_min=0.E+0),
+
+ b_enri_couches =BLOC(condition = "(RAYON_ENRI == None) ",fr="Paramètres de l enrichissement à n couches",
+ NB_COUCHES =SIMP(statut='f',typ='I',defaut=4,val_min=1),
+ ),
+
+ ),
+
ORIE_FOND =FACT(statut='f',max=01,
PFON_INI =SIMP(statut='o',typ='R',max=03),
VECT_ORIE =SIMP(statut='o',typ='R',max=03),
- PT_ORIGIN =SIMP(statut='o',typ='R',max=03),
+ POINT_ORIG =SIMP(statut='o',typ='R',max=03),
),
INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2,3,) ),
) ;
) ;
-#& MODIF COMMANDE DATE 19/05/2008 AUTEUR MARKOVIC D.MARKOVIC
+#& MODIF COMMANDE DATE 20/10/2008 AUTEUR ASSIRE A.ASSIRE
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2008 EDF R&D WWW.CODE-ASTER.ORG
C2M1 =SIMP(statut='o',typ='R',val_min=0.E+0),
C2M2 =SIMP(statut='o',typ='R',val_min=0.E+0),
C2M3 =SIMP(statut='o',typ='R',val_min=0.E+0),
+
+ MP1X =SIMP(statut='f',typ=('R',listr8_sdaster)),
+ MP2X =SIMP(statut='f',typ=('R',listr8_sdaster)),
+ MP1Y =SIMP(statut='f',typ=('R',listr8_sdaster)),
+ MP2Y =SIMP(statut='f',typ=('R',listr8_sdaster)),
),
NAPPE =FACT(statut='o',max=10,
MATER =SIMP(statut='o',typ=(mater_sdaster) ),
OMY =SIMP(statut='o',typ='R',val_min=0.E+0),
RX =SIMP(statut='o',typ='R',val_min=-1.E+0,val_max=1.E+0),
RY =SIMP(statut='o',typ='R',val_min=-1.E+0,val_max=1.E+0),
+ FS =SIMP(statut='f',typ='R',val_min=0.E+0),
),
CABLE_PREC =FACT(statut='f',max=1,
MATER =SIMP(statut='o',typ=(mater_sdaster) ),
GROUP_NO_FIN =SIMP(statut='f',typ=grno),
),
) ;
-#& MODIF COMMANDE DATE 06/05/2008 AUTEUR MARKOVIC D.MARKOVIC
+#& MODIF COMMANDE DATE 20/10/2008 AUTEUR MICHEL S.MICHEL
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
PRESENT_PRESENT('BPEL_ACIER','ELAS'),
EXCLUS('RCCM','RCCM_FO'),
EXCLUS('WEIBULL','WEIBULL_FO'),
- PRESENT_PRESENT('BARCELONE','CAM_CLAY'),
PRESENT_PRESENT('LAIGLE','ELAS'),
PRESENT_PRESENT('LETK','ELAS'),
PRESENT_PRESENT('DRUCK_PRAGER','ELAS'),
+ PRESENT_PRESENT('ELAS_GONF','ELAS'),
PRESENT_PRESENT('HOEK_BROWN','ELAS'),
EXCLUS('MAZARS','MAZARS_FO'),
PRESENT_PRESENT('JOINT_BA','ELAS'),
C_MRZ_RZ =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
F_MTZ_TZ =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
C_MTZ_TZ =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
- ),
+ ),
VMIS_POUTRE =FACT(statut='f',
NP =SIMP(statut='o',typ='R'),
MEY =SIMP(statut='o',typ='R'),
BC =SIMP(statut='o',typ='R'),
AT =SIMP(statut='o',typ='R'),
BT =SIMP(statut='o',typ='R'),
+ CHI =SIMP(statut='f',typ='R',val_min=0.0E+0,val_max=1.0E+0),
),
MAZARS_FO=FACT(statut='f',min=0 ,
EPSD0 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
AT =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
BT =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
VERI_P =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP","SECH","HYDR") ),
+ CHI =SIMP(statut='f',typ='R'),
),
JOINT_BA=FACT(statut='f',min=0 ,max=1,
HPEN =SIMP(statut='o',typ='R',defaut= 1.E+0,val_min=0.E+0),
BDN =SIMP(statut='o',typ='R',defaut= 1.E+0,val_min=1.E-1),
),
VENDOCHAB =FACT(statut='f',
- S_VP =SIMP(statut='o',typ='R'),
- SEDVP1 =SIMP(statut='o',typ='R'),
- SEDVP2 =SIMP(statut='o',typ='R'),
- N_VP =SIMP(statut='o',typ='R'),
- M_VP =SIMP(statut='o',typ='R'),
- K_VP =SIMP(statut='o',typ='R'),
+ S =SIMP(statut='o',typ='R',defaut= 0.E+0),
+ ALPHA_D =SIMP(statut='o',typ='R',defaut= 0.E+0),
+ BETA_D =SIMP(statut='o',typ='R',defaut= 0.E+0),
+ N =SIMP(statut='o',typ='R'),
+ UN_SUR_M =SIMP(statut='o',typ='R',defaut= 0.E+0),
+ UN_SUR_K =SIMP(statut='o',typ='R'),
R_D =SIMP(statut='o',typ='R'),
A_D =SIMP(statut='o',typ='R'),
K_D =SIMP(statut='o',typ='R'),
),
VENDOCHAB_FO =FACT(statut='f',
- S_VP =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
- SEDVP1 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
- SEDVP2 =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
- N_VP =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
- M_VP =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
- K_VP =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
+ S =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
+ ALPHA_D =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
+ BETA_D =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
+ N =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
+ UN_SUR_M =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
+ UN_SUR_K =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
R_D =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
A_D =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
K_D =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
KAPA =SIMP(statut='o',typ='R'),
M =SIMP(statut='o',typ='R'),
PRES_CRIT =SIMP(statut='o',typ='R'),
- PA =SIMP(statut='o',typ='R'),
+ KCAM =SIMP(statut='f',typ='R',val_min=0.E+0),
+ PTRAC =SIMP(statut='f',typ='R',val_max=0.E+0),
+ regles=(PRESENT_PRESENT('PTRAC','KCAM',),),
),
BARCELONE =FACT(statut='f',
+ MU =SIMP(statut='o',typ='R'),
+ PORO =SIMP(statut='o',typ='R'),
+ LAMBDA =SIMP(statut='o',typ='R'),
+ KAPA =SIMP(statut='o',typ='R'),
+ M =SIMP(statut='o',typ='R'),
+ PRES_CRIT =SIMP(statut='o',typ='R'),
+ PA =SIMP(statut='o',typ='R'),
R =SIMP(statut='o',typ='R'),
BETA =SIMP(statut='o',typ='R'),
KC =SIMP(statut='o',typ='R'),
TDEQ =SIMP(statut='o',typ='R'),
N =SIMP(statut='o',typ='R'),
K =SIMP(statut='o',typ='R'),
- TDC =SIMP(statut='o',typ='R'),
+ T1C =SIMP(statut='o',typ='R'),
+ T2C =SIMP(statut='o',typ='R'),
AC =SIMP(statut='o',typ='R'),
M =SIMP(statut='o',typ='R'),
- QSR_K =SIMP(statut='f',typ='R'),
- TDR =SIMP(statut='o',typ='R'),
+ QSR_K =SIMP(statut='o',typ='R'),
+ T1R =SIMP(statut='o',typ='R'),
+ T2R =SIMP(statut='o',typ='R'),
AR =SIMP(statut='o',typ='R'),
BR =SIMP(statut='o',typ='R'),
),
RUPT_FRAG =FACT(statut='f',
GC =SIMP(statut='o',typ='R'),
SIGM_C =SIMP(statut='f',typ='R'),
- PENA_ADHERENCE =SIMP(statut='f',typ='R'),
+ PENA_ADHERENCE =SIMP(statut='f',typ='R',val_min=1.E-12,val_max=1.E+0),
PENA_CONTACT =SIMP(statut='f',typ='R',defaut=1.),
+ PENA_LAGR =SIMP(statut='f',typ='R',defaut=1.0E2,val_min=1.01E+0),
+ RIGI_GLIS =SIMP(statut='f',typ='R',defaut=1.0E1),
),
RUPT_FRAG_FO =FACT(statut='f',
GC =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
TYPE_DP =SIMP(statut='c',typ='R',defaut= 2.0,),
),
DILAT =SIMP(statut='f',typ='R',defaut=0.0),
- ),
+ ),
HOEK_BROWN =FACT(statut='f',
GAMMA_RUP =SIMP(statut='o',typ='R'),
GAMMA_RES =SIMP(statut='o',typ='R'),
PHI_RES =SIMP(statut='o',typ='R'),
PHI_END =SIMP(statut='f',typ='R'),
),
+ ELAS_GONF =FACT(statut='f',
+ BETAM =SIMP(statut='o',typ='R'),
+ PREF =SIMP(statut='o',typ='R'),
+ ),
#### MONOCRISTAL
ECOU_VISC1 =FACT(statut='f',
A =SIMP(statut='f',typ='R'),
),
) ;
-#& MODIF COMMANDE DATE 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE
+#& MODIF COMMANDE DATE 21/10/2008 AUTEUR NISTOR I.NISTOR
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
if AsType(DEPL_GLOBAL) == dyna_trans : return dyna_trans
if AsType(DEPL_GLOBAL) == dyna_harmo : return dyna_harmo
if AsType(DEPL_GLOBAL) == mode_meca : return mode_meca
+ if AsType(DEPL_GLOBAL) == mode_meca_c : return mode_meca_c
if AsType(DEPL_GLOBAL) == base_modale : return base_modale
raise AsException("type de concept resultat non prevu")
DEPL_INTERNE=OPER(nom="DEPL_INTERNE",op=89,sd_prod=depl_interne_prod,reentrant='n',
UIinfo={"groupes":("Matrices/vecteurs",)},
fr="Calculer le champ de déplacement à l'intérieur d'une sous-structure statique",
- DEPL_GLOBAL =SIMP(statut='o',typ=(cham_no_sdaster,mode_meca,base_modale,evol_elas,dyna_trans,dyna_harmo),),
+ DEPL_GLOBAL =SIMP(statut='o',typ=(cham_no_sdaster,mode_meca,mode_meca_c,base_modale,evol_elas,dyna_trans,dyna_harmo),),
SUPER_MAILLE =SIMP(statut='o',typ=ma,),
NOM_CAS =SIMP(statut='f',typ='TXM',defaut=" "),
) ;
#
INFO =SIMP(statut='f',typ='I' ,defaut=1,into=( 1 , 2)),
) ;
-#& MODIF COMMANDE DATE 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE
+#& MODIF COMMANDE DATE 06/10/2008 AUTEUR DEVESA G.DEVESA
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
PRESENT_ABSENT('MATR_AMOR','LIST_AMOR'),
UN_PARMI('FREQ','LIST_FREQ'),
CONCEPT_SENSIBLE('ENSEMBLE'),),
- MODELE =SIMP(statut='f',typ=modele_sdaster ),
CHAM_MATER =SIMP(statut='f',typ=cham_mater ),
CARA_ELEM =SIMP(statut='f',typ=cara_elem ),
MATR_MASS =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_pres_c,matr_asse_gene_r ) ),
regles=(UN_PARMI('VECT_ASSE','CHARGE'),
UN_PARMI('FONC_MULT','FONC_MULT_C','COEF_MULT','COEF_MULT_C'),
),
- VECT_ASSE =SIMP(statut='f',typ=(cham_no_sdaster,vect_asse_gene) ),
- CHARGE =SIMP(statut='f',typ=char_meca ),
+ VECT_ASSE =SIMP(statut='f',position='global',typ=(cham_no_sdaster,vect_asse_gene) ),
+ CHARGE =SIMP(statut='f',position='global', typ=char_meca ),
TYPE_CHARGE =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",) ),
FONC_MULT_C =SIMP(statut='f',typ=(fonction_c,formule_c) ),
COEF_MULT_C =SIMP(statut='f',typ='C' ),
PHAS_DEG =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
PUIS_PULS =SIMP(statut='f',typ='I',defaut= 0 ),
),
-
+ b_modele_char =BLOC(condition = " CHARGE != None ",
+ MODELE =SIMP(statut='o',typ=modele_sdaster ),
+ ),
+ b_modele_vect =BLOC(condition = " VECT_ASSE != None ",
+ MODELE =SIMP(statut='f',typ=modele_sdaster ),
+ ),
+ EXCIT_RESU =FACT(statut='f',max='**',
+ RESULTAT =SIMP(statut='o',typ=(dyna_harmo,harm_gene)),
+ COEF_MULT_C =SIMP(statut='o',typ='C' ),
+ ),
b_matr_gene =BLOC(condition = "AsType(MATR_MASS) in (matr_asse_gene_r,)",
fr="Methode de resolution matrice generalisee",
SOLVEUR =FACT(statut='d',
PARTITION =SIMP(statut='f',typ=sd_feti_sdaster),
CHARGE_PROC0_MA =SIMP(statut='f',typ='I',defaut=0,min=0),
CHARGE_PROC0_SD =SIMP(statut='f',typ='I',defaut=0,min=0),
+ OUT_OF_CORE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
),
),
),
PARTITION =SIMP(statut='f',typ=sd_feti_sdaster),
CHARGE_PROC0_MA =SIMP(statut='f',typ='I',defaut=0,min=0),
CHARGE_PROC0_SD =SIMP(statut='f',typ='I',defaut=0,min=0),
+ OUT_OF_CORE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
),
),
),
# Rajouter test icompatibilite vect_asse et sensibilite
# Peut-on aussi rajouter ici le test d incompatibilite charge complexe - derivation
# presents dans le Fortran
-#& MODIF COMMANDE DATE 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE
+#& MODIF COMMANDE DATE 06/10/2008 AUTEUR DEVESA G.DEVESA
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
NUME_INIT =SIMP(statut='f',typ='I' ),
INST_INIT =SIMP(statut='f',typ='R' ),
b_inst_init =BLOC(condition = "INST_INIT != None",
- PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
+ b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
+ PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
+ b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
+ PRECISION =SIMP(statut='o',typ='R',),),
),
),
DEPL_INIT =SIMP(statut='f',typ=cham_no_sdaster),
NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'),
GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
),
+ EXCIT_RESU =FACT(statut='f',max='**',
+ RESULTAT =SIMP(statut='o',typ=dyna_trans ),
+ COEF_MULT =SIMP(statut='o',typ='R' ),
+ ),
AMOR_MODAL =FACT(statut='f',
MODE_MECA =SIMP(statut='f',typ=mode_meca ),
AMOR_REDUIT =SIMP(statut='f',typ='R',max='**'),
PCENT_PIVOT =SIMP(statut='f',typ='I',defaut=10,),
RESI_RELA =SIMP(statut='f',typ='R',defaut=-1.0,),
PARALLELISME =SIMP(statut='f',typ='TXM',defaut="CENTRALISE",into=("CENTRALISE","CENTRALISE")),
+ OUT_OF_CORE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
),
b_petsc =BLOC(condition = "METHODE == 'PETSC' ",fr="Paramètres de la méthode PETSC",
- VARIANTE =SIMP(statut='f',typ='TXM',into=("GMRES","BCGS","CR","CG","BICG","CHEBYCHEV",),defaut="GMRES" ),
- PRE_COND =SIMP(statut='f',typ='TXM',into=("ILU","SOR","BJACOBI"),defaut="ILU" ),
+ ALGORITHME =SIMP(statut='f',typ='TXM',into=("BCGS","BICG","CG","CR","GMRES","TFQMR",),defaut="CG" ),
+ PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC","JACOBI","SOR"),defaut="LDLT_INC" ),
+ b_petsc_ilu =BLOC(condition = "PRE_COND == 'LDLT_INC' ",
+ NIVE_REMPLISSAGE = SIMP(statut='f',typ='I',defaut= 0 ),
+ REMPLISSAGE = SIMP(statut='f',typ='R',defaut= 1.0),
+ ),
RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ),
- RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-8),
+ RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
NMAX_ITER =SIMP(statut='f',typ='I',defaut= -1 ),
),
),
TITRE =SIMP(statut='f',typ='TXM',max='**'),
INFO =SIMP(statut='f',typ='I',into=(1,2) ),
) ;
-#& MODIF COMMANDE DATE 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE
+#& MODIF COMMANDE DATE 18/11/2008 AUTEUR ABBAS M.ABBAS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
# ======================================================================
# RESPONSABLE GREFFET N.GREFFET
+#
DYNA_NON_LINE=OPER(nom="DYNA_NON_LINE",op= 70,sd_prod=evol_noli,reentrant='f',
fr="Calcul de l'évolution dynamique d'une structure dont le matériau ou la géométrie ont un comportement non linéaire",
UIinfo={"groupes":("Résolution",)},
REAC_VITE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
),
PROJ_MODAL =FACT(statut='f',max='**',
- MODE_MECA =SIMP(statut='o',typ=mode_meca),
+ MODE_MECA =SIMP(statut='o',typ=(mode_meca,base_modale)),
NB_MODE =SIMP(statut='f',typ='I',defaut= 9999 ),
regles=(PRESENT_PRESENT('MASS_GENE','RIGI_GENE'),),
MASS_GENE =SIMP(statut='f',typ=matr_asse_gene_r),
into=("ELAS","ELAS_VMIS_LINE","ELAS_VMIS_TRAC","ELAS_VMIS_PUIS",
"ELAS_POUTRE_GR","CABLE","ELAS_HYPER")),
ELAS =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- ELAS_VMIS_TRAC =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- ELAS_VMIS_LINE =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- ELAS_VMIS_PUIS =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- ELAS_HYPER =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- ELAS_POUTRE_GR =SIMP(statut='c',typ='I',defaut=3,into=(3,)),
- CABLE =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
DEFORMATION =SIMP(statut='f',typ='TXM',defaut="PETIT" ,into=("PETIT","GREEN","GREEN_GR",) ),
regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),),
TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
EVOL_NOLI =SIMP(statut='f',typ=evol_noli),
NUME_ORDRE =SIMP(statut='f',typ='I'),
INST =SIMP(statut='f',typ='R'),
- PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
+ b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
+ PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
+ b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
+ PRECISION =SIMP(statut='o',typ='R',),),
NUME_DIDI =SIMP(statut='f',typ='I'),
INST_ETAT_INIT =SIMP(statut='f',typ='R'),
),),
EVOL_NOLI =SIMP(statut='f',typ=evol_noli),
NUME_ORDRE =SIMP(statut='f',typ='I'),
INST =SIMP(statut='f',typ='R'),
- PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
+ b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
+ PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
+ b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
+ PRECISION =SIMP(statut='o',typ='R',),),
NUME_DIDI =SIMP(statut='f',typ='I'),
INST_ETAT_INIT =SIMP(statut='f',typ='R'),
),),
regles=(EXCLUS('NUME_INST_INIT','INST_INIT'),
EXCLUS('NUME_INST_FIN','INST_FIN'),),
LIST_INST =SIMP(statut='o',typ=listr8_sdaster),
- EVOLUTION =SIMP(statut='f',typ='TXM',defaut="CHRONOLOGIQUE",
- into=("CHRONOLOGIQUE","RETROGRADE","SANS",) ),
NUME_INST_INIT =SIMP(statut='f',typ='I'),
INST_INIT =SIMP(statut='f',typ='R'),
NUME_INST_FIN =SIMP(statut='f',typ='I'),
INST_FIN =SIMP(statut='f',typ='R'),
- PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3 ),
+ PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-6 ),
# DEBUT DE BLOC POUR LA SUBDIVISION DES PAS DE TEMPS
SUBD_METHODE =SIMP( statut='f',typ='TXM',
into =("AUCUNE","UNIFORME","EXTRAPOLE"),
- defaut="AUCUNE",
+ defaut="UNIFORME",
fr="Méthode de subdivision des pas de temps en cas de non-convergence"
),
b_subd_unif=BLOC(condition = "SUBD_METHODE == 'UNIFORME'",
fr="Coefficient multiplicateur de la 1ère subdivision"),
SUBD_PAS =SIMP(statut='f',typ='I',defaut=4,val_min=2,
fr="Nombre de subdivision d'un pas de temps"),
- SUBD_NIVEAU=SIMP(statut='f',typ='I',val_min=2,
+ SUBD_NIVEAU=SIMP(statut='f',typ='I',val_min=2,defaut=3,
fr="Nombre maximum de niveau de subdivision d'un pas de temps"),
SUBD_PAS_MINI=SIMP(statut='f',typ='R',val_min=0.0,
fr="Pas de temps en dessous duquel on ne subdivise plus"),
fr="% itération autorisée en plus"),
),
# FIN DE BLOC POUR LA SUBDIVISION DES PAS DE TEMPS
- OPTI_LIST_INST =SIMP(statut='f',typ='TXM',into=("INCR_MAXI",),),
- NOM_CHAM =SIMP(statut='f',typ='TXM',),
- NOM_CMP =SIMP(statut='f',typ='TXM',),
- VALE =SIMP(statut='f',typ='R'),
),
#-------------------------------------------------------------------
SCHEMA_TEMPS =FACT(statut='o',
into=("DIFF_CENT","TCHAMWA","NEWMARK","HHT","THETA_METHODE"),),
b_tchamwa = BLOC(condition="SCHEMA=='TCHAMWA'",
PHI =SIMP(statut='f',typ='R',defaut= 1.05),),
+
b_newmark = BLOC(condition="SCHEMA=='NEWMARK'",
- ALPHA =SIMP(statut='f',typ='R',defaut= 0.25),
- DELTA =SIMP(statut='f',typ='R',defaut= 0.5),),
+ BETA =SIMP(statut='f',typ='R',defaut= 0.25),
+ GAMMA =SIMP(statut='f',typ='R',defaut= 0.5),),
+
b_hht = BLOC(condition="SCHEMA=='HHT'",
ALPHA =SIMP(statut='f',typ='R',defaut= -0.3 ),
MODI_EQUI =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"),),),
+
b_theta = BLOC(condition="SCHEMA=='THETA_METHODE'",
THETA =SIMP(statut='f',typ='R',defaut= 1.,val_min=0.5,val_max=1. ),),
+
b_explicit= BLOC(condition="SCHEMA=='TCHAMWA'or SCHEMA=='DIFF_CENT'",
STOP_CFL =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"),),
FORMULATION =SIMP(statut='o',typ='TXM',into=("ACCELERATION",),),),
+
b_implicit= BLOC(condition="SCHEMA!='TCHAMWA'and SCHEMA!='DIFF_CENT'",
- FORMULATION =SIMP(statut='o',max=1,typ='TXM',into=("DEPLACEMENT","VITESSE",),),),
+ FORMULATION =SIMP(statut='o',max=1,typ='TXM',into=("DEPLACEMENT","VITESSE","ACCELERATION"),),),
),
NEWTON =FACT(statut='d',
- REAC_INCR =SIMP(statut='f',typ='I',defaut= 1 ),
+ REAC_INCR =SIMP(statut='f',typ='I',defaut= 1,val_min=0 ),
PREDICTION =SIMP(statut='f',typ='TXM',into=("TANGENTE","ELASTIQUE") ),
MATRICE =SIMP(statut='f',typ='TXM',defaut="TANGENTE",into=("TANGENTE","ELASTIQUE") ),
- REAC_ITER =SIMP(statut='f',typ='I',defaut= 0),
- REAC_ITER_ELAS =SIMP(statut='f',typ='I',defaut=0),
+ REAC_ITER =SIMP(statut='f',typ='I',defaut= 0,val_min=0),
+ REAC_ITER_ELAS =SIMP(statut='f',typ='I',defaut=0,val_min=0),
PAS_MINI_ELAS =SIMP(statut='f',typ='R',defaut=0.0E+0),
),
SOLVEUR =FACT(statut='d',
- METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC","MUMPS","PETSC") ),
+ METHODE=SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC","MUMPS","FETI","PETSC") ),
b_mult_front =BLOC(condition= "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale",
RENUM =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
),
PARTITION =SIMP(statut='f',typ=sd_feti_sdaster),
CHARGE_PROC0_MA =SIMP(statut='f',typ='I',defaut=100,min=0,max=100),
CHARGE_PROC0_SD =SIMP(statut='f',typ='I',defaut=0,min=0),
+ OUT_OF_CORE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
),
b_gcpc =BLOC(condition="METHODE == 'GCPC'",fr="Paramètres de la méthode du gradient conjugué",
PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ),
NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ),
),
b_petsc =BLOC(condition = "METHODE == 'PETSC' ",fr="Paramètres de la méthode PETSC",
- VARIANTE =SIMP(statut='f',typ='TXM',into=("GMRES","BCGS","CR","CG","BICG","CHEBYCHEV",),defaut="GMRES" ),
- PRE_COND =SIMP(statut='f',typ='TXM',into=("ILU","SOR","BJACOBI"),defaut="ILU" ),
+ ALGORITHME =SIMP(statut='f',typ='TXM',into=("BCGS","BICG","CG","CR","GMRES","TFQMR",),defaut="CG" ),
+ PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC","JACOBI","SOR"),defaut="LDLT_INC" ),
+ b_petsc_ilu =BLOC(condition = "PRE_COND == 'LDLT_INC' ",
+ NIVE_REMPLISSAGE = SIMP(statut='f',typ='I',defaut= 0 ),
+ REMPLISSAGE = SIMP(statut='f',typ='R',defaut= 1.0),
+ ),
RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ),
- RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-8),
+ RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6),
NMAX_ITER =SIMP(statut='f',typ='I',defaut= -1 ),
- ),
+ ),
SYME =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
),
#-------------------------------------------------------------------
FLUX_THER_REFE =SIMP(statut='f',typ='R'),
FLUX_HYD1_REFE =SIMP(statut='f',typ='R'),
FLUX_HYD2_REFE =SIMP(statut='f',typ='R'),
- VARI_REFE =SIMP(statut='f',typ='R'),
+ VARI_REFE =SIMP(statut='f',typ='R'),
),
RESI_REFE_RELA =SIMP(statut='f',typ='R'),
RESI_GLOB_MAXI =SIMP(statut='f',typ='R'),
RESI_GLOB_RELA =SIMP(statut='f',typ='R'),
ITER_GLOB_MAXI =SIMP(statut='f',typ='I',defaut=10),
ITER_GLOB_ELAS =SIMP(statut='f',typ='I',defaut=25),
+ TYPE =SIMP(statut='f',typ='TXM',defaut="PIC",into=("PIC","PLATEAU")),
+ b_plateau =BLOC(condition = "TYPE == 'PLATEAU' ",
+
+ PLATEAU_ITER =SIMP(statut='f',typ='I',defaut=3, val_min =2),
+ PLATEAU_RELA =SIMP(statut='f',typ='R',defaut=1E-3),
+ ),
ARRET =SIMP(statut='f',typ='TXM',defaut="OUI"),
+
),
#-------------------------------------------------------------------
OBSERVATION =FACT(statut='f',max='**',
LIST_INST =SIMP(statut='f',typ=listr8_sdaster),
PAS_OBSE =SIMP(statut='f',typ='I'),
LIST_ARCH =SIMP(statut='f',typ=listis_sdaster),
- PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
- CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),),
+ CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
+ b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
+ PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
+ b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
+ PRECISION =SIMP(statut='o',typ='R',),),),
),
AFFICHAGE = FACT(statut='f',max=16,
"LAGR_ECAR","LAGR_INCR","LAGR_ITER",
"MATR_ASSE",
"ITER_DEBO",
- "CTCD_ITER","CTCD_INFO","CTCD_GEOM","CTCD_NOEU",
+ "CTCD_ITER","CTCD_GEOM","CTCD_NOEU",
"CTCC_GEOM","CTCC_FROT","CTCC_CONT",
"SUIV_1","SUIV_2","SUIV_3","SUIV_4",
),
LIST_INST =SIMP(statut='f',typ=(listr8_sdaster) ),
INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),
PAS_ARCH =SIMP(statut='f',typ='I' ),
- PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3),
+ PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-6),
ARCH_ETAT_INIT =SIMP(statut='f',typ='TXM',into=("OUI",)),
NUME_INIT =SIMP(statut='f',typ='I'),
DETR_NUME_SUIV =SIMP(statut='f',typ='TXM',into=("OUI",)),
OPTION =SIMP(statut='f',typ='TXM',defaut="TOUT",into=("TOUT","DIAG") ),
TITRE =SIMP(statut='f',typ='TXM',max='**'),
) ;
-#& MODIF COMMANDE DATE 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE
+#& MODIF COMMANDE DATE 30/09/2008 AUTEUR REZETTE C.REZETTE
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
-# (AT YOUR OPTION) ANY LATER VERSION.
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
-# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
# ======================================================================
# RESPONSABLE BOYERE E.BOYERE
DYNA_TRAN_MODAL=OPER(nom="DYNA_TRAN_MODAL",op= 74,sd_prod=tran_gene,
+" par superposition modale ou par sous structuration",
reentrant='f',
UIinfo={"groupes":("Résolution",)},
- regles=(EXCLUS('AMOR_REDUIT','AMOR_GENE','LIST_AMOR'),
+ regles=(EXCLUS('AMOR_REDUIT','AMOR_GENE','LIST_AMOR'),
PRESENT_ABSENT('MODE_STAT','MODE_CORR'),),
METHODE =SIMP(statut='f',typ='TXM',defaut="EULER",
into=("EULER","NEWMARK","DEVOGE","ADAPT","ITMI") ),
LIST_AMOR =SIMP(statut='f',typ=listr8_sdaster ),
MODE_STAT =SIMP(statut='f',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc) ),
MODE_CORR =SIMP(statut='f',typ=(mult_elas,mode_stat_acce) ,),
-
+
ETAT_INIT =FACT(statut='f',
regles=(EXCLUS('RESU_GENE','DEPL_INIT_GENE'),
EXCLUS('RESU_GENE','VITE_INIT_GENE'),),
RESU_GENE =SIMP(statut='f',typ=tran_gene ),
b_resu_gene =BLOC(condition = "RESU_GENE != None",
INST_INIT =SIMP(statut='f',typ='R' ),
- PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
- CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
+ CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
+ b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
+ PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
+ b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
+ PRECISION =SIMP(statut='o',typ='R',),),
),
DEPL_INIT_GENE =SIMP(statut='f',typ=vect_asse_gene ),
VITE_INIT_GENE =SIMP(statut='f',typ=vect_asse_gene ),
LIST_ARCH =SIMP(statut='f',typ=listis_sdaster ),
PAS_ARCH =SIMP(statut='f',typ='I' ),
),
-
+
NMAX_ITER =SIMP(statut='f',typ='I',defaut= 20 ),
RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
LAMBDA =SIMP(statut='f',typ='R',defaut= 10. ),
-
+
EXCIT =FACT(statut='f',max='**',
regles=(UN_PARMI('FONC_MULT','COEF_MULT','ACCE'),
PRESENT_PRESENT('ACCE','VITE','DEPL'),
INST_INIT =SIMP(statut='f',typ='R' ),
INST_FIN =SIMP(statut='f',typ='R' ),
),
+
+
+ SOLVEUR =FACT(statut='d', fr="Méthode de résolution des systèmes linéaires",
+ METHODE =SIMP(statut='f',typ='TXM',defaut="LDLT",into=("LDLT","MUMPS","MULT_FRONT",) ),
+
+
+ b_ldlt =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT",
+ RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
+ NPREC =SIMP(statut='f',typ='I',defaut=8),
+ STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
+ ),
+
+ b_mult_front =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale",
+ RENUM =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
+ NPREC =SIMP(statut='f',typ='I',defaut=8),
+ STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
+ ),
+
+
+ b_mumps =BLOC(condition = "METHODE == 'MUMPS' ",fr="Paramètres de la méthode MUMPS",
+ TYPE_RESOL =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("NONSYM","SYMGEN","SYMDEF","AUTO")),
+ PRETRAITEMENTS =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO")),
+ RENUM =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("AMD","AMF","PORD","METIS","QAMD","AUTO")),
+ ELIM_LAGR2 =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
+ PCENT_PIVOT =SIMP(statut='f',typ='I',defaut=10,),
+ RESI_RELA =SIMP(statut='f',typ='R',defaut=-1.0,),
+ PARALLELISME =SIMP(statut='f',typ='TXM',defaut="CENTRALISE",
+ into=("CENTRALISE","DISTRIBUE_MC","DISTRIBUE_MD","DISTRIBUE_SD")),
+ PARTITION =SIMP(statut='f',typ=sd_feti_sdaster),
+ CHARGE_PROC0_MA =SIMP(statut='f',typ='I',defaut=100,min=0,max=100),
+ CHARGE_PROC0_SD =SIMP(statut='f',typ='I',defaut=0,min=0),
+ OUT_OF_CORE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
+ ),
+ ),
+
+
TITRE =SIMP(statut='f',typ='TXM',max='**'),
) ;
#& MODIF COMMANDE DATE 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE
CRIT_EXTR =SIMP(statut='f',typ='TXM',defaut="MASS_EFFE_UN",into=("MASS_EFFE_UN","MASS_GENE") ),
),
) ;
-#& MODIF COMMANDE DATE 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE
+#& MODIF COMMANDE DATE 30/09/2008 AUTEUR REZETTE C.REZETTE
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
EXCLUS( 'CHAM_EXCLU','NOM_CHAM' ), ),
CHAM_EXCLU =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
NOM_CHAM =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',into=C_NOM_CHAM_INTO()),
- PRECISION =SIMP(statut='f',typ='R',defaut=1.E-3 ),
- CRITERE =SIMP(statut='f',typ='TXM',into=("RELATIF","ABSOLU"),defaut="RELATIF"),
+ CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
+ b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
+ PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
+ b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
+ PRECISION =SIMP(statut='o',typ='R',),),
LIST_ARCH =SIMP(statut='f',typ=listis_sdaster),
PAS_ARCH =SIMP(statut='f',typ='I'),
NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
TITRE =SIMP(statut='f',typ='TXM',max='**' ),
) ;
-#& MODIF COMMANDE DATE 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE
+#& MODIF COMMANDE DATE 30/09/2008 AUTEUR REZETTE C.REZETTE
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG
PRETRAITEMENTS =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO")),
PCENT_PIVOT =SIMP(statut='f',typ='I',defaut=10,),
ELIM_LAGR2 =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
-
- # mots clés pour solveur GCPC :
- PRE_COND =SIMP(statut='f',typ='TXM',defaut="LDLT_INC",into=("LDLT_INC",) ),
- NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ),
+ OUT_OF_CORE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
+
+ # mots clés pour solveur GCPC et PETSc :
+ PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC","JACOBI","SOR"),defaut="LDLT_INC" ),
+ b_petsc_ilu =BLOC(condition = "PRE_COND == 'LDLT_INC' ",
+ NIVE_REMPLISSAGE = SIMP(statut='f',typ='I',defaut= 0 ),
+ REMPLISSAGE = SIMP(statut='f',typ='R',defaut= 1.0),
+ ),
TITRE =SIMP(statut='f',typ='TXM',max='**'),
INFO =SIMP(statut='f',typ='I',into=(1,2) ),
),
INIT_ALEA =SIMP(statut='f',typ='I'),
)
-#& MODIF COMMANDE DATE 23/08/2004 AUTEUR CIBHHLV L.VIVAN
-# CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
-# (AT YOUR OPTION) ANY LATER VERSION.
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
-# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
-# ======================================================================
-IMPR_CHARGE=PROC(nom="IMPR_CHARGE",op= 158,
- fr="Impression des charges mécaniques de type ddl imposés et relations linéaires entre les ddl",
- UIinfo={"groupes":("Fonction",)},
- UNITE =SIMP(statut='f',typ='I',defaut=30),
- FORMAT =SIMP(statut='f',typ='TXM',defaut="IDEAS",into=("IDEAS",) ),
- VERSION =SIMP(statut='f',typ='I',defaut= 5,into=( 5 ,) ),
- CHARGE =SIMP(statut='o',typ=char_meca,validators=NoRepeat(),max='**', ),
-) ;
#& MODIF COMMANDE DATE 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
),
INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
) ;
-#& MODIF COMMANDE DATE 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE
+#& MODIF COMMANDE DATE 30/09/2008 AUTEUR REZETTE C.REZETTE
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
LIST_FREQ =SIMP(statut='f',typ=listr8_sdaster ),
TOUT_MODE =SIMP(statut='f',typ='TXM',into=("OUI",) ),
NUME_MODE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
- PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
- CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",
- into=("RELATIF","ABSOLU") ),
+ CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
+ b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
+ PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
+ b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
+ PRECISION =SIMP(statut='o',typ='R',),),
TOUT_CMP_GENE =SIMP(statut='f',typ='TXM',into=("OUI","NON") ),
NUME_CMP_GENE =SIMP(statut='f',typ='I',max='**'),
TOUT_CHAM =SIMP(statut='f',typ='TXM',into=("OUI","NON") ),
UNITE = SIMP(statut='f',typ='I',defaut=38),
AJOUT = SIMP(statut='f', typ='TXM', defaut='NON', into=('OUI', 'NON')),
);
-#& MODIF COMMANDE DATE 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE
+#& MODIF COMMANDE DATE 30/09/2008 AUTEUR REZETTE C.REZETTE
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
into=("RESULTAT","IDEAS","ASTER","CASTEM","ENSIGHT","MED","GMSH") ),
b_format_resultat =BLOC(condition="FORMAT=='RESULTAT'",fr="unité logique d'impression au format RESULTAT",
- UNITE =SIMP(statut='f',typ='I',defaut=8),
+ UNITE =SIMP(statut='f',typ='I',defaut=8),
),
b_format_ideas =BLOC(condition="FORMAT=='IDEAS'",fr="unité logique d'impression et version IDEAS",
- UNITE =SIMP(statut='f',typ='I',defaut=30),
+ UNITE =SIMP(statut='f',typ='I',defaut=30),
VERSION =SIMP(statut='f',typ='I',defaut=5,into=(4,5)),
),
b_format_aster =BLOC(condition="FORMAT=='ASTER'",fr="unité logique d'impression au format ASTER",
- UNITE =SIMP(statut='f',typ='I',defaut=26),
+ UNITE =SIMP(statut='f',typ='I',defaut=26),
),
b_format_castem =BLOC(condition="FORMAT=='CASTEM'",fr="unité logique d'impression et version CASTEM",
- UNITE =SIMP(statut='f',typ='I',defaut=37),
+ UNITE =SIMP(statut='f',typ='I',defaut=37),
NIVE_GIBI =SIMP(statut='f',typ='I',defaut=10,into=(3,10)),
),
b_format_ensight =BLOC(condition="FORMAT=='ENSIGHT'",fr="unité logique d'impression au format ENSIGHT",
- UNITE =SIMP(statut='f',typ='I',defaut=31),
+ UNITE =SIMP(statut='f',typ='I',defaut=31),
),
b_format_med =BLOC(condition="FORMAT=='MED'",fr="unité logique d'impression au format MED",
- UNITE =SIMP(statut='f',typ='I',defaut=80),
+ UNITE =SIMP(statut='f',typ='I',defaut=80),
),
b_format_gmsh =BLOC(condition="FORMAT=='GMSH'",fr="unité logique d'impression et version GMSH",
- UNITE =SIMP(statut='f',typ='I',defaut=37),
+ UNITE =SIMP(statut='f',typ='I',defaut=37),
VERSION =SIMP(statut='f',typ='R',defaut=1.2,into=(1.0,1.2)),
),
+ RESTREINT =FACT(statut='f',fr="Réduire le maillage et les champs imprimés sur un ensemble de mailles",max=1,
+ regles=(AU_MOINS_UN('GROUP_MA','MAILLE',),),
+ GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
+ MAILLE =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**'),
+ TOUT_GROUP_MA =SIMP(statut='f',typ='TXM',defaut='NON',into=('OUI','NON'),),
+ GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
+ TOUT_GROUP_NO =SIMP(statut='f',typ='TXM',defaut='NON',into=('OUI','NON'),),
+ MODELE =SIMP(statut='f',typ=modele_sdaster,
+ fr="Nécessaire s'il y a des cham_elem dans la sd_resultat à imprimer."),
+ ),
+
RESU =FACT(statut='o',max='**',
regles=(AU_MOINS_UN('CHAM_GD','RESULTAT','MAILLAGE'),
fr="Liste des paramètres de sensibilité.",
ang="List of sensitivity parameters"),),
- b_partie =BLOC(condition="""(AsType(RESULTAT) in (dyna_harmo, acou_harmo) or
+ b_partie =BLOC(condition="""(AsType(RESULTAT) in (dyna_harmo, acou_harmo) or
AsType(CHAM_GD) != carte_sdaster) and FORMAT in ('CASTEM', 'GMSH', 'MED')""",
PARTIE =SIMP(statut='f',typ='TXM',into=("REEL","IMAG") ),
),
LIST_INST =SIMP(statut='f',typ=listr8_sdaster),
b_acce_reel =BLOC(condition="(FREQ != None)or(LIST_FREQ != None)or(INST != None)or(LIST_INST != None)",
- PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3),
- CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
+ CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
+ b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
+ PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
+ b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
+ PRECISION =SIMP(statut='o',typ='R',),),
),
),
###
TITRE =SIMP(statut='f',typ='TXM',max='**'),
INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
) ;
-#& MODIF COMMANDE DATE 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE
+#& MODIF COMMANDE DATE 30/09/2008 AUTEUR REZETTE C.REZETTE
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2005 EDF R&D WWW.CODE-ASTER.ORG
FONCTION =SIMP(statut='o',typ=fonction_sdaster ),
INST_INIT =SIMP(statut='f',typ='R',fr="Instant initial définissant le début du signal" ),
INST_FIN =SIMP(statut='f',typ='R',fr="Instant final définissant la fin du signal" ),
- CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
- PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3,val_min=0.E+0 ),
+ CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",) ),
+ b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
+ PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,val_min=0.E+0),),
+ b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
+ PRECISION =SIMP(statut='o',typ='R'),),
),
NOCI_SEISME =FACT(statut='f',
regles=(UN_PARMI('FONCTION','SPEC_OSCI',),),
BORNE_INF =SIMP(statut='f',typ='R',defaut= 0.05E+0 ),
BORNE_SUP =SIMP(statut='f',typ='R',defaut= 0.95E+0 ),
b_acce_reel =BLOC(condition="(INST_INIT != None)or(INST_FIN != None)or(FREQ_INIT != None)or(FREQ_FIN != None)",
- PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3,val_min=0.E+0),
- CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
+ CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",) ),
+ b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
+ PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,val_min=0.E+0),),
+ b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
+ PRECISION =SIMP(statut='o',typ='R'),),
),
),
MAX =FACT(statut='f',fr="Extrémas locaux d'une fonction",
FONCTION =SIMP(statut='o',typ=fonction_sdaster),
INST_INIT =SIMP(statut='f',typ='R',fr="Instant initial définissant le début du signal" ),
INST_FIN =SIMP(statut='f',typ='R',fr="Instant final définissant la fin du signal" ),
- CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
- PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3,val_min=0.E+0 ),
+ CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",) ),
+ b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
+ PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,val_min=0.E+0),),
+ b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
+ PRECISION =SIMP(statut='o',typ='R'),),
),
INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
)
PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-6),
INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
) ;
-#& MODIF COMMANDE DATE 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE
+#& MODIF COMMANDE DATE 30/09/2008 AUTEUR REZETTE C.REZETTE
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
INST =SIMP(statut='f',typ='R',fr="Instant associé",ang="Instant" ),
#
b_precision =BLOC(condition="(INST != None)",
- PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3,
- fr="Précision sur le choix de l'instant associé",ang="Accuracy over instant choice" ),
- CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU"),
- fr="Critère de précision sur le choix de l'instant associé",
- ang="Accuracy criterium over instant choice" ),),
+ CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),
+ fr="Critère de précision sur le choix de l'instant associé",
+ ang="Accuracy criterium over instant choice" ),
+ b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
+ PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,
+ fr="Précision sur le choix de l'instant associé",ang="Accuracy over instant choice" ),),
+ b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
+ PRECISION =SIMP(statut='o',typ='R',
+ fr="Précision sur le choix de l'instant associé",ang="Accuracy over instant choice" ),),),
#
NOM_MAIL_MED =SIMP(statut='f',typ='TXM',),
),
TYPE_RESU =SIMP(statut='f',typ='TXM',defaut="TRANS",into=("TRANS","HARMO") ),
TITRE =SIMP(statut='f',typ='TXM',max='**'),
) ;
-#& MODIF COMMANDE DATE 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE
+#& MODIF COMMANDE DATE 30/09/2008 AUTEUR REZETTE C.REZETTE
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
LIST_INST =SIMP(statut='f',typ=listr8_sdaster ),
b_prec_crit =BLOC(condition = "LIST_INST != None or INST != None",
- PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
- CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",
- into=("RELATIF","ABSOLU") ),
- ),
+ CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
+ b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
+ PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
+ b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
+ PRECISION =SIMP(statut='o',typ='R',),),),
TITRE =SIMP(statut='f',typ='TXM',max='**'),
) ;
-#& MODIF COMMANDE DATE 02/06/2008 AUTEUR PELLET J.PELLET
+#& MODIF COMMANDE DATE 30/09/2008 AUTEUR REZETTE C.REZETTE
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
UNITE =SIMP(statut='f',typ='I',defaut= 19 ),
# TEST =SIMP(statut='f',typ='TXM',into=("OUI","NON"),defaut="NON" ),
NOM_CHAM =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',into=l_nom_cham_pas_elga()),
+ PROL_ZERO =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",),
+ fr="Affecte des valeurs nulles la ou le champ n'est pas defini"),
FORMAT_IDEAS =FACT(statut='f',max='**',
regles=(UN_PARMI('POSI_INST','POSI_FREQ'),),
NOM_CHAM =SIMP(statut='o',typ='TXM',into=l_nom_cham_pas_elga()),
POSI_FREQ =SIMP(statut='f',typ='I',min=2,max=2),
NOM_CMP =SIMP(statut='o',typ='TXM',max='**'),),
),
+
+ b_mode =BLOC(condition="((TYPE_RESU=='MODE_MECA')or(TYPE_RESU=='MODE_MECA_C') )and (FORMAT=='IDEAS')",
+ NUME_DDL =SIMP(statut='f',typ=(nume_ddl_sdaster),max=1,
+ fr="Utile en dynamique pour pouvoir imposer la numérotation des cham_no."),
+ ),
+
# 1-3 ensight :
# -------------
b_ensight =BLOC(condition="FORMAT=='ENSIGHT'",
LIST_FREQ =SIMP(statut='f',typ=listr8_sdaster),
b_acce_reel =BLOC(condition="(INST != None)or(LIST_INST != None)or(FREQ != None)or(LIST_FREQ != None)",
- PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3),
- CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
+ CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
+ b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
+ PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
+ b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
+ PRECISION =SIMP(statut='o',typ='R',),),
),
),
) ;
TITRE =SIMP(statut='f',typ='TXM',max='**'),
) ;
-#& MODIF COMMANDE DATE 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE
+#& MODIF COMMANDE DATE 21/10/2008 AUTEUR NISTOR I.NISTOR
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2005 EDF R&D WWW.CODE-ASTER.ORG
# RESPONSABLE ANDRIAM H.ANDRIAMBOLOLONA
MAC_MODES=OPER(nom="MAC_MODES",op= 141,sd_prod=table_sdaster,
- fr="Normalisation de modes propres",
+ fr="Critere orthogonalite de modes propres",
reentrant='n',
- UIinfo={"groupes":("Résolution",)},
- BASE_1 =SIMP(statut='o',typ=(mode_meca,mode_flamb,base_modale) ),
- BASE_2 =SIMP(statut='o',typ=(mode_meca,mode_flamb,base_modale) ),
- MATR_ASSE =SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_depl_c) ),
+ UIinfo={"groupes":("Résolution",)},
+ regles=(PRESENT_PRESENT('IERI','MATR_ASSE'),),
+ BASE_1 =SIMP(statut='o',typ=(mode_meca,mode_meca_c,mode_flamb,base_modale) ),
+ BASE_2 =SIMP(statut='o',typ=(mode_meca,mode_meca_c,mode_flamb,base_modale) ),
+ MATR_ASSE =SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_depl_c) ),
+ IERI =SIMP(statut='f',typ='TXM',into=("OUI",),),
TITRE =SIMP(statut='f',typ='TXM',max='**'),
INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
) ;
-#& MODIF COMMANDE DATE 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE
+#& MODIF COMMANDE DATE 20/10/2008 AUTEUR PELLET J.PELLET
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
#
# 1. Le niveau d'information
#
- INFO = SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
+ INFO = SIMP(statut='f',typ='I',defaut=1,into=(1,2,3,4)),
#
# 2. Version de HOMARD
#
- VERSION_HOMARD = SIMP(statut='f',typ='TXM',defaut="V8_11",
- into=("V8_11", "V8_N", "V8_N_PERSO"),
+ VERSION_HOMARD = SIMP(statut='f',typ='TXM',defaut="V9_5",
+ into=("V9_5", "V9_N", "V9_N_PERSO"),
fr="Version de HOMARD",
ang="HOMARD release"),
#
b_precision = BLOC(condition="(INST != None)",
fr="Choix de la précision du choix de l'instant",
ang="Selection for instant choice",
- PRECISION = SIMP(statut='f',typ='R',defaut=1.0E-3,
- fr="Précision sur le choix de l'instant associé",
- ang="Accuracy over instant choice" ),
- CRITERE = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU"),
+ CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),
fr="Critère de précision sur le choix de l'instant associé",
- ang="Accuracy criterium over instant choice" ),
+ ang="Accuracy criterium over instant choice"),
+ b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
+ PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,
+ fr="Précision relative sur le choix de l'instant associé",
+ ang="Relative accuracy over instant choice"),),
+ b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
+ PRECISION =SIMP(statut='o',typ='R',
+ fr="Précision absolue sur le choix de l'instant associé",
+ ang="Absolute accuracy over instant choice"),),
),
#
),
fr="Choix de la précision du choix de l'instant",
ang="Selection for instant choice",
#
- PRECISION = SIMP(statut='f',typ='R',defaut=1.0E-3,
- fr="Précision sur le choix de l'instant associé",
- ang="Accuracy over instant choice" ),
-#
- CRITERE = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU"),
- fr="Critère de précision sur le choix de l'instant associé",
- ang="Accuracy criterium over instant choice" ),
+ CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),
+ fr="Critère de précision sur le choix de l'instant associé",
+ ang="Accuracy criterium over instant choice"),
+ b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
+ PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,
+ fr="Précision relative sur le choix de l'instant associé",
+ ang="Relative accuracy over instant choice"),),
+ b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
+ PRECISION =SIMP(statut='o',typ='R',
+ fr="Précision absolue sur le choix de l'instant associé",
+ ang="Absolute accuracy over instant choice"),),
#
),
#
ang="Incompatible elements for HOMARD" ),
#
) ;
-#& MODIF COMMANDE DATE 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE
+#& MODIF COMMANDE DATE 30/09/2008 AUTEUR REZETTE C.REZETTE
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
COMP_INCR =FACT(statut='f',
RELATION =SIMP(statut='o',typ='TXM',into=("VMIS_ISOT_TRAC",) ),
- VMIS_ISOT_TRAC =SIMP(statut='c',typ='I',defaut= 2,into=( 2 ,) ),
RESI_INTE_RELA =SIMP(statut='f',typ='R'
,defaut= 1.0E-6),
ITER_INTE_MAXI =SIMP(statut='f',typ='I',defaut= 10 ),
COMP_ELAS =FACT(statut='f',
RELATION =SIMP(statut='o',typ='TXM',into=("ELAS","ELAS_VMIS_TRAC") ),
- ELAS =SIMP(statut='c',typ='I',defaut= 1,into=( 1 ,) ),
- ELAS_VMIS_TRAC =SIMP(statut='c',typ='I',defaut= 1,into=( 1 ,) ),
RESI_INTE_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-6),
ITER_INTE_MAXI =SIMP(statut='f',typ='I',defaut= 10 ),
ITER_INTE_PAS =SIMP(statut='f',typ='I',defaut= 0 ),
),
SOLVEUR =FACT(statut='d',
- METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ),
+ METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC","MUMPS","PETSC") ),
+ b_mumps =BLOC(condition = "METHODE == 'MUMPS' ",fr="Paramètres de la méthode MUMPS",
+ TYPE_RESOL =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("NONSYM","SYMGEN","SYMDEF","AUTO")),
+ PRETRAITEMENTS =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO")),
+ RENUM =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("AMD","AMF","PORD","METIS","QAMD","AUTO")),
+ ELIM_LAGR2 =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
+ PCENT_PIVOT =SIMP(statut='f',typ='I',defaut=10,),
+ RESI_RELA =SIMP(statut='f',typ='R',defaut=1.0E-6,),
+ PARALLELISME =SIMP(statut='f',typ='TXM',defaut="CENTRALISE",
+ into=("CENTRALISE","DISTRIBUE_MC","DISTRIBUE_MD","DISTRIBUE_SD")),
+ PARTITION =SIMP(statut='f',typ=sd_feti_sdaster),
+ CHARGE_PROC0_MA =SIMP(statut='f',typ='I',defaut=100,min=0,max=100),
+ CHARGE_PROC0_SD =SIMP(statut='f',typ='I',defaut=0,min=0),
+ OUT_OF_CORE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
+ ),
+
+ b_petsc =BLOC(condition = "METHODE == 'PETSC' ",fr="Paramètres de la méthode PETSC",
+ ALGORITHME =SIMP(statut='f',typ='TXM',into=("BCGS","BICG","CG","CR","GMRES","TFQMR",),defaut="CG" ),
+ PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC","JACOBI","SOR"),defaut="LDLT_INC" ),
+ b_petsc_ilu =BLOC(condition = "PRE_COND == 'LDLT_INC' ",
+ NIVE_REMPLISSAGE = SIMP(statut='f',typ='I',defaut= 0 ),
+ REMPLISSAGE = SIMP(statut='f',typ='R',defaut= 1.0),
+ ),
+ RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ),
+ RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
+ NMAX_ITER =SIMP(statut='f',typ='I',defaut= -1 ),
+ ),
b_mult_front =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale",
RENUM =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
),
regles=(EXCLUS('NUME_INST_INIT','INST_INIT'),
EXCLUS('NUME_INST_FIN','INST_FIN'),),
LIST_INST =SIMP(statut='o',typ=listr8_sdaster),
- EVOLUTION =SIMP(statut='f',typ='TXM',defaut="CHRONOLOGIQUE",
- into=("CHRONOLOGIQUE","RETROGRADE","SANS",) ),
NUME_INST_INIT =SIMP(statut='f',typ='I'),
INST_INIT =SIMP(statut='f',typ='R'),
NUME_INST_FIN =SIMP(statut='f',typ='I'),
INST_FIN =SIMP(statut='f',typ='R'),
- PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3 ),
+ PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-6 ),
# DEBUT DE BLOC POUR LA SUBDIVISION DES PAS DE TEMPS
SUBD_METHODE =SIMP( statut='f',typ='TXM',
into =("AUCUNE","UNIFORME","EXTRAPOLE"),
INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
) ;
-#& MODIF COMMANDE DATE 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE
+#& MODIF COMMANDE DATE 30/09/2008 AUTEUR REZETTE C.REZETTE
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
COMP_INCR =FACT(statut='f',
RELATION =SIMP(statut='o',typ='TXM',into=("VMIS_ISOT_TRAC",) ),
- VMIS_ISOT_TRAC =SIMP(statut='c',typ='I',defaut= 2,into=( 2 ,) ),
RESI_INTE_RELA =SIMP(statut='f',typ='R',defaut=1.0E-6),
ITER_INTE_MAXI =SIMP(statut='f',typ='I',defaut=10),
ITER_INTE_PAS =SIMP(statut='f',typ='I',defaut=0),
COMP_ELAS =FACT(statut='f',
RELATION =SIMP(statut='o',typ='TXM',into=("ELAS","ELAS_VMIS_TRAC") ),
- ELAS =SIMP(statut='c',typ='I',defaut= 1,into=( 1 ,) ),
- ELAS_VMIS_TRAC =SIMP(statut='c',typ='I',defaut= 1,into=( 1 ,) ),
RESI_INTE_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-6),
ITER_INTE_MAXI =SIMP(statut='f',typ='I',defaut= 10 ),
ITER_INTE_PAS =SIMP(statut='f',typ='I',defaut= 0 ),
),
SOLVEUR =FACT(statut='d',
- METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ),
+ METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC","MUMPS","PETSC") ),
+ b_mumps =BLOC(condition = "METHODE == 'MUMPS' ",fr="Paramètres de la méthode MUMPS",
+ TYPE_RESOL =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("NONSYM","SYMGEN","SYMDEF","AUTO")),
+ PRETRAITEMENTS =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO")),
+ RENUM =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("AMD","AMF","PORD","METIS","QAMD","AUTO")),
+ ELIM_LAGR2 =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
+ PCENT_PIVOT =SIMP(statut='f',typ='I',defaut=10,),
+ RESI_RELA =SIMP(statut='f',typ='R',defaut=1.0E-6,),
+ PARALLELISME =SIMP(statut='f',typ='TXM',defaut="CENTRALISE",
+ into=("CENTRALISE","DISTRIBUE_MC","DISTRIBUE_MD","DISTRIBUE_SD")),
+ PARTITION =SIMP(statut='f',typ=sd_feti_sdaster),
+ CHARGE_PROC0_MA =SIMP(statut='f',typ='I',defaut=100,min=0,max=100),
+ CHARGE_PROC0_SD =SIMP(statut='f',typ='I',defaut=0,min=0),
+ OUT_OF_CORE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
+ ),
+
+ b_petsc =BLOC(condition = "METHODE == 'PETSC' ",fr="Paramètres de la méthode PETSC",
+ ALGORITHME =SIMP(statut='f',typ='TXM',into=("BCGS","BICG","CG","CR","GMRES","TFQMR",),defaut="CG" ),
+ PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC","JACOBI","SOR"),defaut="LDLT_INC" ),
+ b_petsc_ilu =BLOC(condition = "PRE_COND == 'LDLT_INC' ",
+ NIVE_REMPLISSAGE = SIMP(statut='f',typ='I',defaut= 0 ),
+ REMPLISSAGE = SIMP(statut='f',typ='R',defaut= 1.0),
+ ),
+ RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ),
+ RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
+ NMAX_ITER =SIMP(statut='f',typ='I',defaut= -1 ),
+ ),
b_mult_front =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale",
RENUM =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
),
regles=(EXCLUS('NUME_INST_INIT','INST_INIT'),
EXCLUS('NUME_INST_FIN','INST_FIN'),),
LIST_INST =SIMP(statut='o',typ=listr8_sdaster),
- EVOLUTION =SIMP(statut='f',typ='TXM',defaut="CHRONOLOGIQUE",
- into=("CHRONOLOGIQUE","RETROGRADE","SANS",) ),
NUME_INST_INIT =SIMP(statut='f',typ='I'),
INST_INIT =SIMP(statut='f',typ='R'),
NUME_INST_FIN =SIMP(statut='f',typ='I'),
INST_FIN =SIMP(statut='f',typ='R'),
- PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3 ),
+ PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-6 ),
# DEBUT DE BLOC POUR LA SUBDIVISION DES PAS DE TEMPS
SUBD_METHODE =SIMP( statut='f',typ='TXM',
into =("AUCUNE","UNIFORME","EXTRAPOLE"),
INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
) ;
-#& MODIF COMMANDE DATE 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE
+#& MODIF COMMANDE DATE 30/06/2008 AUTEUR FLEJOU J-L.FLEJOU
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2003 EDF R&D WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
-# (AT YOUR OPTION) ANY LATER VERSION.
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
-# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
# ======================================================================
# RESPONSABLE FLEJOU J.L.FLEJOU
MACR_CARA_POUTRE=MACRO(nom="MACR_CARA_POUTRE",op=macr_cara_poutre_ops,sd_prod=table_sdaster,
reentrant='n',
- UIinfo={"groupes":("Modélisation",)},
- fr="Calculer les caractéristiques d'une section transversale de poutre à partir d'un maillage 2D de la section",
- regles=(EXCLUS('SYME_X','GROUP_MA_BORD'),
- EXCLUS('SYME_Y','GROUP_MA_BORD'),),
-
- UNITE_MAILLAGE =SIMP(statut='f',typ='I',defaut= 20 ),
- ORIG_INER =SIMP(statut='f',typ='R',max=3,defaut=(0.E+0,0.E+0),
- fr="Point par rapport auquel sont calculées les inerties"),
- INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
-
- SYME_X =SIMP(statut='f',typ='TXM',into=("OUI",),fr="demi maillage par rapport a x=0"),
- SYME_Y =SIMP(statut='f',typ='TXM',into=("OUI",),fr="demi maillage par rapport a y=0"),
-
- GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**',
- fr="Calcul des caractéristiques équivalentes a plusieurs sections disjointes"),
-
- GROUP_MA_BORD =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**',
- fr="Groupe(s) de mailles linéiques, bord(s) de(s) section(s)"),
-
- b_gma_bord = BLOC( condition = "GROUP_MA_BORD != None",
- fr=" calcul des carac. mecaniques",
- regles=(UN_PARMI('NOEUD','GROUP_NO')),
-
- NOEUD =SIMP(statut='f',typ=no, max='**',
- fr="Simplement pour empecher des pivots nuls le cas echeant. Fournir un noeud quelconque"),
- GROUP_NO =SIMP(statut='f',typ=grno,max='**',
- fr="Simplement pour empecher des pivots nuls le cas echeant. Fournir un noeud quelconque"),
- GROUP_MA_INTE =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**',
- fr="groupes de mailles linéiques bordant des trous dans la section"),
- ),
-
- b_reseau = BLOC( condition ="""(GROUP_MA_BORD != None) and (GROUP_MA != None)""",
- fr=" calcul des coef de cisaillement équivalents a un reseau de poutres",
- regles=(ENSEMBLE('LONGUEUR','LIAISON','MATERIAU') ,),
- LONGUEUR =SIMP(statut='f',typ='R',fr="Longueur du réseau de poutres"),
- MATERIAU =SIMP(statut='f',typ=mater_sdaster,fr="Materiau elastique lineaire du reseau"),
- LIAISON =SIMP(statut='f',typ='TXM',into=("ROTULE","ENCASTREMENT"),
- fr="type de conditions aux limites sur le plancher supérieur" ),
- ),
- )
-#& MODIF COMMANDE DATE 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE
+ UIinfo={"groupes":("Modélisation",)},
+ fr="Calculer les caractéristiques d'une section transversale de poutre à partir d'un maillage 2D de la section",
+ regles=( EXCLUS('SYME_X','GROUP_MA_BORD'),
+ EXCLUS('SYME_Y','GROUP_MA_BORD'),
+ ),
+
+ MAILLAGE =SIMP(statut='f',typ=maillage_sdaster,
+ fr="Nom du concept maillage"),
+ b_maillage=BLOC( condition = "MAILLAGE == None",
+ regles=( PRESENT_PRESENT('FORMAT','UNITE') ),
+ FORMAT =SIMP(statut='f',typ='TXM',defaut="ASTER",into=("ASTER","MED"),
+ fr="Format du fichier"),
+ UNITE =SIMP(statut='f',typ='I',defaut= 20,
+ fr="Unite correspondant au format du fichier maillage"),
+ ),
+
+ ORIG_INER =SIMP(statut='f',typ='R',max=3,defaut=(0.E+0,0.E+0),
+ fr="Point par rapport auquel sont calculées les inerties"),
+ INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
+
+ SYME_X =SIMP(statut='f',typ='TXM',into=("OUI",),
+ fr="demi maillage par rapport a x=0"),
+ SYME_Y =SIMP(statut='f',typ='TXM',into=("OUI",),
+ fr="demi maillage par rapport a y=0"),
+
+ GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**',
+ fr="Calcul des caractéristiques équivalentes a plusieurs sections disjointes"),
+
+ GROUP_MA_BORD =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**',
+ fr="Groupe(s) de mailles linéiques, bord(s) de(s) section(s)"),
+
+ b_gma_bord =BLOC( condition = "GROUP_MA_BORD != None",
+ fr=" calcul des carac. mecaniques",
+ regles=(UN_PARMI('NOEUD','GROUP_NO')),
+ NOEUD =SIMP(statut='f',typ=no, max='**',
+ fr="Simplement pour empecher des pivots nuls le cas echeant. Fournir un noeud quelconque"),
+ GROUP_NO =SIMP(statut='f',typ=grno,max='**',
+ fr="Simplement pour empecher des pivots nuls le cas echeant. Fournir un noeud quelconque"),
+ GROUP_MA_INTE =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**',
+ fr="groupes de mailles linéiques bordant des trous dans la section"),
+ ),
+
+ b_reseau = BLOC( condition ="""(GROUP_MA_BORD != None) and (GROUP_MA != None)""",
+ fr=" calcul des coef de cisaillement équivalents a un reseau de poutres",
+ regles=(ENSEMBLE('LONGUEUR','LIAISON','MATERIAU') ,),
+ LONGUEUR =SIMP(statut='f',typ='R',
+ fr="Longueur du réseau de poutres"),
+ MATERIAU =SIMP(statut='f',typ=mater_sdaster,
+ fr="Materiau elastique lineaire du reseau"),
+ LIAISON =SIMP(statut='f',typ='TXM',into=("ROTULE","ENCASTREMENT"),
+ fr="type de conditions aux limites sur le plancher supérieur" ),
+ ),
+)
+#& MODIF COMMANDE DATE 30/09/2008 AUTEUR REZETTE C.REZETTE
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG
LIST_ORDRE =SIMP(statut='f',typ=listis_sdaster),
INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
LIST_INST =SIMP(statut='f',typ=listr8_sdaster),
- PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3),
- CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",) ),
+ CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
+ b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
+ PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
+ b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
+ PRECISION =SIMP(statut='o',typ='R',),),
)
#& MODIF COMMANDE DATE 06/05/2008 AUTEUR CORUS M.CORUS
# CONFIGURATION MANAGEMENT OF EDF VERSION
VECT_ASSE_GENE =SIMP(statut='o',typ=vect_asse_gene ),
),
) ;
-#& MODIF COMMANDE DATE 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE
+#& MODIF COMMANDE DATE 21/10/2008 AUTEUR NISTOR I.NISTOR
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
),
MASS_MECA =FACT(statut='f',
),
+ AMOR_MECA =FACT(statut='f',
+ ),
CAS_CHARGE =FACT(statut='f',max='**',
NOM_CAS =SIMP(statut='o',typ='TXM'),
SUIV =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
),
#
);
-#& MODIF COMMANDE DATE 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE
+#& MODIF COMMANDE DATE 20/10/2008 AUTEUR PELLET J.PELLET
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
#
# 1. Le niveau d'information
#
- INFO = SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
+ INFO = SIMP(statut='f',typ='I',defaut=1,into=(1,2,3,4)),
#
# 2. Version de HOMARD
#
- VERSION_HOMARD = SIMP(statut='f',typ='TXM',defaut="V8_11",
- into=("V8_11", "V8_N", "V8_N_PERSO"),
+ VERSION_HOMARD = SIMP(statut='f',typ='TXM',defaut="V9_5",
+ into=("V9_5", "V9_N", "V9_N_PERSO"),
fr="Version de HOMARD",
ang="HOMARD release"),
#
fr="Information complémentaire sur la frontière",
ang="Further information about boundary",
#
- GROUP_MA = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**',
- fr="Groupes de mailles définissant la frontière",
- ang="Mesh groups which define the boundary" ),
+ GROUP_MA_FRONT = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**',
+ fr="Groupes de mailles définissant la frontière",
+ ang="Mesh groups which define the boundary" ),
#
) ,
#
fr="Acceptation d'éléments incompatibles avec HOMARD",
ang="Incompatible elements for HOMARD" ),
) ;
-#& MODIF COMMANDE DATE 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE
+#& MODIF COMMANDE DATE 30/09/2008 AUTEUR REZETTE C.REZETTE
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG
LIST_ORDRE =SIMP(statut='f',typ=listis_sdaster),
INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
LIST_INST =SIMP(statut='f',typ=listr8_sdaster),
- PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-6),
- CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")),
+ CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
+ b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
+ PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
+ b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
+ PRECISION =SIMP(statut='o',typ='R',),),
),
# extraction des résultats
) ;
-#& MODIF COMMANDE DATE 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE
-#MACRO_BASCULE_SCHEMA = MACRO(nom="MACRO_BASCULE_SCHEMA", op=macro_bascule_schema_ops, sd_prod=evol_noli,reentrant='f',
-
-
#& MODIF COMMANDE DATE 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2)),
TITRE =SIMP(statut='f',typ='TXM',max='**'),
) ;
-#& MODIF COMMANDE DATE 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE
+#& MODIF COMMANDE DATE 21/10/2008 AUTEUR NISTOR I.NISTOR
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2006 EDF R&D WWW.CODE-ASTER.ORG
def macro_expans_prod(self, MODELE_MESURE, RESU_NX, RESU_EX, RESU_ET, RESU_RD, **args):
RESU_EXP = MODELE_MESURE['MESURE']
- for res in (RESU_NX, RESU_EX, RESU_ET, RESU_RD):
+ self.type_sdprod(RESU_NX, mode_meca)
+ for res in (RESU_EX, RESU_ET, RESU_RD):
if isinstance(res, CO):
if AsType(RESU_EXP) == mode_meca:
self.type_sdprod(res, mode_meca)
MODELE = SIMP(statut='o',typ=(modele_sdaster) ),
BASE = SIMP(statut='o',typ=(mode_meca,base_modale,) ),
NUME_MODE = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**',defaut=0),
+ NUME_ORDRE = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**',defaut=0),
+
),
MODELE_MESURE = FACT(statut='o',
MODELE = SIMP(statut='o',typ=(modele_sdaster) ),
NOM_CHAM = SIMP(statut='f',typ='TXM',defaut="DEPL",
into=("DEPL","VITE","ACCE","SIEF_NOEU","EPSI_NOEU_DEPL",) ),
NUME_MODE = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**',defaut=0),
+ NUME_ORDRE = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**',defaut=0),
+
),
NUME_DDL = SIMP(statut='f',typ=(nume_ddl_sdaster)),
RESU_NX = SIMP(statut='f',typ=(mode_meca,dyna_harmo, CO)),
),
),
)
-#& MODIF COMMANDE DATE 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE
+#& MODIF COMMANDE DATE 30/09/2008 AUTEUR REZETTE C.REZETTE
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
VECTEUR =SIMP(statut='o',typ=CO),
),
SOLVEUR =FACT(statut='d',
- METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ),
+ METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC","MUMPS","PETSC") ),
b_mult_front =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale",
RENUM =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
),
RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ),
),
+ b_mumps =BLOC(condition = "METHODE == 'MUMPS' ",fr="Paramètres de la méthode MUMPS",
+ TYPE_RESOL =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("NONSYM","SYMGEN","SYMDEF","AUTO")),
+ PRETRAITEMENTS =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO")),
+ RENUM =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("AMD","AMF","PORD","METIS","QAMD","AUTO")),
+ ELIM_LAGR2 =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
+ PCENT_PIVOT =SIMP(statut='f',typ='I',defaut=10,),
+ RESI_RELA =SIMP(statut='f',typ='R',defaut=1.0E-6,),
+ PARALLELISME =SIMP(statut='f',typ='TXM',defaut="CENTRALISE",
+ into=("CENTRALISE","DISTRIBUE_MC","DISTRIBUE_MD","DISTRIBUE_SD")),
+ PARTITION =SIMP(statut='f',typ=sd_feti_sdaster),
+ CHARGE_PROC0_MA =SIMP(statut='f',typ='I',defaut=100,min=0,max=100),
+ CHARGE_PROC0_SD =SIMP(statut='f',typ='I',defaut=0,min=0),
+ OUT_OF_CORE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
+ ),
+
+ b_petsc =BLOC(condition = "METHODE == 'PETSC' ",fr="Paramètres de la méthode PETSC",
+ ALGORITHME =SIMP(statut='f',typ='TXM',into=("BCGS","BICG","CG","CR","GMRES","TFQMR",),defaut="CG" ),
+ PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC","JACOBI","SOR"),defaut="LDLT_INC" ),
+ b_petsc_ilu =BLOC(condition = "PRE_COND == 'LDLT_INC' ",
+ NIVE_REMPLISSAGE = SIMP(statut='f',typ='I',defaut= 0 ),
+ REMPLISSAGE = SIMP(statut='f',typ='R',defaut= 1.0),
+ ),
+ RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ),
+ RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
+ NMAX_ITER =SIMP(statut='f',typ='I',defaut= -1 ),
+ ),
),
INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
NOEUD_DOUBLE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
AVEC_MODE_STAT =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
)
-#& MODIF COMMANDE DATE 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE
+#& MODIF COMMANDE DATE 17/11/2008 AUTEUR DELMAS J.DELMAS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
if opti in ( "RIGI_MECA","RIGI_FLUI_STRU","RIGI_MECA_LAGR" ,
"MASS_MECA" , "MASS_FLUI_STRU" ,"RIGI_GEOM" ,"RIGI_ROTA",
- "AMOR_MECA","IMPE_MECA","MASS_ID_MDEP_R","MASS_ID_MDNS_R",
+ "AMOR_MECA","IMPE_MECA",
"ONDE_FLUI","MASS_MECA_DIAG","MECA_GYRO" ) : t=matr_asse_depl_r
if opti in ( "RIGI_ACOU","MASS_ACOU","AMOR_ACOU",) : t=matr_asse_pres_c
if opti in ( "RIGI_THER","MASS_THER","RIGI_THER_CONV" ,
- "RIGI_THER_CONV_D","MASS_ID_MTEM_R","MASS_ID_MTNS_R",) : t=matr_asse_temp_r
+ "RIGI_THER_CONV_D",) : t=matr_asse_temp_r
if opti == "RIGI_MECA_HYST" : t= matr_asse_depl_c
CHAR_CINE =SIMP(statut='f',typ=(char_cine_meca,char_cine_ther,char_cine_acou) ),
NUME_DDL =SIMP(statut='o',typ=(nume_ddl_sdaster,CO)),
SOLVEUR =FACT(statut='d',
- METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC","MUMPS") ),
+ METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC","MUMPS","PETSC") ),
b_mult_front =BLOC(condition="METHODE=='MULT_FRONT'",fr="Paramètres associés à la méthode multifrontale",
RENUM =SIMP(statut='f',typ='TXM',into=("MD","MDA","METIS"),defaut="METIS" ),
),
b_ldlt =BLOC(condition="METHODE=='LDLT'",fr="Paramètres associés à la méthode LDLT",
RENUM =SIMP(statut='f',typ='TXM',into=("RCMK","SANS"),defaut="RCMK" ),
),
- b_mumps =BLOC(condition = "METHODE == 'MUMPS' ",fr="Paramètres de la méthode MUMPS",
- RENUM =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("AMD","AMF","PORD","METIS","QAMD","AUTO")),
+ b_mumps =BLOC(condition = "METHODE == 'MUMPS' ",fr="Paramètres de la méthode MUMPS",
+ RENUM =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("AMD","AMF","PORD","METIS","QAMD","AUTO")),
+ OUT_OF_CORE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
),
b_gcpc =BLOC(condition="METHODE=='GCPC'",fr="Paramètres associés à la méthode gradient conjugué",
RENUM =SIMP(statut='f',typ='TXM',into=("RCMK","SANS"),defaut="RCMK" ),
),
+ b_petsc =BLOC(condition = "METHODE == 'PETSC'",fr="Paramètres de la méthode PETSC",
+ RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ),
+ ),
),
MATR_ASSE =FACT(statut='o',max='**',
"ONDE_FLUI","RIGI_FLUI_STRU","MASS_FLUI_STRU",
"RIGI_ROTA","RIGI_GEOM","RIGI_MECA_LAGR","MECA_GYRO",
"RIGI_THER","MASS_THER",
- "RIGI_ACOU","MASS_ACOU","AMOR_ACOU",
- "MASS_ID_MTEM_R","MASS_ID_MTNS_R","MASS_ID_MDEP_R","MASS_ID_MDNS_R",)
+ "RIGI_ACOU","MASS_ACOU","AMOR_ACOU",)
),
b_rigi_meca = BLOC( condition = "OPTION=='RIGI_MECA'",
),
INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
) ;
-#& MODIF COMMANDE DATE 03/06/2008 AUTEUR BODEL C.BODEL
-# CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2006 EDF R&D WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
-# (AT YOUR OPTION) ANY LATER VERSION.
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
-# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
-# ======================================================================
-# RESPONSABLE BODEL C.BODEL
-
-from Macro.macro_visu_meidee_ops import macro_visu_meidee_ops
-
-def macro_visu_meidee_prod(self,RESU_FLUDELA,RESU_TURBULENT,RESU_MODIFSTRU,**args):
-
- if RESU_FLUDELA != None:
- for res in RESU_FLUDELA:
- self.type_sdprod(res['TABLE'],table_sdaster)
- if RESU_TURBULENT != None:
- for res in RESU_TURBULENT:
- self.type_sdprod(res['TABLE'],table_fonction)
-
- MTYPES = {
- 'MODELE' : modele_sdaster,
- 'MODE_MECA' : mode_meca,
- 'NUME_DDL' : nume_ddl_sdaster,
- 'MAILLAGE' : maillage_sdaster,
- 'MASS_MECA' : matr_asse_depl_r,
- 'RIGI_MECA' : matr_asse_depl_r,
- 'AMOR_MECA' : matr_asse_depl_r,
- 'MACR_ELEM' : macr_elem_stat,
- 'PROJ_MESU' : mode_gene,
- }
- if RESU_MODIFSTRU != None:
- for res in RESU_MODIFSTRU:
- for mc, typ in MTYPES.items():
- if res[mc]:
- self.type_sdprod(res[mc], typ)
- return None
-
-
-MACRO_VISU_MEIDEE=MACRO(nom = 'MACRO_VISU_MEIDEE',
- op = macro_visu_meidee_ops,
- sd_prod = macro_visu_meidee_prod,
- reentrant = 'n',
- UIinfo = {"groupes":("Outils métier",)},
- fr = "Outil de post-traitement interactif pour Meidee ",
- UNITE_FIMEN = SIMP( statut='f',typ='I',max='**' ),
- INTERACTIF = SIMP( statut='f',typ='TXM',into=('OUI','NON'),defaut='OUI' ),
- RESU_FLUDELA = FACT( statut='f',max='**',
- TABLE = SIMP(statut='f', typ=CO),
- ),
- RESU_TURBULENT = FACT( statut='f',max='**',
- TABLE = SIMP(statut='f', typ=CO),
- ),
- RESU_MODIFSTRU = FACT( statut='f', max=1,
- MODELE=SIMP(statut='f',typ=CO,defaut=None),
- MODE_MECA=SIMP(statut='f',typ=CO,defaut=None),
- MAILLAGE=SIMP(statut='f',typ=CO,defaut=None),
- NUME_DDL=SIMP(statut='f',typ=CO,defaut=None),
- MASS_MECA=SIMP(statut='f',typ=CO,defaut=None),
- RIGI_MECA=SIMP(statut='f',typ=CO,defaut=None),
- AMOR_MECA=SIMP(statut='f',typ=CO,defaut=None),
- MACR_ELEM=SIMP(statut='f',typ=CO,defaut=None),
- PROJ_MESU=SIMP(statut='f',typ=CO,defaut=None),
- ),
- UNITE_RESU = SIMP( statut='f',typ='I'),
-
- b_inter = BLOC( condition="INTERACTIF=='NON'",
-
- EXPANSION = FACT( statut='f',max='**',
- CALCUL = SIMP(statut='o',typ=mode_meca),
- NUME_MODE_CALCUL = SIMP(statut='f',typ='I',validators=NoRepeat(),
- max='**',defaut=0),
- MESURE = SIMP(statut='o',typ=mode_meca),
- NUME_MODE_MESURE = SIMP(statut='f',typ='I',validators=NoRepeat(),
- max='**',defaut=0),
- RESOLUTION = SIMP(statut='f',typ='TXM',defaut='SVD',into=('SVD','LU')),
- b_reso = BLOC(condition = "RESOLUTION=='SVD'",
- EPS = SIMP(statut='f',typ='R', defaut = 0.)
- )
- ),
- FLUIDE_ELASTIQUE = FACT( statut='f', max='**',
- MESURE1 = SIMP(statut='o',typ=mode_meca),
- MESURE2 = SIMP(statut='o',typ=mode_meca),
- MESURE3 = SIMP(statut='o',typ=mode_meca),
- RESU_EXPANSION = SIMP(statut='f',typ='TXM',defaut='NON',into=('OUI','NON')),
- b_base = BLOC(condition = "RESU_EXPANSION=='NON'",
- BASE = SIMP(statut='o',typ=mode_meca),
- )
- ),
- TURBULENT = FACT( statut='f',max='**',
- ALPHA = SIMP(statut='f',typ='R', defaut = 0.),
- EPS = SIMP(statut='f',typ='R', defaut = 0.),
- OBSERVABILITE = SIMP(statut='o',typ=(mode_meca, base_modale)),
- COMMANDABILITE = SIMP(statut='o',typ=(mode_meca, base_modale)),
- INTE_SPEC = SIMP(statut='o',typ=table_sdaster),
- RESU_EXPANSION = SIMP(statut='f',typ='TXM',defaut='NON',into=('OUI','NON')),
- b_base = BLOC(condition = "RESU_EXPANSION=='NON'",
- BASE = SIMP(statut='o',typ=mode_meca),
- ),
- ),
- MODIFSTRUCT = FACT( statut='f', max=1,
- MESURE = SIMP(statut='o', typ=mode_meca),
- MODELE_SUP = SIMP(statut='o', typ=modele_sdaster),
- MATR_RIGI = SIMP(statut='o', typ=matr_asse_depl_r),
- RESOLUTION = SIMP(statut='o', typ='TXM',
- into=('ES', 'LMME')),
- b_resol = BLOC( condition = "RESOLUTION=='LMME'",
- MATR_MASS = SIMP(statut='o', typ=matr_asse_depl_r),
- ),
- NUME_MODE_MESU = SIMP(statut='o', typ='I',max='**'),
- NUME_MODE_CALCUL = SIMP(statut='o', typ='I',max='**'),
- MAILLE_MODIF = SIMP(statut='o', typ=maillage_sdaster),
- MODELE_MODIF = SIMP(statut='o', typ=modele_sdaster),
- ),
-
- # Si on realise une modification structurale, on donne les DDL capteurs et interface
- b_inter = BLOC( condition="MODIFSTRUCT!=None",
- GROUP_NO_CAPTEURS = FACT( statut='f', max='**',
- GROUP_NO = SIMP(statut='f',typ='TXM', max='**'),
- NOM_CMP = SIMP(statut='f',typ='TXM', max='**'),
- ),
- GROUP_NO_EXTERIEUR = FACT( statut='f', max='**',
- GROUP_NO = SIMP(statut='f',typ='TXM', max='**'),
- NOM_CMP = SIMP(statut='f',typ='TXM', max='**'),
- ),
- ),
- ),
- );
-
#& MODIF COMMANDE DATE 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
ELEMENT =FACT(statut='f',),
) ;
-#& MODIF COMMANDE DATE 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE
+#& MODIF COMMANDE DATE 30/09/2008 AUTEUR REZETTE C.REZETTE
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
RENUM =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("AMD","AMF","PORD","METIS","QAMD","AUTO")),
ELIM_LAGR2 =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
PCENT_PIVOT =SIMP(statut='f',typ='I',defaut=10,),
- RESI_RELA =SIMP(statut='f',typ='R',defaut=-1.0,),
+ RESI_RELA =SIMP(statut='f',typ='R',defaut=1.0E-6,),
PARALLELISME =SIMP(statut='f',typ='TXM',defaut="CENTRALISE",
into=("CENTRALISE","DISTRIBUE_MC","DISTRIBUE_MD","DISTRIBUE_SD")),
PARTITION =SIMP(statut='f',typ=sd_feti_sdaster),
CHARGE_PROC0_MA =SIMP(statut='f',typ='I',defaut=100,min=0,max=100),
CHARGE_PROC0_SD =SIMP(statut='f',typ='I',defaut=0,min=0),
+ OUT_OF_CORE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
),
b_petsc =BLOC(condition = "METHODE == 'PETSC' ",fr="Paramètres de la méthode PETSC",
- VARIANTE =SIMP(statut='f',typ='TXM',into=("GMRES","BCGS","CR","CG","BICG","CHEBYCHEV",),defaut="GMRES" ),
- PRE_COND =SIMP(statut='f',typ='TXM',into=("ILU","SOR","BJACOBI"),defaut="ILU" ),
+ ALGORITHME =SIMP(statut='f',typ='TXM',into=("BCGS","BICG","CG","CR","GMRES","TFQMR",),defaut="CG" ),
+ PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC","JACOBI","SOR"),defaut="LDLT_INC" ),
+ b_petsc_ilu =BLOC(condition = "PRE_COND == 'LDLT_INC' ",
+ NIVE_REMPLISSAGE = SIMP(statut='f',typ='I',defaut= 0 ),
+ REMPLISSAGE = SIMP(statut='f',typ='R',defaut= 1.0),
+ ),
RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ),
- RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-8),
+ RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
NMAX_ITER =SIMP(statut='f',typ='I',defaut= -1 ),
),
),
INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
TITRE =SIMP(statut='f',typ='TXM',max='**'),
) ;
-#& MODIF COMMANDE DATE 05/05/2008 AUTEUR NISTOR I.NISTOR
+#& MODIF COMMANDE DATE 30/09/2008 AUTEUR REZETTE C.REZETTE
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
-# (AT YOUR OPTION) ANY LATER VERSION.
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
-# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
# ======================================================================
# RESPONSABLE NISTOR I.NISTOR
regles=(UN_PARMI('TOUT_CMP','AVEC_CMP','SANS_CMP'),),
TOUT_CMP =SIMP(statut='f',typ='TXM',into=("OUI",) ),
AVEC_CMP =SIMP(statut='f',typ='TXM',max='**'),
- SANS_CMP =SIMP(statut='f',typ='TXM',max='**'),
- ),
+ SANS_CMP =SIMP(statut='f',typ='TXM',max='**'),
+ ),
+ ),
+
+
+ SOLVEUR =FACT(statut='d', fr="Méthode de résolution des systèmes linéaires",
+ METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC","MUMPS","PETSC") ),
+
+
+ b_ldlt =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT",
+ RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
+ NPREC =SIMP(statut='f',typ='I',defaut=8),
+ STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
+ ),
+
+ b_mult_front =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale",
+ RENUM =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
+ NPREC =SIMP(statut='f',typ='I',defaut=8),
+ STOP_SINGULIER =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
+ ),
+
+
+ b_mumps =BLOC(condition = "METHODE == 'MUMPS' ",fr="Paramètres de la méthode MUMPS",
+ TYPE_RESOL =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("NONSYM","SYMGEN","SYMDEF","AUTO")),
+ PRETRAITEMENTS =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO")),
+ RENUM =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("AMD","AMF","PORD","METIS","QAMD","AUTO")),
+ ELIM_LAGR2 =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
+ PCENT_PIVOT =SIMP(statut='f',typ='I',defaut=10,),
+ RESI_RELA =SIMP(statut='f',typ='R',defaut=-1.0,),
+ PARALLELISME =SIMP(statut='f',typ='TXM',defaut="CENTRALISE",
+ into=("CENTRALISE","DISTRIBUE_MC","DISTRIBUE_MD","DISTRIBUE_SD")),
+ PARTITION =SIMP(statut='f',typ=sd_feti_sdaster),
+ CHARGE_PROC0_MA =SIMP(statut='f',typ='I',defaut=100,min=0,max=100),
+ CHARGE_PROC0_SD =SIMP(statut='f',typ='I',defaut=0,min=0),
+ OUT_OF_CORE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
+ ),
+
+ b_petsc =BLOC(condition = "METHODE == 'PETSC' ",fr="Paramètres de la méthode PETSC",
+ ALGORITHME =SIMP(statut='f',typ='TXM',into=("BCGS","BICG","CG","CR","GMRES","TFQMR",),defaut="CG" ),
+ PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC","JACOBI","SOR"),defaut="LDLT_INC" ),
+ b_petsc_ilu =BLOC(condition = "PRE_COND == 'LDLT_INC' ",
+ NIVE_REMPLISSAGE = SIMP(statut='f',typ='I',defaut= 0 ),
+ REMPLISSAGE = SIMP(statut='f',typ='R',defaut= 1.0),
+ ),
+ RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ),
+ RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
+ NMAX_ITER =SIMP(statut='f',typ='I',defaut= -1 ),
+ ),
+
+ b_gcpc =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué",
+ PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ),
+ NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ),
+ RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ),
+ RESI_RELA =SIMP(statut='f',typ='R',defaut=1.E-6),
+ NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ),
+ ),
),
+
+
+
TITRE =SIMP(statut='f',typ='TXM',max='**'),
INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ,) ),
) ;
INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
TITRE =SIMP(statut='f',typ='TXM',max='**'),
) ;
-#& MODIF COMMANDE DATE 06/05/2008 AUTEUR KHAM M.KHAM
+#& MODIF COMMANDE DATE 14/10/2008 AUTEUR REZETTE C.REZETTE
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
-# (AT YOUR OPTION) ANY LATER VERSION.
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
-# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
# ======================================================================
# RESPONSABLE PELLET J.PELLET
MODI_MAILLAGE=OPER(nom="MODI_MAILLAGE",op= 154,sd_prod=maillage_sdaster,
UIinfo={"groupes":("Maillage",)},
regles=(AU_MOINS_UN('ORIE_FISSURE','DEFORME','EQUE_PIQUA','ORIE_PEAU_2D',
'ORIE_PEAU_3D','ORIE_NORM_COQUE','PLAQ_TUBE','MODI_MAILLE',
- 'TRANSLATION','ROTATION','MODI_BASE','ECHELLE','ORIE_SHB8','SYMETRIE',
+ 'TRANSLATION','ROTATION','MODI_BASE','ECHELLE','ORIE_SHB','SYMETRIE',
'ORIE_LIGNE',),
PRESENT_ABSENT('ORIE_FISSURE','DEFORME','EQUE_PIQUA','ORIE_PEAU_2D',
'ORIE_PEAU_3D','ORIE_NORM_COQUE','PLAQ_TUBE','MODI_MAILLE',
DEFORME =FACT(statut='f',
OPTION =SIMP(statut='o',typ='TXM',into=("TRAN","TRAN_APPUI") ),
DEPL =SIMP(statut='o',typ=cham_no_sdaster ),
- b_deform =BLOC(condition = "OPTION=='TRAN_APPUI'",
+ b_deform =BLOC(condition = "OPTION=='TRAN_APPUI'",
GROUP_NO_APPUI = SIMP(statut='o',typ=grno,validators=NoRepeat(),max='**' ),
GROUP_NO_STRU = SIMP(statut='o',typ=grno,validators=NoRepeat(),max='**' ),),
),
),
ORIE_PEAU_2D =FACT(statut='f',max='**',
GROUP_MA =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'),
+ GROUP_MA_SURF =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
),
ORIE_PEAU_3D =FACT(statut='f',max='**',
GROUP_MA =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'),
GROUP_MA_VOLU =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
),
- ORIE_SHB8 =FACT(statut='f',max=1,
+ ORIE_SHB =FACT(statut='f',max=1,
GROUP_MA =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'),
),
ORIE_NORM_COQUE =FACT(statut='f',max='**',
- regles=(EXCLUS('NOEUD','GROUP_NO'),
- PRESENT_PRESENT('NOEUD','VECT_NORM'),
- PRESENT_PRESENT('GROUP_NO','VECT_NORM'),),
GROUP_MA =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'),
VECT_NORM =SIMP(statut='f',typ='R',max=3),
- NOEUD =SIMP(statut='f',typ=no),
- GROUP_NO =SIMP(statut='f',typ=grno),
+ b_vect_norm =BLOC(condition = "VECT_NORM != None",
+ regles=UN_PARMI('NOEUD','GROUP_NO'),
+ NOEUD =SIMP(statut='f',typ=no),
+ GROUP_NO =SIMP(statut='f',typ=grno),
+ ),
),
ORIE_LIGNE =FACT(statut='f',max='**',
- regles=(EXCLUS('NOEUD','GROUP_NO'),
- PRESENT_PRESENT('NOEUD','VECT_TANG'),
- PRESENT_PRESENT('GROUP_NO','VECT_TANG'),),
GROUP_MA =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'),
VECT_TANG =SIMP(statut='f',typ='R',max=3),
- NOEUD =SIMP(statut='f',typ=no),
- GROUP_NO =SIMP(statut='f',typ=grno),
+ b_vect_tang =BLOC(condition = "VECT_TANG != None",
+ regles=UN_PARMI('NOEUD','GROUP_NO'),
+ NOEUD =SIMP(statut='f',typ=no),
+ GROUP_NO =SIMP(statut='f',typ=grno),
+ ),
),
PLAQ_TUBE =FACT(statut='f',
DEXT =SIMP(statut='o',typ='R' ),
VECT_X =SIMP(statut='o',typ='R',min=2,max=3),
VECT_Y =SIMP(statut='f',typ='R',min=2,max=3),
),
- ECHELLE =SIMP(statut='f',typ='R',),
+ ECHELLE =SIMP(statut='f',typ='R',),
TRANSLATION =SIMP(statut='f',typ='R',min=2,max=3),
ROTATION =FACT(statut='f',max='**',
POIN_1 =SIMP(statut='o',typ='R',min=2,max=3),
V_USUR_OBST =SIMP(statut='f',typ='R',max='**'),
INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
) ;
-#& MODIF COMMANDE DATE 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE
+#& MODIF COMMANDE DATE 30/09/2008 AUTEUR REZETTE C.REZETTE
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
LIST_INST =SIMP(statut='f',typ=listr8_sdaster),
LIST_FREQ =SIMP(statut='f',typ=listr8_sdaster),
- PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3 ),
CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
+ b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
+ PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
+ b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
+ PRECISION =SIMP(statut='o',typ='R',),),
MODI_CHAM =FACT(statut='o',max='**',
GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
TITRE =SIMP(statut='f',typ='TXM',max='**'),
INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
) ;
-#& MODIF COMMANDE DATE 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE
+#& MODIF COMMANDE DATE 08/08/2008 AUTEUR DESOZA T.DESOZA
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
b_modele =BLOC(condition = "MODELE != None",
CHARGE =SIMP(statut='f',validators=NoRepeat(),max='**',typ=(char_meca,char_ther,char_acou, ),),
),
- METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC","MUMPS") ),
+ METHODE =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC","PETSC","MUMPS") ),
b_mult_front =BLOC(condition="METHODE=='MULT_FRONT'",fr="paramètres associés à la méthode multifrontale",
RENUM =SIMP(statut='f',typ='TXM',into=("MD","MDA","METIS"),defaut="METIS" ),
),
b_mumps =BLOC(condition = "METHODE == 'MUMPS' ",fr="Paramètres de la méthode MUMPS",
RENUM =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("AMD","AMF","PORD","METIS","QAMD","AUTO")),
),
- b_gcpc =BLOC(condition="METHODE=='GCPC'",fr="paramètres associés à la méthode gradient conjugué",
+ b_gcpc =BLOC(condition="METHODE=='GCPC' or METHODE=='PETSC'",fr="paramètres associés à la GCPC ou PETSc",
RENUM =SIMP(statut='f',typ='TXM',into=("RCMK","SANS"),defaut="RCMK" ),
),
INFO =SIMP(statut='f',typ='I',into=(1,2)),
INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
TITRE =SIMP(statut='f',typ='TXM',max='**' ),
) ;
-#& MODIF COMMANDE DATE 20/05/2008 AUTEUR MAHFOUZ D.MAHFOUZ
+#& MODIF COMMANDE DATE 03/11/2008 AUTEUR PELLET J.PELLET
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
-# (AT YOUR OPTION) ANY LATER VERSION.
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
-# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
# ======================================================================
# RESPONSABLE DESROCHES X.DESROCHES
POST_ELEM=OPER(nom="POST_ELEM",op=107,sd_prod=table_sdaster,reentrant='n',
CHAM_GD = SIMP(statut='f',typ=(cham_no_sdaster,cham_elem) ),
RESULTAT = SIMP(statut='f',typ=(mode_meca,evol_elas,evol_noli,mult_elas,
fourier_elas,dyna_trans) ),
- PRECISION = SIMP(statut='f',typ='R',defaut= 1.0E-3),
- CRITERE = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")),
+ CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
+ b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
+ PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
+ b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
+ PRECISION =SIMP(statut='o',typ='R',),),
TOUT_ORDRE = SIMP(statut='f',typ='TXM',into=("OUI",) ),
NUME_ORDRE = SIMP(statut='f',typ='I',),
LIST_ORDRE = SIMP(statut='f',typ=listis_sdaster),
MODE_FOURIER = SIMP(statut='f',typ='I',defaut=0),
CHAM_GD = SIMP(statut='f',typ=(cham_no_sdaster,cham_elem) ),
RESULTAT = SIMP(statut='f',typ=(mode_meca,evol_elas,evol_ther,evol_noli,dyna_trans,mult_elas) ),
- PRECISION = SIMP(statut='f',typ='R',defaut= 1.0E-3),
- CRITERE = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")),
+ CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
+ b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
+ PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
+ b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
+ PRECISION =SIMP(statut='o',typ='R',),),
TOUT_ORDRE = SIMP(statut='f',typ='TXM',into=("OUI",) ),
NUME_ORDRE = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
LIST_ORDRE = SIMP(statut='f',typ=listis_sdaster),
MODE_FOURIER = SIMP(statut='f',typ='I',defaut=0),
CHAM_GD = SIMP(statut='f',typ=(cham_no_sdaster,cham_elem) ),
RESULTAT = SIMP(statut='f',typ=(mode_meca,evol_elas,evol_ther,evol_noli,dyna_trans) ),
- PRECISION = SIMP(statut='f',typ='R',defaut= 1.0E-3),
- CRITERE = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")),
+ CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
+ b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
+ PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
+ b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
+ PRECISION =SIMP(statut='o',typ='R',),),
TOUT_ORDRE = SIMP(statut='f',typ='TXM',into=("OUI",) ),
NUME_ORDRE = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
LIST_ORDRE = SIMP(statut='f',typ=listis_sdaster),
MODE_FOURIER = SIMP(statut='f',typ='I',defaut=0),
RESULTAT = SIMP(statut='o',typ=(evol_noli) ),
regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),),
- PRECISION = SIMP(statut='f',typ='R',defaut= 1.0E-3),
- CRITERE = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")),
+ CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
+ b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
+ PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
+ b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
+ PRECISION =SIMP(statut='o',typ='R',),),
TOUT_ORDRE = SIMP(statut='f',typ='TXM',into=("OUI",) ),
NUME_ORDRE = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
LIST_ORDRE = SIMP(statut='f',typ=listis_sdaster),
MODE_FOURIER = SIMP(statut='f',typ='I',defaut=0),
RESULTAT = SIMP(statut='o',typ=(evol_noli) ),
regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),),
- PRECISION = SIMP(statut='f',typ='R',defaut= 1.0E-3),
- CRITERE = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")),
+ CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
+ b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
+ PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
+ b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
+ PRECISION =SIMP(statut='o',typ='R',),),
TOUT_ORDRE = SIMP(statut='f',typ='TXM',into=("OUI",) ),
NUME_ORDRE = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
LIST_ORDRE = SIMP(statut='f',typ=listis_sdaster),
TOUT = SIMP(statut='f',typ='TXM',into=("OUI",) ),
MAILLE = SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'),
GROUP_MA = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
- NOM_CHAM = SIMP(statut='o',typ='TXM',into=C_NOM_CHAM_INTO()),
- NOM_CMP = SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**'),
+ NOM_CHAM = SIMP(statut='o',typ='TXM',into=C_NOM_CHAM_INTO()),
+ NOM_CMP = SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**'),
+ DEJA_INTEGRE = SIMP(statut='f',typ='TXM',into=("OUI","NON",),),
),
b_integrale = BLOC(condition = "( INTEGRALE != None )",
fr="calcul de la moyenne d'une composante",
regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),),
MODELE = SIMP(statut='f',typ=modele_sdaster),
- RESULTAT = SIMP(statut='o',typ=(evol_noli,evol_ther,evol_elas) ),
- PRECISION = SIMP(statut='f',typ='R',defaut= 1.0E-3),
- CRITERE = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")),
+ RESULTAT = SIMP(statut='o',typ=(evol_noli,evol_ther,evol_elas,evol_char) ),
+ CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
+ b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
+ PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
+ b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
+ PRECISION =SIMP(statut='o',typ='R',),),
TOUT_ORDRE = SIMP(statut='f',typ='TXM',into=("OUI",) ),
NUME_ORDRE = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
LIST_ORDRE = SIMP(statut='f',typ=listis_sdaster),
PRESENT_PRESENT('CHAM_GD','MODELE'),
PRESENT_PRESENT('RESULTAT','NOM_CHAM'),
AU_MOINS_UN('TOUT','GROUP_MA'),),
- TOUT = SIMP(statut='f',typ='TXM',into=("OUI",) ),
- GROUP_MA = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
+ TOUT = SIMP(statut='f',typ='TXM',into=("OUI",) ),
+ GROUP_MA = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
RESULTAT = SIMP(statut='f',typ=(evol_noli,evol_ther,evol_elas) ),
- NOM_CHAM = SIMP(statut='f',typ='TXM',into=C_NOM_CHAM_INTO()),
+ NOM_CHAM = SIMP(statut='f',typ='TXM',into=C_NOM_CHAM_INTO()),
CHAM_GD = SIMP(statut='f',typ=(cham_no_sdaster,cham_elem) ),
MODELE = SIMP(statut='f',typ=modele_sdaster),
- NOM_CMP = SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**'),
+ NOM_CMP = SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**'),
b_minmax = BLOC(condition = "( RESULTAT != None )",
regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),),
- PRECISION = SIMP(statut='f',typ='R',defaut= 1.0E-3),
- CRITERE = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")),
+ CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
+ b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
+ PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
+ b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
+ PRECISION =SIMP(statut='o',typ='R',),),
TOUT_ORDRE = SIMP(statut='f',typ='TXM',into=("OUI",) ),
NUME_ORDRE = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
LIST_ORDRE = SIMP(statut='f',typ=listis_sdaster),
MODE_FOURIER = SIMP(statut='f',typ='I',defaut=0),
CHAM_GD = SIMP(statut='f',typ=(cham_no_sdaster,cham_elem) ),
RESULTAT = SIMP(statut='f',typ=(evol_noli) ),
- PRECISION = SIMP(statut='f',typ='R',defaut= 1.0E-3),
- CRITERE = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")),
+ CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
+ b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
+ PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
+ b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
+ PRECISION =SIMP(statut='o',typ='R',),),
TOUT_ORDRE = SIMP(statut='f',typ='TXM',into=("OUI",) ),
NUME_ORDRE = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
LIST_ORDRE = SIMP(statut='f',typ=listis_sdaster),
MODE_FOURIER = SIMP(statut='f',typ='I',defaut=0),
CHAM_GD = SIMP(statut='f',typ=(cham_no_sdaster,cham_elem) ),
RESULTAT = SIMP(statut='f',typ=(evol_noli) ),
- PRECISION = SIMP(statut='f',typ='R',defaut= 1.0E-3),
- CRITERE = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")),
+ CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
+ b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
+ PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
+ b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
+ PRECISION =SIMP(statut='o',typ='R',),),
TOUT_ORDRE = SIMP(statut='f',typ='TXM',into=("OUI",) ),
NUME_ORDRE = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
LIST_ORDRE = SIMP(statut='f',typ=listis_sdaster),
MODE_FOURIER = SIMP(statut='f',typ='I',defaut=0),
RESULTAT = SIMP(statut='o',typ=(evol_noli) ),
regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),),
- PRECISION = SIMP(statut='f',typ='R',defaut= 1.0E-3),
- CRITERE = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")),
+ CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
+ b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
+ PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
+ b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
+ PRECISION =SIMP(statut='o',typ='R',),),
TOUT_ORDRE = SIMP(statut='f',typ='TXM',into=("OUI",) ),
NUME_ORDRE = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
LIST_ORDRE = SIMP(statut='f',typ=listis_sdaster),
MODE_FOURIER = SIMP(statut='f',typ='I',defaut=0),
RESULTAT = SIMP(statut='o',typ=(evol_noli) ),
regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),),
- PRECISION = SIMP(statut='f',typ='R',defaut= 1.0E-3),
- CRITERE = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")),
+ CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
+ b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
+ PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
+ b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
+ PRECISION =SIMP(statut='o',typ='R',),),
TOUT_ORDRE = SIMP(statut='f',typ='TXM',into=("OUI",) ),
NUME_ORDRE = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
LIST_ORDRE = SIMP(statut='f',typ=listis_sdaster),
MODE_FOURIER = SIMP(statut='f',typ='I',defaut=0),
RESULTAT = SIMP(statut='o',typ=(evol_noli) ),
regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),),
- PRECISION = SIMP(statut='f',typ='R',defaut= 1.0E-3),
- CRITERE = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")),
+ CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
+ b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
+ PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
+ b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
+ PRECISION =SIMP(statut='o',typ='R',),),
TOUT_ORDRE = SIMP(statut='f',typ='TXM',into=("OUI",) ),
NUME_ORDRE = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
LIST_ORDRE = SIMP(statut='f',typ=listis_sdaster),
b_trav_ext = BLOC(condition = "( TRAV_EXT != None )",
fr="calcul du travail des efforts extérieurs",
RESULTAT = SIMP(statut='o',typ=(evol_elas,evol_noli,dyna_trans) ),
- PRECISION = SIMP(statut='f',typ='R',defaut= 1.0E-3),
- CRITERE = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")),
+ CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
+ b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
+ PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
+ b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
+ PRECISION =SIMP(statut='o',typ='R',),),
TOUT_ORDRE = SIMP(statut='f',typ='TXM',into=("OUI",) ),
),
INFO = SIMP(statut='f', typ='I', defaut=1, into=(1, 2),),
)
-#& MODIF COMMANDE DATE 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE
+#& MODIF COMMANDE DATE 20/10/2008 AUTEUR GALENNE E.GALENNE
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
b_fissure =BLOC (condition="(FISSURE!= None)",
MAILLAGE = SIMP(statut='o',typ=maillage_sdaster),
NB_NOEUD_COUPE = SIMP(statut='f',typ='I' ,defaut=5 ),
+ NB_POINT_FOND = SIMP(statut='f',typ='I' ,),
+ NUME_FOND = SIMP(statut='f',typ='I',defaut=1),
DTAN_ORIG = SIMP(statut='f',typ='R',max='**'),
DTAN_EXTR = SIMP(statut='f',typ='R',max='**'),
),
fr="Table issue de post_releve_t sur les noeuds de la lèvre supérieure"),
TABL_DEPL_INF =SIMP(statut='f',typ=table_sdaster,
fr="Table issue de post_releve_t sur les noeuds de la lèvre inférieure"),
- ABSC_CURV_MAXI=SIMP(statut='f',typ='R',
+ ABSC_CURV_MAXI=SIMP(statut='o',typ='R',
fr="Distance maximum à partir du fond de fissure à utiliser pour le calcul"),
PREC_VIS_A_VIS= SIMP(statut='f',typ='R',defaut=0.1),
TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ),
INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
LIST_INST =SIMP(statut='f',typ=listr8_sdaster),
b_acce_reel =BLOC(condition="(INST != None)or(LIST_INST != None)",
- PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-6),
CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
+ b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
+ PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
+ b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
+ PRECISION =SIMP(statut='o',typ='R',),),
),
SYME_CHAR =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SYME","SANS") ),
INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
- VECT_K1 =SIMP(statut='f',typ='R',max=3,
+ VECT_K1 =SIMP(statut='f',typ='R',max=3,min=3,
fr="Vecteur normal au plan de fissure, orienté de la lèvre inférieure vers la lèvre supérieure"),
TITRE =SIMP(statut='f',typ='TXM',max='**'),
) ;
),
TITRE = SIMP(statut='f',typ='TXM',max='**'),
);
-#& MODIF COMMANDE DATE 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE
+#& MODIF COMMANDE DATE 30/09/2008 AUTEUR REZETTE C.REZETTE
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2006 EDF R&D WWW.CODE-ASTER.ORG
LIST_ORDRE =SIMP(statut='f',typ=listis_sdaster),
INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
LIST_INST =SIMP(statut='f',typ=listr8_sdaster),
- PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3),
CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",) ),
-
+ b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
+ PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6),),
+ b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
+ PRECISION =SIMP(statut='o',typ='R'),),
INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
TITRE =SIMP(statut='f',typ='TXM'),
)
INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2,) ),
);
-#& MODIF COMMANDE DATE 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE
+#& MODIF COMMANDE DATE 03/11/2008 AUTEUR MACOCCO K.MACOCCO
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
LIST_INST =SIMP(statut='f',typ=listr8_sdaster ),
b_inst =BLOC(condition = "(INST != None) or (LIST_INST != None)" ,
- PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
- CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("ABSOLU","RELATIF") ),
- ),
- ),
+ CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
+ b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
+ PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
+ b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
+ PRECISION =SIMP(statut='o',typ='R',),),),
+ ),
),
# ======================================================================
regles=(UN_PARMI('MX','MX_TUBU'),),
NUME_CHAR =SIMP(statut='o',typ='I',fr="numéro du chargement" ),
NOM_CHAR =SIMP(statut='f',typ='TXM',fr="nom du chargement" ),
- TYPE_CHAR =SIMP(statut='f',typ='TXM',fr="nature du chargement",into=( "SEISME","AUTRE"),defaut="AUTRE",),
MX =SIMP(statut='f',typ='R',fr="moment suivant x", ),
MX_TUBU =SIMP(statut='f',typ='R',fr="moment suivant x, tubulure", ),
b_1_tenseur =BLOC( condition = "MX != None",
TABL_RESU_THER =SIMP(statut='o',typ=table_sdaster,
fr="table relevé des contraintes sous chargement thermique seul" ),
),
+ SEISME =FACT(statut='f',max='**',fr="Situation séisme",ang="situation_ang",
+ NB_OCCUR =SIMP(statut='o',typ='I',fr="nombre d'occurences de la situation" ),
+ NB_CYCL_SEISME =SIMP(statut='o',typ='I',fr="nombre de cycles associé au séisme" ),
+ NUME_SITU =SIMP(statut='o',typ='I',fr="numéro de la situation" ),
+ NOM_SITU =SIMP(statut='f',typ='TXM',fr="nom de la situation" ),
+ NUME_GROUPE =SIMP(statut='o',typ='I',fr="numéros du groupe de la situation" ),
+ CHAR_ETAT =SIMP(statut='o',typ='I',max='**',fr="numeros de chargements etat A" ),
+ NUME_RESU_THER =SIMP(statut='f',typ='I',max='**',fr="numeros de transitoires thermiques" ),
+ ),
SITUATION =FACT(statut='o',max='**',fr="Situation",ang="situation_ang",
NB_OCCUR =SIMP(statut='o',typ='I',fr="nombre d'occurences de la situation" ),
- NB_CYCL_SEISME =SIMP(statut='f',typ='I',fr="nombre de cycles associé au séisme" ),
NUME_SITU =SIMP(statut='o',typ='I',fr="numéro de la situation" ),
NOM_SITU =SIMP(statut='f',typ='TXM',fr="nom de la situation" ),
COMBINABLE =SIMP(statut='f',typ='TXM',defaut= "OUI",into=("OUI","NON"),fr="non = sous-cycle" ),
- NUME_GROUPE =SIMP(statut='f',typ='I',max=2,
- fr="numéro du groupe de la situation,si 2 numéros cette situation est une situation de passage" ),
- NUME_RESU_THER =SIMP(statut='f',typ='I',max='**',fr="numeros de transitoires thermiques" ),
+ NUME_GROUPE =SIMP(statut='f',typ='I',
+ fr="numéros des groupes de la situation" ),
+ NUME_PASSAGE =SIMP(statut='f',typ='I',min=2,max=2,
+ fr="numéro des situations de passage" ),
+ NUME_RESU_THER =SIMP(statut='f',typ='I',max=1,fr="numeros de transitoires thermiques" ),
CHAR_ETAT_A =SIMP(statut='o',typ='I',max='**',fr="numeros de chargements etat A" ),
CHAR_ETAT_B =SIMP(statut='o',typ='I',max='**',fr="numeros de chargements etat B" ),
PRES_A =SIMP(statut='o',typ='R',fr="pression etat A"),
regles=(UN_PARMI('CHAM_GD','RESULTAT'),),
NUME_CHAR =SIMP(statut='o',typ='I',fr="numéro du chargement" ),
NOM_CHAR =SIMP(statut='f',typ='TXM',fr="nom du chargement" ),
- TYPE_CHAR =SIMP(statut='f',typ='TXM',fr="nature du chargement",into=( "SEISME","AUTRE"),defaut="AUTRE",),
CHAM_GD =SIMP(statut='f',typ=cham_gd_sdaster),
RESULTAT =SIMP(statut='f',typ=resultat_sdaster),
b_extrac =BLOC(condition="RESULTAT != None",
INST =SIMP(statut='f',typ='R',),
NOEUD_CMP =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
b_acce_reel =BLOC(condition="(INST != None)",
- PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3),
- CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU"), ),
+ CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
+ b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
+ PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
+ b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
+ PRECISION =SIMP(statut='o',typ='R',),),
),
),
),
NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'),
),
),
+ SEISME =FACT(statut='f',max='**',fr="Situation séisme",ang="situation_ang",
+ NB_OCCUR =SIMP(statut='o',typ='I',fr="nombre d'occurences de la situation" ),
+ NB_CYCL_SEISME =SIMP(statut='o',typ='I',fr="nombre de cycles associé au séisme" ),
+ NUME_SITU =SIMP(statut='o',typ='I',fr="numéro de la situation" ),
+ NOM_SITU =SIMP(statut='f',typ='TXM',fr="nom de la situation" ),
+ NUME_GROUPE =SIMP(statut='o',typ='I',fr="numéros du groupe de la situation" ),
+ CHAR_ETAT =SIMP(statut='o',typ='I',max='**',fr="numeros de chargements etat A" ),
+ NUME_RESU_THER =SIMP(statut='f',typ='I',max='**',fr="numeros de transitoires thermiques" ),
+ TEMP_REF =SIMP(statut='f',typ='R',fr="temperature référence"),
+ ),
SITUATION =FACT(statut='o',max='**',fr="Situation",ang="situation_ang",
NB_OCCUR =SIMP(statut='o',typ='I',fr="nombre d'occurences de la situation" ),
- NB_CYCL_SEISME =SIMP(statut='f',typ='I',fr="nombre de cycles associé au séisme" ),
NUME_SITU =SIMP(statut='o',typ='I',fr="numéro de la situation" ),
NOM_SITU =SIMP(statut='f',typ='TXM',fr="nom de la situation" ),
COMBINABLE =SIMP(statut='f',typ='TXM',defaut= "OUI",into=("OUI","NON"),fr="non = sous-cycle" ),
- NUME_GROUPE =SIMP(statut='f',typ='I',max=2,
- fr="numéro du groupe de la situation,si 2 numéros cette situation est une situation de passage" ),
+ NUME_GROUPE =SIMP(statut='f',typ='I',
+ fr="numéros des groupes de la situation" ),
+ NUME_PASSAGE =SIMP(statut='f',typ='I',min=2,max=2,
+ fr="numéro des situations de passage" ),
NUME_RESU_THER =SIMP(statut='f',typ='I',max='**',fr="numeros de transitoires thermiques" ),
CHAR_ETAT_A =SIMP(statut='o',typ='I',max='**',fr="numeros de chargements etat A" ),
CHAR_ETAT_B =SIMP(statut='o',typ='I',max='**',fr="numeros de chargements etat B" ),
),
),
) ;
-#& MODIF COMMANDE DATE 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE
+#& MODIF COMMANDE DATE 30/09/2008 AUTEUR REZETTE C.REZETTE
# ======================================================================
# CONFIGURATION MANAGEMENT OF EDF VERSION
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
LIST_FREQ =SIMP(statut='f',typ=listr8_sdaster),
INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
LIST_INST =SIMP(statut='f',typ=listr8_sdaster),
- PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-6),
- CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")),
+ CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
+ b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
+ PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
+ b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
+ PRECISION =SIMP(statut='o',typ='R',),),
),
b_extrema =BLOC(condition="OPERATION == 'EXTREMA'",
INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
TITRE =SIMP(statut='f',typ='TXM',max='**' ),
) ;
-#& MODIF COMMANDE DATE 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE
+#& MODIF COMMANDE DATE 30/09/2008 AUTEUR REZETTE C.REZETTE
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
b_evol_noli =BLOC(condition="EVOL_NOLI != None",
INST_MAX =SIMP(statut='o',typ='R'),
),
- PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3),
- CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")),
-
+ CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
+ b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
+ PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
+ b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
+ PRECISION =SIMP(statut='o',typ='R',),),
) ;
-#& MODIF COMMANDE DATE 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE
+#& MODIF COMMANDE DATE 16/09/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
ENVIMA =SIMP(fr="imprime les valeurs définies dans ENVIMA",
statut='f',typ='TXM',into=('TEST',)),
),
- MEMOIRE =FACT(fr="mode de gestion mémoire utilisé",statut='f',min=1,max=1,
+ MEMOIRE =FACT(fr="mode de gestion mémoire utilisé",statut='d',min=1,max=1,
GESTION =SIMP(statut='f',typ='TXM',into=('COMPACTE','RAPIDE'),defaut='RAPIDE'),
TYPE_ALLOCATION =SIMP(statut='f',typ='I',into=(1,2,3,4),defaut=1),
TAILLE =SIMP(statut='f',typ='I'),
TAILLE_BLOC =SIMP(statut='f',typ='R',defaut=800.),
PARTITION =SIMP(statut='f',typ='R' ),
- DYNAMIQUE =SIMP(statut='f',typ='I'),
+ DYNAMIQUE =SIMP(statut='f',typ='I',defaut=1),
),
RESERVE_CPU =FACT(fr="reserve de temps pour terminer une execution",statut='d',max=1,
MATR_ASSE_GENE =SIMP(statut='f',typ=(matr_asse_gene_r,matr_asse_gene_c) ),
) ;
-#& MODIF COMMANDE DATE 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE
+#& MODIF COMMANDE DATE 21/10/2008 AUTEUR NISTOR I.NISTOR
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
if AsType(vale) == dyna_trans : return tran_gene
if AsType(vale) == dyna_harmo : return harm_gene
if AsType(vale) == mode_meca : return mode_gene
-# if AsType(vale) == mode_meca_c : return mode_gene_c
+ if AsType(vale) == mode_meca_c : return mode_gene
if AsType(vale) == base_modale : return mode_gene
raise AsException("type de concept resultat non prevu")
VECT_ASSE =SIMP(statut='f',typ=cham_no_sdaster),
VECT_ASSE_GENE =SIMP(statut='f',typ=vect_asse_gene ),
) ;
+#& MODIF COMMANDE DATE 20/10/2008 AUTEUR GALENNE E.GALENNE
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2008 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# ======================================================================
+# RESPONSABLE GALENNE E.GALENNE
+
+
+from Macro.propa_fiss_ops import propa_fiss_ops
+
+def propa_fiss_prod(self,**args):
+ if args.has_key('MA_TOT2') :
+ MA_TOT2 = args['MA_TOT2']
+ self.type_sdprod(MA_TOT2,maillage_sdaster)
+ if args.has_key('MA_XFEM2') :
+ MA_XFEM2 = args['MA_XFEM2']
+ self.type_sdprod(MA_XFEM2,maillage_sdaster)
+ if args.has_key('FISSURE') :
+ FISSURE = args['FISSURE']
+ self.type_sdprod(FISSURE,fiss_xfem)
+ return None
+
+PROPA_FISS=MACRO(nom="PROPA_FISS",op=propa_fiss_ops,sd_prod=propa_fiss_prod,
+ fr="Propagation de fissure avec X-FEM",reentrant='n',
+ UIinfo={"groupes":("Post traitements",)},
+
+ METHODE_PROPA = SIMP(statut='o',typ='TXM',
+ into=("HAMILTON","MAILLAGE","INITIALISATION") ),
+
+ b_hamilton =BLOC(condition="(METHODE_PROPA=='HAMILTON')",
+ MODELE =SIMP(statut='o',typ=modele_sdaster),
+ RAYON =SIMP(statut='o',typ='R',),
+ METHODE =SIMP(statut='f',typ='TXM',into=("SIMPLEXE","UPWIND",),defaut="SIMPLEXE"),
+ FISSURE = SIMP(statut='o',typ=CO),
+ TABLE = SIMP(statut='o',typ=table_sdaster),
+ ),
+
+ b_maillage =BLOC(condition="(METHODE_PROPA=='MAILLAGE')",
+ MA_STRUC = SIMP(statut='o',typ=maillage_sdaster),
+ MA_XFEM1 = SIMP(statut='o',typ=maillage_sdaster),
+ FISSURE1 = SIMP(statut='o',typ=fiss_xfem),
+ DTAN_ORIG = SIMP(statut='f',typ='R',max=3),
+ DTAN_EXTR = SIMP(statut='f',typ='R',max=3),
+ METHODE_POSTK = SIMP(statut='f',typ='I',into=(1,2,3),max=1),
+ ITERATION = SIMP(statut='o',typ='I',max=1),
+ HYPOTHESE = SIMP(statut='f',typ='TXM',into=("PLAN","NON_PLAN"),defaut="NON_PLAN"),
+ MA_XFEM2 = SIMP(statut='f',typ=CO),
+ MA_TOT2 = SIMP(statut='o',typ=CO),
+ TABLE = SIMP(statut='o',typ=table_sdaster),
+ ),
+
+ b_init =BLOC(condition="(METHODE_PROPA=='INITIALISATION')",
+ MA_STRUC = SIMP(statut='o',typ=maillage_sdaster),
+ FORM_FISS = SIMP(statut='o',typ='TXM', into=("DEMI_DROITE","DEMI_PLAN"), ),
+ PFON = SIMP(statut='f',typ='R',max=3),
+ DTAN = SIMP(statut='o',typ='R',min=3,max=3),
+ POINT_ORIG = SIMP(statut='f',typ='R',min=3,max=3),
+ POINT_EXTR = SIMP(statut='f',typ='R',min=3,max=3),
+ NB_POINT_FOND = SIMP(statut='f',typ='I',),
+ regles=(PRESENT_PRESENT('POINT_ORIG','POINT_EXTR',),
+ UN_PARMI('PFON','POINT_ORIG'),),
+ MA_TOT2 = SIMP(statut='o',typ=CO),
+ MA_XFEM2 = SIMP(statut='f',typ=CO),
+ ),
+
+ LOI_PROPA =FACT(statut='f',max=1,
+ LOI =SIMP(statut='o',typ='TXM',into=("PARIS",),defaut="PARIS"),
+ b_paris =BLOC( condition = "LOI=='PARIS'",
+ C = SIMP(statut='f',typ='R',),
+ M = SIMP(statut='o',typ='R',),
+ DA_MAX = SIMP(statut='f',typ='R',max=1),
+ regles=(UN_PARMI('C','DA_MAX'),),
+ ),
+ ),
+
+ INFO = SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
+)
+
#& MODIF COMMANDE DATE 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
ITER_GLOB_MAXI =SIMP(statut='f',typ='I',defaut= 10 ),
INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ,) ),
) ;
-#& MODIF COMMANDE DATE 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE
+#& MODIF COMMANDE DATE 30/09/2008 AUTEUR REZETTE C.REZETTE
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
LIST_FREQ =SIMP(statut='f',typ=listr8_sdaster ),
NUME_MODE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
b_prec = BLOC ( condition = "(INST != None) or (LIST_INST != None) or (FREQ != None) or (LIST_FREQ != None)",
- PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
- CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
+ CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
+ b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
+ PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
+ b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
+ PRECISION =SIMP(statut='o',typ='R',),),
INTERP_NUME =SIMP(statut='f',typ='TXM',into=("NON","LIN") ),
),
),
TITRE =SIMP(statut='f',typ='TXM',max='**'),
INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ),
) ;
-#& MODIF COMMANDE DATE 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE
+#& MODIF COMMANDE DATE 30/09/2008 AUTEUR REZETTE C.REZETTE
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
INST =SIMP(statut='o',typ='R' ),
NOM_CHAM =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL","VITE","ACCE") ),
INTERPOL =SIMP(statut='f',typ='TXM',defaut="NON",into=("NON","LIN") ),
- CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF" ,into=("ABSOLU","RELATIF") ),
- PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
+ CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
+ b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
+ PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
+ b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
+ PRECISION =SIMP(statut='o',typ='R',),),
) ;
#& MODIF COMMANDE DATE 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE
# CONFIGURATION MANAGEMENT OF EDF VERSION
NOM_PARA =SIMP(statut='f',typ='TXM',max='**'),
TITRE =SIMP(statut='f',typ='TXM',max='**'),
) ;
-#& MODIF COMMANDE DATE 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE
+#& MODIF COMMANDE DATE 08/08/2008 AUTEUR DESOZA T.DESOZA
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# ======================================================================
+# RESPONSABLE PELLET J.PELLET
+
+RESOUDRE=OPER(nom="RESOUDRE",op=15,sd_prod=cham_no_sdaster,reentrant='f',
+ fr="Résolution par méthode directe un système d'équations linéaires préalablement factorisé par FACT_LDLT"+
+ "ou Résolution d'un système linéaire par la méthode du gradient conjugué préconditionné",
+ UIinfo={"groupes":("Résolution",)},
+ MATR =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_depl_c,matr_asse_temp_r,
+ matr_asse_temp_c,matr_asse_pres_r,matr_asse_pres_c) ),
+ CHAM_NO =SIMP(statut='o',typ=cham_no_sdaster),
+ CHAM_CINE =SIMP(statut='f',typ=cham_no_sdaster),
+
+ # mot-clé commun aux solveurs MUMPS, GCPC et PETSc:
+ RESI_RELA =SIMP(statut='f',typ='R',defaut=1.E-6),
+
+ # mot-clé commun aux solveurs GCPC et PETSc:
+ NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ),
+ MATR_PREC =SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_temp_r,matr_asse_pres_r ) ),
+
+ # mots-clés pour solveur PETSc:
+ ALGORITHME =SIMP(statut='f',typ='TXM',into=("BCGS","BICG","CG","CR","GMRES","TFQMR",),defaut="CG" ),
+
+ TITRE =SIMP(statut='f',typ='TXM',max='**'),
+ INFO =SIMP(statut='f',typ='I',into=(1,2) ),
+) ;
+#& MODIF COMMANDE DATE 21/10/2008 AUTEUR NISTOR I.NISTOR
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2008 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# ======================================================================
+
+# RESPONSABLE DEVESA G.DEVESA
+def rest_cond_tran_prod(RESULTAT,**args ):
+
+ if AsType(RESULTAT) == evol_noli : return dyna_trans
+ if AsType(RESULTAT) == dyna_trans : return dyna_trans
+
+ raise AsException("type de concept resultat non prevu")
+
+REST_COND_TRAN=OPER(nom="REST_COND_TRAN",op= 78,sd_prod=rest_cond_tran_prod,
+ fr="Restituer dans la base physique des résultats issus d'un calcul"
+ +"non-lineaire avec projection modale ou d'un calcul transitoire linear"
+ +"avec condensation dynamique",
+ reentrant='n',
+ UIinfo={"groupes":("Matrices/vecteurs",)},
+ regles=(
+ EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','LIST_INST','TOUT_INST'),
+ EXCLUS('NOEUD','GROUP_NO'),
+ EXCLUS('MAILLE','GROUP_MA'),
+ EXCLUS('MACR_ELEM_DYNA','BASE_MODALE'),),
+ RESULTAT =SIMP(statut='f',typ=(evol_noli,dyna_trans) ),
+ BASE_MODALE =SIMP(statut='f',typ=(base_modale,mode_meca) ),
+ NUME_DDL =SIMP(statut='f',typ=nume_ddl_sdaster ),
+ MACR_ELEM_DYNA =SIMP(statut='f',typ=macr_elem_dyna),
+ TOUT_INST =SIMP(statut='f',typ='TXM',into=("OUI",) ),
+ INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),
+ LIST_INST =SIMP(statut='f',typ=listr8_sdaster ),
+ TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ),
+ NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**' ),
+ CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("ABSOLU","RELATIF") ),
+ b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
+ PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
+ b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
+ PRECISION =SIMP(statut='o',typ='R',),),
+ INTERPOL =SIMP(statut='f',typ='TXM',defaut="NON",into=("NON","LIN") ),
+ NOM_CHAM =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=8,defaut="ACCE",
+ into=("DEPL","VITE","ACCE","ACCE_ABSOLU","EFGE_ELNO_DEPL","SIPO_ELNO_DEPL",
+ "SIGM_ELNO_DEPL","FORC_NODA",) ),
+ TOUT_CHAM =SIMP(statut='f',typ='TXM',into=("OUI",) ),
+ GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
+ NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
+ MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'),
+ TITRE =SIMP(statut='f',typ='TXM',max='**' ),
+) ;
+#& MODIF COMMANDE DATE 21/10/2008 AUTEUR NISTOR I.NISTOR
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2008 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# ======================================================================
+
+# RESPONSABLE BOYERE E.BOYERE
+
+def rest_gene_phys_prod(RESU_GENE,**args ):
+ if AsType(RESU_GENE) == tran_gene : return dyna_trans
+ if AsType(RESU_GENE) == mode_gene : return mode_meca
+ if AsType(RESU_GENE) == harm_gene : return dyna_harmo
+
+ raise AsException("type de concept resultat non prevu")
+
+REST_GENE_PHYS=OPER(nom="REST_GENE_PHYS",op= 75,sd_prod=rest_gene_phys_prod,
+ fr="Restituer dans la base physique des résultats en coordonnées généralisées",
+ reentrant='n',
+ UIinfo={"groupes":("Matrices/vecteurs",)},
+ regles=(
+ EXCLUS('INST','LIST_INST','TOUT_INST'),
+ EXCLUS('TOUT_ORDRE','NUME_ORDRE','NUME_MODE'),
+ EXCLUS('FREQ','LIST_FREQ'),
+ EXCLUS('MULT_APPUI','CORR_STAT'),
+ EXCLUS('MULT_APPUI','NOEUD','GROUP_NO'),
+ EXCLUS('CORR_STAT','NOEUD','GROUP_NO'),
+ EXCLUS('NOEUD','GROUP_NO'),
+ EXCLUS('MAILLE','GROUP_MA'),
+ PRESENT_PRESENT('ACCE_MONO_APPUI','DIRECTION'),),
+ RESU_GENE =SIMP(statut='f',typ=(tran_gene,mode_gene,harm_gene) ),
+ MODE_MECA =SIMP(statut='f',typ=mode_meca ),
+ BASE_MODALE =SIMP(statut='f',typ=(base_modale,mode_meca) ),
+ NUME_DDL =SIMP(statut='f',typ=nume_ddl_sdaster ),
+ TOUT_INST =SIMP(statut='f',typ='TXM',into=("OUI",) ),
+ INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),
+ LIST_INST =SIMP(statut='f',typ=listr8_sdaster ),
+ TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ),
+ NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**' ),
+ NUME_MODE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**' ),
+ FREQ =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),
+ LIST_FREQ =SIMP(statut='f',typ=listr8_sdaster ),
+ CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("ABSOLU","RELATIF") ),
+ b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
+ PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
+ b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
+ PRECISION =SIMP(statut='o',typ='R',),),
+ INTERPOL =SIMP(statut='f',typ='TXM',defaut="NON",into=("NON","LIN") ),
+ MULT_APPUI =SIMP(statut='f',typ='TXM',into=("OUI",) ),
+ CORR_STAT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
+ NOM_CHAM =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=8,defaut="ACCE",
+ into=("DEPL","VITE","ACCE","ACCE_ABSOLU","EFGE_ELNO_DEPL","SIPO_ELNO_DEPL",
+ "SIGM_ELNO_DEPL","FORC_NODA",) ),
+ TOUT_CHAM =SIMP(statut='f',typ='TXM',into=("OUI",) ),
+ GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
+ NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'),
+ GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
+ MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'),
+ ACCE_MONO_APPUI =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
+ DIRECTION =SIMP(statut='f',typ='R',min=3,max=3 ),
+ TITRE =SIMP(statut='f',typ='TXM',max='**' ),
+) ;
+#& MODIF COMMANDE DATE 21/10/2008 AUTEUR NISTOR I.NISTOR
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
-# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG
+# COPYRIGHT (C) 1991 - 2008 EDF R&D WWW.CODE-ASTER.ORG
# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
# ======================================================================
-# RESPONSABLE PELLET J.PELLET
-
-RESOUDRE=OPER(nom="RESOUDRE",op=15,sd_prod=cham_no_sdaster,reentrant='f',
- fr="Résolution par méthode directe un système d'équations linéaires préalablement factorisé par FACT_LDLT"+
- "ou Résolution d'un système linéaire par la méthode du gradient conjugué préconditionné",
- UIinfo={"groupes":("Résolution",)},
- MATR =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_depl_c,matr_asse_temp_r,
- matr_asse_temp_c,matr_asse_pres_r,matr_asse_pres_c) ),
- CHAM_NO =SIMP(statut='o',typ=cham_no_sdaster),
- CHAM_CINE =SIMP(statut='f',typ=cham_no_sdaster),
-
- # mot-clé commun aux solveurs MUMPS et GCPC:
- RESI_RELA =SIMP(statut='f',typ='R',defaut=1.E-6),
- # mots-clés pour solver GCPC:
- MATR_PREC =SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_temp_r,matr_asse_pres_r ) ),
- NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ),
- REPRISE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
-
- TITRE =SIMP(statut='f',typ='TXM',max='**'),
- INFO =SIMP(statut='f',typ='I',into=(1,2) ),
-) ;
-#& MODIF COMMANDE DATE 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE
-# CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
-# (AT YOUR OPTION) ANY LATER VERSION.
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
-# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
-# ======================================================================
-# RESPONSABLE BOYERE E.BOYERE
-def rest_base_phys_prod(RESU_GENE,RESU_PHYS,RESULTAT,**args ):
+# RESPONSABLE CORUS M.CORUS
+def rest_sous_struc_prod(RESU_GENE,RESULTAT,**args ):
if AsType(RESU_GENE) == tran_gene : return dyna_trans
if AsType(RESU_GENE) == mode_gene : return mode_meca
if AsType(RESU_GENE) == mode_cycl : return mode_meca
if AsType(RESU_GENE) == harm_gene : return dyna_harmo
- if AsType(RESU_PHYS) == evol_noli : return dyna_trans
- if AsType(RESULTAT) == evol_elas : return evol_elas
if AsType(RESULTAT) == evol_noli : return evol_noli
- if AsType(RESULTAT) == evol_char : return evol_char
if AsType(RESULTAT) == dyna_trans : return dyna_trans
if AsType(RESULTAT) == mode_meca : return mode_meca
- if AsType(RESULTAT) == mode_stat_depl : return mode_stat_depl
if AsType(RESULTAT) == base_modale : return base_modale
raise AsException("type de concept resultat non prevu")
-REST_BASE_PHYS=OPER(nom="REST_BASE_PHYS",op= 75,sd_prod=rest_base_phys_prod,
- fr="Restituer dans la base physique des résultats en coordonnées généralisées",
+REST_SOUS_STRUC=OPER(nom="REST_SOUS_STRUC",op= 77,sd_prod=rest_sous_struc_prod,
+ fr="Restituer dans la base physique des résultats obtenus par sous-structuration",
reentrant='n',
UIinfo={"groupes":("Matrices/vecteurs",)},
- regles=(UN_PARMI('RESU_GENE','RESU_PHYS','RESULTAT'),
+ regles=(UN_PARMI('RESU_GENE','RESULTAT'),
EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','LIST_INST','TOUT_INST'),
EXCLUS('TOUT_INST','NUME_ORDRE','INST','LIST_INST','TOUT_ORDRE'),
# Doc U à revoir
- EXCLUS('MULT_APPUI','CORR_STAT'),
- EXCLUS('MULT_APPUI','NOEUD','GROUP_NO'),
- EXCLUS('CORR_STAT','NOEUD','GROUP_NO'),
- EXCLUS('NOEUD','GROUP_NO'),
- EXCLUS('MACR_ELEM_DYNA','BASE_MODALE'),
+ EXCLUS('NOEUD','GROUP_NO'),
+ EXCLUS('MAILLE','GROUP_MA'),
PRESENT_PRESENT('RESULTAT','SQUELETTE'),
- PRESENT_PRESENT('ACCE_MONO_APPUI','DIRECTION'),),
- RESULTAT =SIMP(statut='f',typ=(evol_elas,evol_noli,dyna_trans,evol_char,
- mode_meca,mode_stat_depl,base_modale) ),
-
+
+ ),
+ RESULTAT =SIMP(statut='f',typ=(evol_noli,dyna_trans,
+ mode_meca,base_modale) ),
RESU_GENE =SIMP(statut='f',typ=(tran_gene,mode_gene,mode_cycl,harm_gene) ),
- RESU_PHYS =SIMP(statut='f',typ=evol_noli ),
BASE_MODALE =SIMP(statut='f',typ=(base_modale,mode_meca) ),
NUME_DDL =SIMP(statut='f',typ=nume_ddl_sdaster ),
- MACR_ELEM_DYNA =SIMP(statut='f',typ=macr_elem_dyna),
MODE_MECA =SIMP(statut='f',typ=mode_meca ),
TOUT_ORDRE =SIMP(statut='f',typ='TXM',into=("OUI",) ),
NUME_ORDRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**' ),
FREQ =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),
LIST_FREQ =SIMP(statut='f',typ=listr8_sdaster ),
CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("ABSOLU","RELATIF") ),
- PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
+ b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
+ PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
+ b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
+ PRECISION =SIMP(statut='o',typ='R',),),
INTERPOL =SIMP(statut='f',typ='TXM',defaut="NON",into=("NON","LIN") ),
- MULT_APPUI =SIMP(statut='f',typ='TXM',into=("OUI",) ),
- CORR_STAT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
NOM_CHAM =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=8,defaut="ACCE",
into=("DEPL","VITE","ACCE","ACCE_ABSOLU","EFGE_ELNO_DEPL","SIPO_ELNO_DEPL",
"SIGM_ELNO_DEPL","FORC_NODA",) ),
NOEUD =SIMP(statut='f',typ=no ,validators=NoRepeat(),max='**'),
GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'),
-
- ACCE_MONO_APPUI =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
- DIRECTION =SIMP(statut='f',typ='R',min=3,max=3 ),
-
CYCLIQUE =FACT(statut='f',max='**',
NB_SECTEUR =SIMP(statut='f',typ='I',validators=NoRepeat(),max=1 ),
NUME_DIAMETRE =SIMP(statut='f',typ='I',validators=NoRepeat(),max=1 ),
into=("DIAG_TOUT","DIAG_DIAG","TOUT_TOUT","TOUT_DIAG") ),
TITRE =SIMP(statut='f',typ='TXM',max='**' ),
) ;
-#& MODIF COMMANDE DATE 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE
+#& MODIF COMMANDE DATE 06/10/2008 AUTEUR DEVESA G.DEVESA
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2008 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# ======================================================================
+# RESPONSABLE DEVESA G.DEVESA
+def rest_spec_temp_prod(RESU_GENE,RESULTAT,**args):
+ if AsType(RESULTAT) == dyna_harmo : return dyna_trans
+ if AsType(RESU_GENE) == harm_gene : return tran_gene
+ if AsType(RESULTAT) == dyna_trans : return dyna_harmo
+ if AsType(RESU_GENE) == tran_gene : return harm_gene
+ raise AsException("type de concept resultat non prevu")
+
+
+REST_SPEC_TEMP=OPER(nom="REST_SPEC_TEMP",op=181,sd_prod=rest_spec_temp_prod,
+ fr="Transformée de Fourier d'un résultat",
+ reentrant='n',
+ UIinfo={"groupes":("Matrices/vecteurs",)},
+ regles=UN_PARMI('RESU_GENE','RESULTAT'),
+ RESU_GENE =SIMP(statut='f',typ=(harm_gene,tran_gene,) ),
+ RESULTAT =SIMP(statut='f',typ=(dyna_harmo,dyna_trans,) ),
+ METHODE =SIMP(statut='f',typ='TXM',defaut="PROL_ZERO",into=("PROL_ZERO","TRONCATURE") ),
+ SYMETRIE =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
+ TOUT_CHAM =SIMP(statut='f',typ='TXM',into=("OUI",)),
+ NOM_CHAM =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=3,into=("DEPL","VITE","ACCE") ),
+);
+#& MODIF COMMANDE DATE 30/09/2008 AUTEUR REZETTE C.REZETTE
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2006 EDF R&D WWW.CODE-ASTER.ORG
RELATION =SIMP(statut='o',typ='TXM',defaut="ELAS",
into=("ELAS","ELAS_VMIS_LINE","ELAS_VMIS_TRAC",
"ELAS_POUTRE_GR","CABLE","ELAS_HYPER")),
- ELAS =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- ELAS_VMIS_TRAC =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- ELAS_VMIS_LINE =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- ELAS_HYPER =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
DEFORMATION =SIMP(statut='f',typ='TXM',defaut="PETIT" ,into=("PETIT","GREEN","GREEN_GR",) ),
),
MATER =SIMP(statut='o',typ=mater_sdaster,max=30),
INST_INIT =SIMP(statut='f',typ='R'),
NUME_INST_FIN =SIMP(statut='f',typ='I'),
INST_FIN =SIMP(statut='f',typ='R'),
- PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3 ),
+ PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),
# DEBUT DE BLOC POUR LA SUBDIVISION DES PAS DE TEMPS
SUBD_METHODE =SIMP( statut='f',typ='TXM',
into =("AUCUNE","UNIFORME","EXTRAPOLE"),
LIST_INST =SIMP(statut='f',typ=(listr8_sdaster) ),
INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),
PAS_ARCH =SIMP(statut='f',typ='I' ),
- PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3),
+ PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6),
ARCH_ETAT_INIT =SIMP(statut='f',typ='TXM',into=("OUI",)),
NUME_INIT =SIMP(statut='f',typ='I'),
DETR_NUME_SUIV =SIMP(statut='f',typ='TXM',into=("OUI",)),
fr="Unité logique définissant le fichier (fort.N) dans lequel on écrit les md5"),
) ;
-#& MODIF COMMANDE DATE 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE
+#& MODIF COMMANDE DATE 18/11/2008 AUTEUR ABBAS M.ABBAS
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
# ======================================================================
# RESPONSABLE ABBAS M.ABBAS
+#
STAT_NON_LINE=OPER(nom="STAT_NON_LINE",op=70,sd_prod=evol_noli,
fr="Calcul de l'évolution mécanique ou thermo-hydro-mécanique couplée, en quasi-statique,"
+" d'une structure en non linéaire",
RELATION =SIMP(statut='o',typ='TXM',defaut="ELAS",
into=("ELAS","ELAS_VMIS_LINE","ELAS_VMIS_TRAC","ELAS_VMIS_PUIS",
"ELAS_POUTRE_GR","CABLE","ELAS_HYPER")),
- ELAS =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- ELAS_VMIS_TRAC =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- ELAS_VMIS_LINE =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- ELAS_VMIS_PUIS =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- ELAS_HYPER =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
- ELAS_POUTRE_GR =SIMP(statut='c',typ='I',defaut=3,into=(3,)),
- CABLE =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
+
DEFORMATION =SIMP(statut='f',typ='TXM',defaut="PETIT" ,into=("PETIT","GREEN","GREEN_GR",) ),
regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),),
TOUT =SIMP(statut='f',typ='TXM',into=("OUI",) ),
EVOL_NOLI =SIMP(statut='f',typ=evol_noli),
NUME_ORDRE =SIMP(statut='f',typ='I'),
INST =SIMP(statut='f',typ='R'),
- PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
+ b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
+ PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
+ b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
+ PRECISION =SIMP(statut='o',typ='R',),),
NUME_DIDI =SIMP(statut='f',typ='I'),
INST_ETAT_INIT =SIMP(statut='f',typ='R'),
),),
EVOL_NOLI =SIMP(statut='f',typ=evol_noli),
NUME_ORDRE =SIMP(statut='f',typ='I'),
INST =SIMP(statut='f',typ='R'),
- PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
+ b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
+ PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
+ b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
+ PRECISION =SIMP(statut='o',typ='R',),),
NUME_DIDI =SIMP(statut='f',typ='I'),
INST_ETAT_INIT =SIMP(statut='f',typ='R'),
),),
regles=(EXCLUS('NUME_INST_INIT','INST_INIT'),
EXCLUS('NUME_INST_FIN','INST_FIN'),),
LIST_INST =SIMP(statut='o',typ=listr8_sdaster),
- EVOLUTION =SIMP(statut='f',typ='TXM',defaut="CHRONOLOGIQUE",
- into=("CHRONOLOGIQUE","RETROGRADE","SANS",) ),
NUME_INST_INIT =SIMP(statut='f',typ='I'),
INST_INIT =SIMP(statut='f',typ='R'),
NUME_INST_FIN =SIMP(statut='f',typ='I'),
ERRE_TEMPS =SIMP(statut='f',typ='TXM',into=("OUI","NON"),defaut="NON",
fr="Adaptation temporelle pour les modélisations HM instationnaires",
ang="Time adaptation for unstationary HM models"),
- PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3 ),
+ PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-6 ),
# DEBUT DE BLOC POUR LA SUBDIVISION DES PAS DE TEMPS
SUBD_METHODE =SIMP( statut='f',typ='TXM',
into =("AUCUNE","UNIFORME","EXTRAPOLE"),
- defaut="AUCUNE",
+ defaut="UNIFORME",
fr="Méthode de subdivision des pas de temps en cas de non-convergence"
),
b_subd_unif=BLOC(condition = "SUBD_METHODE == 'UNIFORME'",
fr="Coefficient multiplicateur de la 1ère subdivision"),
SUBD_PAS =SIMP(statut='f',typ='I',defaut=4,val_min=2,
fr="Nombre de subdivision d'un pas de temps"),
- SUBD_NIVEAU=SIMP(statut='f',typ='I',val_min=2,
+ SUBD_NIVEAU=SIMP(statut='f',typ='I',val_min=2,defaut=3,
fr="Nombre maximum de niveau de subdivision d'un pas de temps"),
SUBD_PAS_MINI=SIMP(statut='f',typ='R',val_min=0.0,
fr="Pas de temps en dessous duquel on ne subdivise plus"),
fr="% itération autorisée en plus"),
),
# FIN DE BLOC POUR LA SUBDIVISION DES PAS DE TEMPS
- OPTI_LIST_INST =SIMP(statut='f',typ='TXM',into=("INCR_MAXI",),),
- NOM_CHAM =SIMP(statut='f',typ='TXM',),
- NOM_CMP =SIMP(statut='f',typ='TXM',),
- VALE =SIMP(statut='f',typ='R'),
),
NEWTON =FACT(statut='d',
- REAC_INCR =SIMP(statut='f',typ='I',defaut= 1 ),
+ REAC_INCR =SIMP(statut='f',typ='I',defaut= 1,val_min=0),
PREDICTION =SIMP(statut='f',typ='TXM',into=("DEPL_CALCULE","TANGENTE","ELASTIQUE","EXTRAPOL") ),
MATRICE =SIMP(statut='f',typ='TXM',defaut="TANGENTE",into=("TANGENTE","ELASTIQUE") ),
- PAS_MINI_ELAS =SIMP(statut='f',typ='R',defaut=0.0E+0),
- REAC_ITER =SIMP(statut='f',typ='I',defaut=0),
- REAC_ITER_ELAS =SIMP(statut='f',typ='I',defaut=0),
+ PAS_MINI_ELAS =SIMP(statut='f',typ='R',val_min=0.0),
+ REAC_ITER =SIMP(statut='f',typ='I',defaut=0,val_min=0),
+ REAC_ITER_ELAS =SIMP(statut='f',typ='I',defaut=0,val_min=0),
EVOL_NOLI =SIMP(statut='f',typ=evol_noli),
),
RECH_LINEAIRE =FACT(statut='f',
METHODE =SIMP(statut='f',typ='TXM',defaut="CORDE",into=("CORDE","MIXTE") ),
RESI_LINE_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-1 ),
- ITER_LINE_MAXI =SIMP(statut='f',typ='I',defaut= 3),
+ ITER_LINE_MAXI =SIMP(statut='f',typ='I',defaut= 3,val_max=999),
ITER_LINE_CRIT =SIMP(statut='f',typ='I',defaut= 20),
PAS_MINI_CRIT =SIMP(statut='f',typ='R',defaut=0.0E+0),
RHO_MIN =SIMP(statut='f',typ='R',defaut=1.0E-2),
regles=(PRESENT_ABSENT('RESI_REFE_RELA','RESI_GLOB_MAXI','RESI_GLOB_RELA'),),
b_refe_rela =BLOC(condition = "RESI_REFE_RELA != None",
regles=(AU_MOINS_UN('SIGM_REFE','EPSI_REFE','FLUX_THER_REFE','FORC_REFE',
- 'FLUX_HYD1_REFE','FLUX_HYD2_REFE','VARI_REFE'),),
+ 'FLUX_HYD1_REFE','FLUX_HYD2_REFE','VARI_REFE','DEPL_REFE'),),
FORC_REFE =SIMP(statut='f',typ='R',min=2,max=2,
fr="Force et Moment de référence pour les éléments de structure."),
SIGM_REFE =SIMP(statut='f',typ='R'),
+ DEPL_REFE =SIMP(statut='f',typ='R'),
EPSI_REFE =SIMP(statut='f',typ='R'),
FLUX_THER_REFE =SIMP(statut='f',typ='R'),
FLUX_HYD1_REFE =SIMP(statut='f',typ='R'),
FLUX_HYD2_REFE =SIMP(statut='f',typ='R'),
VARI_REFE =SIMP(statut='f',typ='R'),
),
-
-
-
RESI_REFE_RELA =SIMP(statut='f',typ='R'),
RESI_GLOB_MAXI =SIMP(statut='f',typ='R'),
RESI_GLOB_RELA =SIMP(statut='f',typ='R'),
ITER_GLOB_MAXI =SIMP(statut='f',typ='I',defaut=10),
ITER_GLOB_ELAS =SIMP(statut='f',typ='I',defaut=25),
+ TYPE =SIMP(statut='f',typ='TXM',defaut="PIC",into=("PIC","PLATEAU")),
+ b_plateau =BLOC(condition = "TYPE == 'PLATEAU' ",
+
+ PLATEAU_ITER =SIMP(statut='f',typ='I',defaut=3, val_min =2),
+ PLATEAU_RELA =SIMP(statut='f',typ='R',defaut=1E-3),
+ ),
+
+
ARRET =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
),
SOLVEUR =FACT(statut='d',
METHODE=SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC","MUMPS","FETI","PETSC") ),
-
b_mult_front =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale",
RENUM =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
),
PARTITION =SIMP(statut='f',typ=sd_feti_sdaster),
CHARGE_PROC0_MA =SIMP(statut='f',typ='I',defaut=100,min=0,max=100),
CHARGE_PROC0_SD =SIMP(statut='f',typ='I',defaut=0,min=0),
+ OUT_OF_CORE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
),
- b_petsc =BLOC(condition = "METHODE == 'PETSC' ",fr="Paramètres de la méthode PETSC",
- VARIANTE =SIMP(statut='f',typ='TXM',into=("GMRES","BCGS","CR","CG","BICG","CHEBYCHEV",),defaut="GMRES" ),
- PRE_COND =SIMP(statut='f',typ='TXM',into=("ILU","SOR","BJACOBI"),defaut="ILU" ),
- RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ),
- RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-8),
- NMAX_ITER =SIMP(statut='f',typ='I',defaut= -1 ),
- ),
b_feti =BLOC(condition = "METHODE == 'FETI' ",fr="Paramètres de la méthode FETI 1",
PARTITION =SIMP(statut='o',typ=sd_feti_sdaster),
RENUM =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
NB_SD_PROC0 =SIMP(statut='f',typ='I',defaut=0,val_min=0),
ACCELERATION_SM =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
),
+ b_petsc =BLOC(condition = "METHODE == 'PETSC' ",fr="Paramètres de la méthode PETSC",
+ ALGORITHME =SIMP(statut='f',typ='TXM',into=("BCGS","BICG","CG","CR","GMRES","TFQMR",),defaut="CG" ),
+ PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC","JACOBI","SOR"),defaut="LDLT_INC" ),
+ b_petsc_ilu =BLOC(condition = "PRE_COND == 'LDLT_INC' ",
+ NIVE_REMPLISSAGE = SIMP(statut='f',typ='I',defaut= 0 ),
+ REMPLISSAGE = SIMP(statut='f',typ='R',defaut= 1.0),
+ ), RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ),
+ RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6),
+ NMAX_ITER =SIMP(statut='f',typ='I',defaut= -1 ),
+ ),
+
+
SYME =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
),
ARCHIVAGE =FACT(statut='f',
LIST_INST =SIMP(statut='f',typ=(listr8_sdaster) ),
INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),
PAS_ARCH =SIMP(statut='f',typ='I' ),
- PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3),
+ PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-6),
ARCH_ETAT_INIT =SIMP(statut='f',typ='TXM',into=("OUI",)),
NUME_INIT =SIMP(statut='f',typ='I'),
DETR_NUME_SUIV =SIMP(statut='f',typ='TXM',into=("OUI",)),
LIST_INST =SIMP(statut='f',typ=listr8_sdaster),
PAS_OBSE =SIMP(statut='f',typ='I'),
LIST_ARCH =SIMP(statut='f',typ=listis_sdaster),
- PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
- CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),),
+ CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
+ b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
+ PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
+ b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
+ PRECISION =SIMP(statut='o',typ='R',),),),
),
AFFICHAGE = FACT(statut='f',max=16,
"LAGR_ECAR","LAGR_INCR","LAGR_ITER",
"MATR_ASSE",
"ITER_DEBO",
- "CTCD_ITER","CTCD_INFO","CTCD_GEOM","CTCD_NOEU",
+ "CTCD_ITER","CTCD_GEOM","CTCD_NOEU",
"CTCC_GEOM","CTCC_FROT","CTCC_CONT",
"SUIV_1","SUIV_2","SUIV_3","SUIV_4","ITER_FETI",
),
INFO =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
),
) ;
-#& MODIF COMMANDE DATE 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE
+#& MODIF COMMANDE DATE 05/09/2008 AUTEUR COURTOIS M.COURTOIS
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2008 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# ======================================================================
+# -*- coding: iso-8859-1 -*-
+# RESPONSABLE COURTOIS M.COURTOIS
+
+
+from Macro.test_temps_ops import test_temps_ops
+
+TEST_TEMPS=MACRO(nom="TEST_TEMPS",op=test_temps_ops, sd_prod=None,
+ fr="Permet de vérifier le temps passé dans les commandes",
+ reentrant='n',
+
+ RESU = FACT(statut='o',max='**',
+ COMMANDE = SIMP(statut='o', typ='TXM',
+ fr="Nom de la commande testee"),
+ NUME_ORDRE = SIMP(statut='f', typ='I', defaut=1, val_min=1,
+ fr="Numero de l'occurrence de la commande testee"),
+ MACHINE = SIMP(statut='o', typ='TXM', max='**',
+ fr="Liste des machines dont on a la référence"),
+ VALE = SIMP(statut='o', typ='R', max='**',
+ fr="Temps CPU sur les machines listees en secondes"),
+ CRITERE = SIMP(statut='f', typ='TXM', defaut='RELATIF', into=('ABSOLU', 'RELATIF')),
+ PRECISION = SIMP(statut='f', typ='R', defaut=0.01, max='**',
+ fr="Ecart admissible pour chaque machine"),
+ TYPE_TEST = SIMP(statut='o', typ='TXM', into=('USER', 'SYSTEM', 'USER+SYS', 'ELAPSED'),
+ defaut='USER+SYS',
+ fr="Valeur testee parmi 'USER', 'SYSTEM', 'USER+SYS', 'ELAPSED'"),
+ ),
+
+ INFO = SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
+)
+
+#& MODIF COMMANDE DATE 30/09/2008 AUTEUR REZETTE C.REZETTE
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
regles=(EXCLUS('NUME_INST_INIT','INST_INIT'),
EXCLUS('NUME_INST_FIN','INST_FIN'),),
LIST_INST =SIMP(statut='o',typ=listr8_sdaster),
- EVOLUTION =SIMP(statut='f',typ='TXM',defaut="CHRONOLOGIQUE",
- into=("CHRONOLOGIQUE","RETROGRADE","SANS",) ),
NUME_INST_INIT =SIMP(statut='f',typ='I'),
INST_INIT =SIMP(statut='f',typ='R'),
NUME_INST_FIN =SIMP(statut='f',typ='I'),
INST_FIN =SIMP(statut='f',typ='R'),
- PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3 ),
+ PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-6 ),
),
ETAT_INIT =FACT(statut='f',
regles=(EXCLUS('STATIONNAIRE','EVOL_THER','CHAM_NO','VALE'),),
VALE =SIMP(statut='f',typ='R'),
NUME_ORDRE =SIMP(statut='f',typ='I'),
INST =SIMP(statut='f',typ='R'),
- PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
+ b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
+ PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
+ b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
+ PRECISION =SIMP(statut='o',typ='R',),),
INST_ETAT_INIT =SIMP(statut='f',typ='R'),
),
SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**',
PARTITION =SIMP(statut='f',typ=sd_feti_sdaster),
CHARGE_PROC0_MA =SIMP(statut='f',typ='I',defaut=100,min=0,max=100),
CHARGE_PROC0_SD =SIMP(statut='f',typ='I',defaut=0,min=0),
+ OUT_OF_CORE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
),
b_petsc =BLOC(condition = "METHODE == 'PETSC' ",fr="Paramètres de la méthode PETSC",
- VARIANTE =SIMP(statut='f',typ='TXM',into=("GMRES","BCGS","CR","CG","BICG","CHEBYCHEV",),defaut="GMRES" ),
- PRE_COND =SIMP(statut='f',typ='TXM',into=("ILU","SOR","BJACOBI"),defaut="ILU" ),
+ ALGORITHME =SIMP(statut='f',typ='TXM',into=("BCGS","BICG","CG","CR","GMRES","TFQMR",),defaut="CG" ),
+ PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC","JACOBI","SOR"),defaut="LDLT_INC" ),
+ b_petsc_ilu =BLOC(condition = "PRE_COND == 'LDLT_INC' ",
+ NIVE_REMPLISSAGE = SIMP(statut='f',typ='I',defaut= 0 ),
+ REMPLISSAGE = SIMP(statut='f',typ='R',defaut= 1.0),
+ ),
RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ),
- RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-8),
+ RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6),
NMAX_ITER =SIMP(statut='f',typ='I',defaut= -1 ),
),
),
LIST_INST =SIMP(statut='f',typ=(listr8_sdaster) ),
INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),
PAS_ARCH =SIMP(statut='f',typ='I' ),
- PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3),
+ PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-6),
ARCH_ETAT_INIT =SIMP(statut='f',typ='TXM',into=("OUI",)),
NUME_INIT =SIMP(statut='f',typ='I'),
DETR_NUME_SUIV =SIMP(statut='f',typ='TXM',into=("OUI",)),
TITRE =SIMP(statut='f',typ='TXM',max='**'),
INFO =SIMP(statut='f',typ='I',into=(1,2)),
) ;
-#& MODIF COMMANDE DATE 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE
+#& MODIF COMMANDE DATE 30/09/2008 AUTEUR REZETTE C.REZETTE
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
regles=(EXCLUS('NUME_INST_INIT','INST_INIT'),
EXCLUS('NUME_INST_FIN','INST_FIN'),),
LIST_INST =SIMP(statut='o',typ=listr8_sdaster),
- EVOLUTION =SIMP(statut='f',typ='TXM',defaut="CHRONOLOGIQUE",
- into=("CHRONOLOGIQUE","RETROGRADE","SANS",) ),
NUME_INST_INIT =SIMP(statut='f',typ='I'),
INST_INIT =SIMP(statut='f',typ='R'),
NUME_INST_FIN =SIMP(statut='f',typ='I'),
INST_FIN =SIMP(statut='f',typ='R'),
- PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-3 ),
- # DEBUT DE BLOC POUR LA SUBDIVISION DES PAS DE TEMPS
- SUBD_METHODE =SIMP( statut='f',typ='TXM',
- into =("AUCUNE","UNIFORME","EXTRAPOLE"),
- defaut="AUCUNE",
- fr="Méthode de subdivision des pas de temps en cas de non-convergence"
- ),
- b_subd_unif=BLOC(condition = "SUBD_METHODE == 'UNIFORME'",
- regles=(AU_MOINS_UN('SUBD_NIVEAU','SUBD_PAS_MINI'),),
- SUBD_COEF_PAS_1=SIMP(statut='f',typ='R',defaut=1.0,val_min=0.0,
- fr="Coefficient multiplicateur de la 1ère subdivision"),
- SUBD_PAS =SIMP(statut='f',typ='I',defaut=4,val_min=2,
- fr="Nombre de subdivision d'un pas de temps"),
- SUBD_NIVEAU=SIMP(statut='f',typ='I',val_min=2,
- fr="Nombre maximum de niveau de subdivision d'un pas de temps"),
- SUBD_PAS_MINI=SIMP(statut='f',typ='R',val_min=0.0,
- fr="Pas de temps en dessous duquel on ne subdivise plus"),
- ),
- b_subd_extr=BLOC(condition = "SUBD_METHODE == 'EXTRAPOLE'",
- regles=(AU_MOINS_UN('SUBD_NIVEAU','SUBD_PAS_MINI'),),
- SUBD_OPTION =SIMP(statut='f',typ='TXM',
- into =("IGNORE_PREMIERES","GARDE_DERNIERES",),
- defaut="IGNORE_PREMIERES",
- fr="Technique d'extrapolation : les 1ere itérations sont ignorées ou les dernières sont gardées"),
- SUBD_ITER_IGNO =SIMP(statut='c',typ='I',defaut=3,val_min=0,
- fr="Les n premières itérations sont ignorées pour l'extrapolation"),
- SUBD_ITER_FIN =SIMP(statut='c',typ='I',defaut=8,val_min=3,
- fr="Seules les n dernières itérations sont prises pour l'extrapolation"),
- SUBD_PAS =SIMP(statut='c',typ='I',defaut=4,val_min=2,
- fr="Nombre de subdivision d'un pas de temps en cas divergence"),
- SUBD_NIVEAU=SIMP(statut='f',typ='I',val_min=2,
- fr="Nombre maximum de niveau de subdivision d'un pas de temps"),
- SUBD_PAS_MINI=SIMP(statut='f',typ='R',val_min=0.0,
- fr="Pas de temps en dessous duquel on ne subdivise plus"),
- SUBD_ITER_PLUS =SIMP(statut='c',typ='I',defaut=50,val_min=20,
- fr="% itération autorisée en plus"),
- ),
- # FIN DE BLOC POUR LA SUBDIVISION DES PAS DE TEMPS
+ PRECISION =SIMP(statut='f',typ='R',defaut=1.0E-6 ),
),
ETAT_INIT =FACT(statut='f',
regles=(EXCLUS('STATIONNAIRE','EVOL_THER','CHAM_NO','VALE'),),
VALE =SIMP(statut='f',typ='R'),
NUME_ORDRE =SIMP(statut='f',typ='I'),
INST =SIMP(statut='f',typ='R'),
- PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
+ b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
+ PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
+ b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
+ PRECISION =SIMP(statut='o',typ='R',),),
INST_ETAT_INIT =SIMP(statut='f',typ='R'),
),
NEWTON =FACT(statut='d',
- REAC_ITER =SIMP(statut='f',typ='I',defaut= 0 ),
+ REAC_ITER =SIMP(statut='f',typ='I',defaut= 0 ,val_min=0),
RESI_LINE_RELA =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
ITER_LINE_MAXI =SIMP(statut='f',typ='I',defaut= 0 ),
),
PARTITION =SIMP(statut='f',typ=sd_feti_sdaster),
CHARGE_PROC0_MA =SIMP(statut='f',typ='I',defaut=100,min=0,max=100),
CHARGE_PROC0_SD =SIMP(statut='f',typ='I',defaut=0,min=0),
+ OUT_OF_CORE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
),
b_petsc =BLOC(condition = "METHODE == 'PETSC' ",fr="Paramètres de la méthode PETSC",
- VARIANTE =SIMP(statut='f',typ='TXM',into=("GMRES","BCGS","CR","CG","BICG","CHEBYCHEV",),defaut="GMRES" ),
- PRE_COND =SIMP(statut='f',typ='TXM',into=("ILU","SOR","BJACOBI"),defaut="ILU" ),
+ ALGORITHME =SIMP(statut='f',typ='TXM',into=("BCGS","BICG","CG","CR","GMRES","TFQMR",),defaut="CG" ),
+ PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC","JACOBI","SOR"),defaut="LDLT_INC" ),
+ b_petsc_ilu =BLOC(condition = "PRE_COND == 'LDLT_INC' ",
+ NIVE_REMPLISSAGE = SIMP(statut='f',typ='I',defaut= 0 ),
+ REMPLISSAGE = SIMP(statut='f',typ='R',defaut= 1.0),
+ ),
RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ),
- RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-8),
+ RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6),
NMAX_ITER =SIMP(statut='f',typ='I',defaut= -1 ),
),
SYME =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ),
LIST_INST =SIMP(statut='f',typ=(listr8_sdaster) ),
INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),
PAS_ARCH =SIMP(statut='f',typ='I' ),
- PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3),
+ PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-6),
ARCH_ETAT_INIT =SIMP(statut='f',typ='TXM',into=("OUI",)),
NUME_INIT =SIMP(statut='f',typ='I'),
DETR_NUME_SUIV =SIMP(statut='f',typ='TXM',into=("OUI",)),
LIST_INST =SIMP(statut='f',typ=listr8_sdaster),
PAS_OBSE =SIMP(statut='f',typ='I'),
LIST_ARCH =SIMP(statut='f',typ=listis_sdaster),
- PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
- CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),),
+ CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
+ b_prec_rela=BLOC(condition="(CRITERE=='RELATIF')",
+ PRECISION =SIMP(statut='f',typ='R',defaut= 1.E-6,),),
+ b_prec_abso=BLOC(condition="(CRITERE=='ABSOLU')",
+ PRECISION =SIMP(statut='o',typ='R',),),),
),
TITRE =SIMP(statut='f',typ='TXM',max='**'),
OPTION =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=2,
INFO =SIMP(statut='f',typ='I',into=(1,2) ),
) ;
-#& MODIF COMMANDE DATE 21/04/2008 AUTEUR LEFEBVRE J-P.LEFEBVRE
+#& MODIF COMMANDE DATE 30/09/2008 AUTEUR REZETTE C.REZETTE
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
NMAX_ITER =SIMP(statut='f',typ='I',defaut= 0 ),
),
+ b_mumps =BLOC(condition = "METHODE == 'MUMPS' ",fr="Paramètres de la méthode MUMPS",
+ TYPE_RESOL =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("NONSYM","SYMGEN","SYMDEF","AUTO")),
+ PRETRAITEMENTS =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("SANS","AUTO")),
+ RENUM =SIMP(statut='f',typ='TXM',defaut="AUTO",into=("AMD","AMF","PORD","METIS","QAMD","AUTO")),
+ ELIM_LAGR2 =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
+ PCENT_PIVOT =SIMP(statut='f',typ='I',defaut=10,),
+ RESI_RELA =SIMP(statut='f',typ='R',defaut=-1.0,),
+ PARALLELISME =SIMP(statut='f',typ='TXM',defaut="CENTRALISE",
+ into=("CENTRALISE","DISTRIBUE_MC","DISTRIBUE_MD","DISTRIBUE_SD")),
+ PARTITION =SIMP(statut='f',typ=sd_feti_sdaster),
+ CHARGE_PROC0_MA =SIMP(statut='f',typ='I',defaut=100,min=0,max=100),
+ CHARGE_PROC0_SD =SIMP(statut='f',typ='I',defaut=0,min=0),
+ OUT_OF_CORE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
+ ),
+ b_petsc =BLOC(condition = "METHODE == 'PETSC' ",fr="Paramètres de la méthode PETSC",
+ ALGORITHME =SIMP(statut='f',typ='TXM',into=("BCGS","BICG","CG","CR","GMRES","TFQMR",),defaut="CG" ),
+ PRE_COND =SIMP(statut='f',typ='TXM',into=("LDLT_INC","JACOBI","SOR"),defaut="LDLT_INC" ),
+ b_petsc_ilu =BLOC(condition = "PRE_COND == 'LDLT_INC' ",
+ NIVE_REMPLISSAGE = SIMP(statut='f',typ='I',defaut= 0 ),
+ REMPLISSAGE = SIMP(statut='f',typ='R',defaut= 1.0),
+ ),
+ RENUM =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ),
+ RESI_RELA =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
+ NMAX_ITER =SIMP(statut='f',typ='I',defaut= -1 ),
+ ),
SYME =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
),
TITRE =SIMP(statut='f',typ='TXM',max='**' ),
-#@ MODIF ops Cata DATE 02/06/2008 AUTEUR COURTOIS M.COURTOIS
+#@ MODIF ops Cata DATE 01/12/2008 AUTEUR COURTOIS M.COURTOIS
# -*- coding: iso-8859-1 -*-
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# en POURSUITE, ne pas écraser la mémorisation existante.
if not hasattr(jdc, 'memo_sensi'):
jdc.memo_sensi = MEMORISATION_SENSIBILITE()
- jdc.memo_sensi.reparent(jdc)
+ jdc.memo_sensi.reparent(jdc)
if hasattr(jdc, 'msg_init') and jdc.msg_init == 1:
# messages d'alarmes désactivés
IGNORE_ALARM = [IGNORE_ALARM]
for idmess in IGNORE_ALARM:
MessageLog.disable_alarm(idmess)
+
+ # en POURSUITE, conserver le catalogue de comportement picklé
+ if not hasattr(jdc, 'catalc'):
+ from Comportement import catalc
+ jdc.catalc = catalc
+
jdc.msg_init = True
# on rattache chaque assd au nouveau jdc courant (en poursuite)
pickle_context[elem].jdc=self.jdc
pickle_context[elem].parent=self.jdc
+ # le marquer comme 'executed'
+ pickle_context[elem].executed = 1
# pour que sds_dict soit cohérent avec g_context
self.jdc.sds_dict[elem] = pickle_context[elem]
assert elem == pickle_context[elem].nom
--- /dev/null
+# -*- coding: utf-8 -*-
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+#
+#
+# ======================================================================
+"""
+ Ce module sert pour charger les paramètres de configuration d'EFICAS
+"""
+# Modules Python
+import os, sys, string, types, re
+import traceback
+
+# Modules Eficas
+from Editeur import utils
+
+class CONFIGbase:
+
+ #-----------------------------------
+ def __init__(self,appli):
+ #-----------------------------------
+
+ # Classe de base permettant de lire, afficher
+ # et sauvegarder les fichiers utilisateurs editeur.ini
+ # et style.py
+ # Classe Mere de : class CONFIG(CONFIGbase)
+ # class CONFIGStyle(CONFIGbase):
+ self.appli = appli
+ self.salome = appli.salome
+ self.dRepMat={}
+ if self.appli:
+ self.parent=appli.top
+ else:
+ self.parent=None
+ self.rep_user = utils.get_rep_user()
+ self.lecture_fichier_ini_standard()
+ self.lecture_catalogues_standard()
+ self.lecture_fichier_ini_utilisateur()
+ self.init_liste_param()
+
+ #--------------------------------------
+ def lecture_fichier_ini_standard(self):
+ #--------------------------------------
+ # Verifie l'existence du fichier "standard"
+ # appelle la lecture de ce fichier
+ if not os.path.isfile(self.fic_ini):
+ if self.appli.ihm=="TK" :
+ from widgets import showerror
+ showerror("Erreur","Pas de fichier de configuration" + self.fic_ini+"\n")
+ print "Erreur à la lecture du fichier de configuration : %s" % self.fic_ini
+ sys.exit(0)
+ self.lecture_fichier(self.fic_ini)
+
+ #-----------------------------
+ def lecture_fichier(self,fic):
+ #------------------------------
+ # lit les paramètres du fichier eficas.ini ou style.py
+ # les transforme en attribut de l 'objet
+ # utilisation du dictionnaire local pour récuperer style
+ txt = utils.read_file(fic)
+ from styles import style
+ d=locals()
+ try:
+ exec txt in d
+ except:
+ l=traceback.format_exception(sys.exc_info()[0],sys.exc_info()[1],sys.exc_info()[2])
+ if self.appli.ihm=="TK" :
+ from widgets import showerror
+ showerror("Erreur","Une erreur s'est produite lors de la lecture du fichier : " + fic + "\n")
+ print "Erreur à la lecture du fichier de configuration : %s" % fic
+ sys.exit()
+
+ for k in d.keys() :
+ if k in self.labels.keys() :
+ setattr(self,k,d[k])
+ # Glut horrible pour les repertoires materiau...
+ elif k[0:9]=="rep_mat_v" :
+ setattr(self,k,d[k])
+
+ for k in d['style'].__dict__.keys() :
+ setattr(self,k,d['style'].__dict__[k])
+
+ if hasattr(self,"catalogues") :
+ for ligne in self.catalogues :
+ version=ligne[1]
+ codeSansPoint=re.sub("\.","",version)
+ chaine="rep_mat_"+codeSansPoint
+ if hasattr(self,chaine):
+ rep_mat=getattr(self,chaine)
+ self.dRepMat[version]=str(rep_mat)
+
+
+ #--------------------------------------
+ def lecture_fichier_ini_utilisateur(self):
+ #--------------------------------------
+ # Surcharge les paramètres standards par les paramètres utilisateur s'ils existent
+ self.fic_ini_utilisateur = os.path.join(self.rep_user,self.fichier)
+ if not os.path.isfile(self.fic_ini_utilisateur):
+ return
+ self.lecture_fichier(self.fic_ini_utilisateur)
+
+ #--------------------------------------
+ def lecture_catalogues_standard(self):
+ #--------------------------------------
+ # repertoires Materiau
+ if hasattr(self,"catalogues") :
+ for ligne in self.catalogues :
+ version=ligne[1]
+ cata=ligne[2]
+ self.dRepMat[version]=os.path.join(cata,'materiau')
+
+ #--------------------------------------
+ def affichage_fichier_ini(self):
+ #--------------------------------------
+ """
+ Affichage des valeurs des paramètres relus par Eficas
+ """
+ import widgets
+ result = widgets.Formulaire(self.parent,
+ obj_pere = self,
+ titre = self.titre,
+ texte = self.texte_ini,
+ items = self.l_param,
+ mode='display',
+ commande=('Modifier',self.commande))
+ if result.resultat :
+ #print 'on sauvegarde les nouveaux paramètres :',result.resultat
+ self.save_param_ini(result.resultat)
+
+ #--------------------------------------
+ def save_param_ini(self,dico):
+ #--------------------------------------
+ # sauvegarde
+ # les nouveaux paramètres dans le fichier de configuration utilisateur
+ #
+ f=open(self.fic_ini_utilisateur,'w+')
+ for k,v in dico.items():
+ if self.types[k] in ('mot2','mot3','mot4'):
+ v1=v[1:-1]
+ val=v1.split(",")
+ p = "("
+ listeval=""
+ for valeur in val:
+ listeval = listeval+ p + str(valeur)
+ p=" , "
+ listeval = listeval + ")"
+ f.write(str(self.pref)+str(k) + '=' + str(listeval) + '\n')
+ elif k == 'catalogues' :
+ f.write(k + '\t=\t' + str(v) + '\n')
+ else:
+ f.write(str(self.pref)+str(k) + '\t=\t"' + str(v) + '"\n')
+ f.close()
+ self.lecture_fichier_ini_utilisateur()
+
+ #-------------------------------------------
+ def creation_fichier_ini_si_possible(self):
+ #-------------------------------------------
+ return self.creation_fichier_ini(mode='ignorer_annuler')
+
+ #--------------------------------------------------------
+ def creation_fichier_ini(self,mode='considerer_annuler'):
+ #---------------------------------------------------------
+ # Récupération des valeurs des paramétres requis pour la création du fichier
+ # eficas.ini
+ #
+ import widgets
+ items = self.l_param
+ result = widgets.Formulaire(self.parent,
+ obj_pere = self,
+ titre = "Saisie des données indispensables à la configuration d'EFICAS",
+ texte = self.texte,
+ items = items,
+ mode='query')
+ if not result.resultat :
+ if mode == 'considerer_annuler':
+ test=0
+ if self.appli.ihm=="TK" :
+ from widgets import showerror,askretrycancel
+ test = askretrycancel("Erreur","Données incorrectes !")
+ if not test:
+ # XXX On sort d'EFICAS, je suppose
+ self.appli.exitEFICAS()
+ else:
+ self.creation_fichier_ini()
+ else:
+ return None
+ else :
+ self.save_param_ini(result.resultat)
+ return result.resultat
+
+ #--------------------------
+ def init_liste_param (self):
+ #--------------------------
+ # construit self.l_param
+ # a partir de self.labels et des attributs
+ # de l objet (mis a jour lors de la lecture du fichier)
+ # l_param est une liste de tuples où chaque tuple est de la forme :
+ # (label,nature,nom_var,defaut)
+
+ self.l_param=[]
+ for k in self.labels.keys() :
+ if hasattr(self,k) :
+ if k in self.YesNo.keys():
+ self.l_param.append((self.labels[k],self.types[k],k,self.__dict__[k],
+ self.YesNo[k][0],self.YesNo[k][1]))
+ else :
+ self.l_param.append((self.labels[k],self.types[k],k,self.__dict__[k]))
+ self.l_param = tuple(self.l_param)
+
+
+class CONFIG(CONFIGbase):
+ def __init__(self,appli,repIni):
+
+ self.dFichierEditeur={"ASTER" : "editeur.ini",
+ "ASTER_SALOME" : "editeur_salome.ini"}
+ self.texte = "EFICAS a besoin de certains renseignements pour se configurer\n"+\
+ "Veuillez remplir TOUS les champs ci-dessous et appuyer sur 'Valider'\n"+\
+ "Si vous annulez, EFICAS ne se lancera pas !!"
+
+ self.salome=appli.salome
+ self.code=appli.code
+ clef=self.code
+ if self.salome != 0 :
+ clef = clef + "_SALOME"
+ self.fichier=self.dFichierEditeur[clef]
+ self.repIni = repIni
+ self.rep_ini = repIni
+ self.fic_ini = os.path.join(self.repIni,self.fichier)
+ self.titre = "Paramètres nécessaires à la configuration d'EFICAS"
+ self.texte_ini = "Voici les paramètres que requiert Eficas"
+ self.commande = self.creation_fichier_ini_si_possible
+ self.labels={"savedir" : "Répertoire initial pour Open/Save des fichiers",
+ "rep_travail" : "Répertoire de travail",
+ "rep_mat" : "Répertoire materiaux",
+ "path_doc" : "Chemin d'accès à la doc Aster",
+ "exec_acrobat" : "Ligne de commande Acrobat Reader",
+ "catalogues" : "Versions du code ",
+ "isdeveloppeur" : "Niveau de message ",
+ "path_cata_dev" : "Chemin d'accès aux catalogues développeurs"}
+
+
+ self.types ={"savedir":"rep", "rep_travail":"rep","rep_mat":"rep",
+ "path_doc": "rep","exec_acrobat":"file","exec_acrobat":"file",
+ "catalogues" :"cata","isdeveloppeur":"YesNo","path_cata_dev":"rep",
+ "DTDDirectory":"rep"}
+
+ self.YesNo={}
+ self.YesNo['isdeveloppeur']=('Deboggage','Utilisation')
+
+ # Valeurs par defaut
+ self.rep_user = utils.get_rep_user()
+ self.initialdir=self.rep_user
+ self.savedir = os.environ['HOME']
+ self.rep_travail=os.path.join(self.rep_user,'uaster','tmp_eficas')
+ self.rep_mat=""
+ self.path_doc=self.rep_user
+ self.exec_acrobat=self.rep_user
+ self.catalogues= os.path.join(self.repIni,'..','Cata/cata.py')
+ self.isdeveloppeur='NON'
+ self.path_cata_dev=os.path.join(self.rep_user,'cata')
+ CONFIGbase.__init__ (self,appli)
+ self.pref=""
+
+ #--------------------------------------
+ def save_params(self):
+ #--------------------------------------
+ # sauvegarde
+ # les nouveaux paramètres dans le fichier de configuration utilisateur
+ #
+ l_param=('exec_acrobat', 'repIni','catalogues','rep_travail','rep_mat','path_doc','savedir')
+ texte=""
+ for clef in l_param :
+ if hasattr(self,clef):
+ valeur=getattr(self,clef)
+ texte= texte + clef+" = " + repr(valeur) +"\n"
+
+
+ # recuperation des repertoires materiaux
+ try :
+ for item in self.catalogues :
+ try :
+ (code,version,cata,format,defaut)=item
+ except :
+ (code,version,cata,format)=item
+ codeSansPoint=re.sub("\.","",version)
+ chaine="rep_mat_"+codeSansPoint
+ if hasattr(self,chaine):
+ valeur=getattr(self,chaine)
+ texte= texte + chaine+" = '" + str(valeur) +"'\n"
+ except :
+ pass
+
+ f=open(self.fic_ini_utilisateur,'w+')
+ f.write(texte)
+ f.close()
+
+
+class CONFIGStyle(CONFIGbase):
+ def __init__(self,appli,repIni):
+ self.salome=appli.salome
+ self.texte = "Pour prendre en compte les modifications \n"+\
+ " RELANCER EFICAS"
+ self.fichier="style.py"
+ self.repIni = repIni
+ self.rep_ini = repIni
+ self.fic_ini = os.path.join(self.repIni,self.fichier)
+ self.titre = "Paramètres d affichage"
+ self.texte_ini = "Voici les paramètres configurables : "
+ self.commande = self.creation_fichier_ini_si_possible
+ self.labels={"background":"couleur du fonds",
+ "foreground":"couleur de la police standard" ,
+ "standard":" police et taille standard",
+ "standard_italique":"police utilisée pour l'arbre ",
+ "standard_gras_souligne":"police utilisée pour le gras souligné",
+ "canvas_italique":"police italique",
+ "standard_gras":"gras",
+ #"canvas":"police",
+ #"canvas_gras":"police gras",
+ #"canvas_gras_italique":"police gras italique",
+ #"standard12":"police 12",
+ #"standard12_gras":"police 12 gras",
+ #"standard12_gras_italique":"police 12 gras italique",
+ #"standardcourier10":"courrier "
+ "statusfont":"police utilisée dans la status Bar",
+ }
+ self.types ={"background":"mot",
+ "foreground":"mot" ,
+ "standard":"mot2",
+ "standard_italique":"mot3",
+ "standard_gras":"mot3",
+ "standard_gras_souligne":"mot4",
+ "canvas":"mot2",
+ "canvas_italique":"mot3",
+ "canvas_gras":"mot3",
+ "canvas_gras_italique":"mot4",
+ "standard12":"mot2",
+ "standard12_gras":"mot3",
+ "standard12_gras_italique":"mot4",
+ "statusfont":"mot2",
+ "standardcourier10":"mot2"}
+ self.YesNo={}
+ self.l_param=[]
+ CONFIGbase.__init__ (self,appli)
+ self.pref="style."
+
+ def affichage_style_ini(self):
+ self.affichage_fichier_ini()
+
+def make_config(appli,rep):
+ return CONFIG(appli,rep)
+
+def make_config_style(appli,rep):
+ return CONFIGStyle(appli,rep)
+
+
initialdir=os.curdir
# Choix des catalogues
-rep_mat_v85=os.path.join(rep_cata,'cataSTA8','materiau')
-rep_mat_v91=os.path.join(rep_cata,'cataSTA9','materiau')
+rep_mat_v88=os.path.join(rep_cata,'cataSTA8','materiau')
+rep_mat_v94=os.path.join(rep_cata,'cataSTA9','materiau')
catalogues = (
('ASTER','v7.8',os.path.join(rep_cata,'cataSTA7'),'python'),
- ('ASTER','v8.7',os.path.join(rep_cata,'cataSTA8'),'python'),
- ('ASTER','v9.3',os.path.join(rep_cata,'cataSTA9'),'python','defaut'),
+ ('ASTER','v8.8',os.path.join(rep_cata,'cataSTA8'),'python'),
+ ('ASTER','v9.4',os.path.join(rep_cata,'cataSTA9'),'python','defaut'),
)
# Accès à la documentation Aster
path_doc = os.path.join(rep_cata,'..','Doc')
-exec_acrobat = "acroread"
+#exec_acrobat = "acroread"
+exec_acrobat = "/local01/assire/v0.5/SALOME-MECA-2008.2/SALOME-MECA/prerequis/xpdf-3.02-linux/xpdf"
# Utilisateur/Développeur
isdeveloppeur = "NON"
path_cata_dev = "/tmp/cata"
catalogues = (
('ASTER','v7.8',os.path.join(rep_cata,'cataSTA7'),'python'),
- ('ASTER','v8.5',os.path.join(rep_cata,'cataSTA8'),'python'),
- ('ASTER','v9.1',os.path.join(rep_cata,'cataSTA9'),'python','defaut'),
+ ('ASTER','v8.7',os.path.join(rep_cata,'cataSTA8'),'python'),
+ ('ASTER','v9.3',os.path.join(rep_cata,'cataSTA9'),'python','defaut'),
)
# REPINI sert à localiser le fichier editeur.ini
# Obligatoire
REPINI=os.path.dirname(os.path.abspath(__file__))
+repIni=REPINI
# INSTALLDIR sert à localiser l'installation d'Eficas
# Obligatoire
if os.name == 'nt':
userprefs = os.sep.join( [ os.environ['HOMEDRIVE'], os.environ['HOMEPATH'], 'Eficas_install', 'prefs.py' ])
else :
- userprefs=os.path.expanduser("~/Eficas_install/prefs.py")
+ userprefs=os.path.expanduser("~/.Eficas_install/prefs.py")
if os.path.isfile(userprefs):
try:
]
),
('Traduction',[
- ('Traduction v7 en v8','TraduitFichier','<Control-t>','Ctrl+T'),
+ ('Traduction v7 en v8','TraduitFichier7'),
+ ('Traduction v8 en v9','TraduitFichier8','<Control-t>','Ctrl+T'),
]
),
('Aide',[
-#@ MODIF properties Accas DATE 04/04/2007 AUTEUR aster M.ADMINISTRATEUR
-# CONFIGURATION MANAGEMENT OF EDF VERSION
+#@ MODIF properties Accas DATE 11/06/2008 AUTEUR aster M.ADMINISTRATEUR
# RESPONSABLE D6BHHHH J-P.LEFEBVRE
# ======================================================================
# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
# IDENTIFICATION DU GESTIONNAIRE DE COMMANDE ACCAS A PARTIR
# DE LA VERSION DU CODE_ASTER ASSOCIE
#----------------------------------------------------------------------
-version = "9.1.15"
-date = "17/10/2007"
+version = "9.3.0"
+date = "11/06/2008"
exploit = False
'editeur.ini',
'editeur_salome.ini',
'eficas_aster.py',
+ 'qtEficas_aster.py',
+ 'configuration.py',
'test_eficas.py',
'style.py',
'__init__.py'
from Noyau.N_CR import CR
#
-__Id__="$Id: analyse_catalogue.py,v 1.6.6.1.4.1 2008-10-10 13:22:15 pnoyret Exp $"
+__Id__="$Id: analyse_catalogue.py,v 1.7.4.1 2008-11-13 10:35:11 cchris Exp $"
__version__="$Name: $"
#
l_noms_commandes = ['OPER','PROC','MACRO','FORM']
--- /dev/null
+class STYLE:
+ background='gray90'
+ foreground='black'
+ entry_background='white'
+ list_background='white'
+ list_select_background='#00008b'
+ list_select_foreground='grey'
+ tooltip_background="yellow"
+
+ standard = ("Helvetica",12)
+ standard_italique = ("Helvetica",12,'italic')
+ standard_gras = ("Helvetica",12,'bold')
+ standard_gras_souligne = ("Helvetica",12,'bold','underline')
+
+ canvas = ('Helvetica',10)
+ canvas_italique = ('Helvetica',10,'italic')
+ canvas_gras = ("Helvetica",10,'bold')
+ canvas_gras_italique = ("Helvetica",12,'bold','italic')
+
+ standard12 = ("Helvetica",14)
+ standard12_gras = ("Helvetica",14,'bold')
+ standard12_gras_italique = ( "Helvetica",14,'bold','italic')
+
+ standardcourier10 = ("Courier",14)
+ statusfont = ("Helvetica",16)
+
+style=STYLE()
--- /dev/null
+# -*- coding: utf-8 -*-
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+#
+#
+# ======================================================================
+"""
+ Module de chargement des composants et de mapping des objets du noyau
+ Accas vers les items d'EFICAS
+
+ - composants : dictionnaire de stockage des relations entre types
+ d'objet du noyau et types d'item
+ - charger_composants() : fonction de chargement des composants. Retourne
+ le dictionnaire composants.
+ - gettreeitem(object) -> type d'item : fonction qui retourne un type
+ d'item correspondant au type de l'objet noyau fourni.
+ - make_objecttreeitem(appli,labeltext, object, setfunction=None) -> item : fonction qui retourne un item
+ correspondant à l'objet noyau fourni.
+"""
+# import généraux
+import os,glob,types
+
+# Dictionnaire {object : item} permettant d'associer un item à un object
+# Ce dictionnaire est renseigné par la méthode charger_composants
+composants = {}
+
+def charger_composants(Ihm="TK"):
+ """
+ Cette fonction a pour but de charger tous les modules composants graphiques
+ (fichiers compo*.py dans le même répertoire que ce module )
+ et de remplir le dictionnaire composants utilisé par make_objecttreeitem
+ """
+ reper=os.path.dirname(__file__)
+ if Ihm == "TK" :
+ repertoire=reper+"/../InterfaceTK"
+ package="InterfaceTK"
+ else :
+ repertoire=reper+"/../InterfaceQT4"
+ package="InterfaceQT4"
+ listfich=glob.glob(os.path.join(repertoire, "compo*.py"))
+ for fichier in listfich:
+ m= os.path.basename(fichier)[:-3]
+ module=__import__(package,globals(),locals(),[m])
+ module = getattr(module, m)
+ composants[module.objet]=module.treeitem
+ return composants
+
+def gettreeitem(object):
+ """
+ Cette fonction retourne la classe item associée à l'objet object.
+ Cette classe item dépend bien sûr de la nature de object, d'où
+ l'interrogation du dictionnaire composants
+ """
+ # Si la definition de l'objet a un attribut itemeditor, il indique
+ # la classe a utiliser pour l'item
+ try:
+ return object.definition.itemeditor
+ except:
+ pass
+
+ # On cherche ensuite dans les composants (plugins)
+ try:
+ itemtype= composants[object.__class__]
+ return itemtype
+ except:
+ pass
+
+ # Puis une eventuelle classe heritee (aleatoire car sans ordre)
+ for e in composants.keys():
+ if e and isinstance(object,e):
+ itemtype= composants[e]
+ return itemtype
+
+ # Si on n'a rien trouve dans les composants on utilise l'objet par defaut
+ itemtype=composants[None]
+ return itemtype
+
+def make_objecttreeitem(appli,labeltext, object, setfunction=None):
+ """
+ Cette fonction permet de construire et de retourner un objet
+ de type item associé à l'object passé en argument.
+ """
+ c = gettreeitem(object)
+ return c(appli,labeltext, object, setfunction)
+
+++ /dev/null
-# -*- coding: utf-8 -*-
-# CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
-# (AT YOUR OPTION) ANY LATER VERSION.
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
-# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
-#
-#
-# ======================================================================
-"""
- Ce module sert pour charger les paramètres de configuration d'EFICAS
-"""
-# Modules Python
-import os, sys, string, types, re
-import traceback
-
-# Modules Eficas
-from Editeur import utils
-
-class CONFIGbase:
-
- #-----------------------------------
- def __init__(self,appli):
- #-----------------------------------
-
- # Classe de base permettant de lire, afficher
- # et sauvegarder les fichiers utilisateurs editeur.ini
- # et style.py
- # Classe Mere de : class CONFIG(CONFIGbase)
- # class CONFIGStyle(CONFIGbase):
-
- self.appli = appli
- self.salome = appli.salome
- self.dRepMat={}
- if self.appli:
- self.parent=appli.top
- else:
- self.parent=None
- self.rep_user = utils.get_rep_user()
- self.lecture_fichier_ini_standard()
- self.lecture_catalogues_standard()
- self.lecture_fichier_ini_utilisateur()
- self.init_liste_param()
-
- #--------------------------------------
- def lecture_fichier_ini_standard(self):
- #--------------------------------------
- # Verifie l'existence du fichier "standard"
- # appelle la lecture de ce fichier
- if not os.path.isfile(self.fic_ini):
- if self.appli.ihm=="TK" :
- from widgets import showerror
- showerror("Erreur","Pas de fichier de configuration" + self.fic_ini+"\n")
- print "Erreur à la lecture du fichier de configuration : %s" % self.fic_ini
- sys.exit(0)
- self.lecture_fichier(self.fic_ini)
-
- #-----------------------------
- def lecture_fichier(self,fic):
- #------------------------------
- # lit les paramètres du fichier eficas.ini ou style.py
- # les transforme en attribut de l 'objet
- # utilisation du dictionnaire local pour récuperer style
- txt = utils.read_file(fic)
- from InterfaceTK.styles import style
- d=locals()
- try:
- exec txt in d
- except:
- l=traceback.format_exception(sys.exc_info()[0],sys.exc_info()[1],sys.exc_info()[2])
- if self.appli.ihm=="TK" :
- from widgets import showerror
- showerror("Erreur","Une erreur s'est produite lors de la lecture du fichier : " + fic + "\n")
- print "Erreur à la lecture du fichier de configuration : %s" % fic
- sys.exit()
-
- for k in d.keys() :
- if k in self.labels.keys() :
- setattr(self,k,d[k])
- # Glut horrible pour les repertoires materiau...
- elif k[0:9]=="rep_mat_v" :
- setattr(self,k,d[k])
-
- for k in d['style'].__dict__.keys() :
- setattr(self,k,d['style'].__dict__[k])
-
- if hasattr(self,"catalogues") :
- for ligne in self.catalogues :
- version=ligne[1]
- codeSansPoint=re.sub("\.","",version)
- chaine="rep_mat_"+codeSansPoint
- if hasattr(self,chaine):
- rep_mat=getattr(self,chaine)
- self.dRepMat[version]=str(rep_mat)
-
- #--------------------------------------
- def lecture_fichier_ini_utilisateur(self):
- #--------------------------------------
- # Surcharge les paramètres standards par les paramètres utilisateur s'ils existent
- self.fic_ini_utilisateur = os.path.join(self.rep_user,self.fichier)
- if not os.path.isfile(self.fic_ini_utilisateur):
- return
- self.lecture_fichier(self.fic_ini_utilisateur)
-
- #--------------------------------------
- def lecture_catalogues_standard(self):
- #--------------------------------------
- # repertoires Materiau
- if hasattr(self,"catalogues") :
- for ligne in self.catalogues :
- version=ligne[1]
- cata=ligne[2]
- self.dRepMat[version]=os.path.join(cata,'materiau')
-
- #--------------------------------------
- def affichage_fichier_ini(self):
- #--------------------------------------
- """
- Affichage des valeurs des paramètres relus par Eficas
- """
- import widgets
- result = widgets.Formulaire(self.parent,
- obj_pere = self,
- titre = self.titre,
- texte = self.texte_ini,
- items = self.l_param,
- mode='display',
- commande=('Modifier',self.commande))
- if result.resultat :
- #print 'on sauvegarde les nouveaux paramètres :',result.resultat
- self.save_param_ini(result.resultat)
-
- #--------------------------------------
- def save_param_ini(self,dico):
- #--------------------------------------
- # sauvegarde
- # les nouveaux paramètres dans le fichier de configuration utilisateur
- #
- f=open(self.fic_ini_utilisateur,'w+')
- for k,v in dico.items():
- if self.types[k] in ('mot2','mot3','mot4'):
- v1=v[1:-1]
- val=v1.split(",")
- p = "("
- listeval=""
- for valeur in val:
- listeval = listeval+ p + str(valeur)
- p=" , "
- listeval = listeval + ")"
- f.write(str(self.pref)+str(k) + '=' + str(listeval) + '\n')
- elif k == 'catalogues' :
- f.write(k + '\t=\t' + str(v) + '\n')
- else:
- f.write(str(self.pref)+str(k) + '\t=\t"' + str(v) + '"\n')
- f.close()
- self.lecture_fichier_ini_utilisateur()
-
- #-------------------------------------------
- def creation_fichier_ini_si_possible(self):
- #-------------------------------------------
- return self.creation_fichier_ini(mode='ignorer_annuler')
-
- #--------------------------------------------------------
- def creation_fichier_ini(self,mode='considerer_annuler'):
- #---------------------------------------------------------
- # Récupération des valeurs des paramétres requis pour la création du fichier
- # eficas.ini
- #
- import widgets
- items = self.l_param
- result = widgets.Formulaire(self.parent,
- obj_pere = self,
- titre = "Saisie des données indispensables à la configuration d'EFICAS",
- texte = self.texte,
- items = items,
- mode='query')
- if not result.resultat :
- if mode == 'considerer_annuler':
- test=0
- if self.appli.ihm=="TK" :
- from widgets import showerror,askretrycancel
- test = askretrycancel("Erreur","Données incorrectes !")
- if not test:
- # XXX On sort d'EFICAS, je suppose
- self.appli.exitEFICAS()
- else:
- self.creation_fichier_ini()
- else:
- return None
- else :
- self.save_param_ini(result.resultat)
- return result.resultat
-
- #--------------------------
- def init_liste_param (self):
- #--------------------------
- # construit self.l_param
- # a partir de self.labels et des attributs
- # de l objet (mis a jour lors de la lecture du fichier)
- # l_param est une liste de tuples où chaque tuple est de la forme :
- # (label,nature,nom_var,defaut)
-
- self.l_param=[]
- for k in self.labels.keys() :
- if hasattr(self,k) :
- if k in self.YesNo.keys():
- self.l_param.append((self.labels[k],self.types[k],k,self.__dict__[k],
- self.YesNo[k][0],self.YesNo[k][1]))
- else :
- self.l_param.append((self.labels[k],self.types[k],k,self.__dict__[k]))
- self.l_param = tuple(self.l_param)
-
-
-class CONFIG(CONFIGbase):
- def __init__(self,appli,rep_ini):
- self.texte = "EFICAS a besoin de certains renseignements pour se configurer\n"+\
- "Veuillez remplir TOUS les champs ci-dessous et appuyer sur 'Valider'\n"+\
- "Si vous annulez, EFICAS ne se lancera pas !!"
- self.salome=appli.salome
- self.code=appli.code
- if self.salome == 0 :
- self.fichier="editeur.ini"
- else :
- self.fichier="editeur_salome.ini"
- self.rep_ini = rep_ini
- self.fic_ini = os.path.join(self.rep_ini,self.fichier)
- self.titre = "Paramètres nécessaires à la configuration d'EFICAS"
- self.texte_ini = "Voici les paramètres que requiert Eficas"
- self.commande = self.creation_fichier_ini_si_possible
- self.labels={"initialdir" : "Répertoire initial pour Open/Save des fichiers",
- "rep_travail" : "Répertoire de travail",
- "rep_mat" : "Répertoire materiaux",
- "path_doc" : "Chemin d'accès à la doc Aster",
- "exec_acrobat" : "Ligne de commande Acrobat Reader",
- "catalogues" : "Versions du code ",
- "isdeveloppeur" : "Niveau de message ",
- "path_cata_dev" : "Chemin d'accès aux catalogues développeurs"}
-
- if self.code == "OPENTURNS" :
- self.labels["DTDDirectory"]="Chemin d'accès au wraper"
-
- self.types ={"initialdir":"rep", "rep_travail":"rep","rep_mat":"rep",
- "path_doc": "rep","exec_acrobat":"file","exec_acrobat":"file",
- "catalogues" :"cata","isdeveloppeur":"YesNo","path_cata_dev":"rep",
- "DTDDirectory":"rep"}
-
- self.YesNo={}
- self.YesNo['isdeveloppeur']=('Deboggage','Utilisation')
-
- # Valeurs par defaut
- self.rep_user = utils.get_rep_user()
- self.initialdir=self.rep_user
- self.rep_travail=os.path.join(self.rep_user,'uaster','tmp_eficas')
- self.rep_mat=""
- self.path_doc=self.rep_user
- self.exec_acrobat=self.rep_user
- self.catalogues= os.path.join(self.rep_ini,'..','Cata/cata.py')
- self.isdeveloppeur='NON'
- self.path_cata_dev=os.path.join(self.rep_user,'cata')
- CONFIGbase.__init__ (self,appli)
- self.pref=""
-
- #--------------------------------------
- def save_params(self):
- #--------------------------------------
- # sauvegarde
- # les nouveaux paramètres dans le fichier de configuration utilisateur
- #
- l_param=('exec_acrobat', 'rep_ini','catalogues','rep_travail','rep_mat','path_doc')
- texte=""
- for clef in l_param :
- if hasattr(self,clef):
- valeur=getattr(self,clef)
- texte= texte + clef+" = " + repr(valeur) +"\n"
-
-
- # recuperation des repertoires materiaux
- try :
- for item in self.catalogues :
- try :
- (code,version,cata,format,defaut)=item
- except :
- (code,version,cata,format)=item
- codeSansPoint=re.sub("\.","",version)
- chaine="rep_mat_"+codeSansPoint
- if hasattr(self,chaine):
- valeur=getattr(self,chaine)
- texte= texte + chaine+" = '" + str(valeur) +"'\n"
- except :
- pass
-
- f=open(self.fic_ini_utilisateur,'w+')
- f.write(texte)
- f.close()
-
-
-class CONFIGStyle(CONFIGbase):
- def __init__(self,appli,rep_ini):
- self.salome=appli.salome
- self.texte = "Pour prendre en compte les modifications \n"+\
- " RELANCER EFICAS"
- self.fichier="style.py"
- self.rep_ini = rep_ini
- self.fic_ini = os.path.join(self.rep_ini,self.fichier)
- self.titre = "Paramètres d affichage"
- self.texte_ini = "Voici les paramètres configurables : "
- self.commande = self.creation_fichier_ini_si_possible
- self.labels={"background":"couleur du fonds",
- "foreground":"couleur de la police standard" ,
- "standard":" police et taille standard",
- "standard_italique":"police utilisée pour l'arbre ",
- "standard_gras_souligne":"police utilisée pour le gras souligné",
- "canvas_italique":"police italique",
- "standard_gras":"gras",
- #"canvas":"police",
- #"canvas_gras":"police gras",
- #"canvas_gras_italique":"police gras italique",
- #"standard12":"police 12",
- #"standard12_gras":"police 12 gras",
- #"standard12_gras_italique":"police 12 gras italique",
- #"standardcourier10":"courrier "
- "statusfont":"police utilisée dans la status Bar",
- }
- self.types ={"background":"mot",
- "foreground":"mot" ,
- "standard":"mot2",
- "standard_italique":"mot3",
- "standard_gras":"mot3",
- "standard_gras_souligne":"mot4",
- "canvas":"mot2",
- "canvas_italique":"mot3",
- "canvas_gras":"mot3",
- "canvas_gras_italique":"mot4",
- "standard12":"mot2",
- "standard12_gras":"mot3",
- "standard12_gras_italique":"mot4",
- "statusfont":"mot2",
- "standardcourier10":"mot2"}
- self.YesNo={}
- self.l_param=[]
- CONFIGbase.__init__ (self,appli)
- self.pref="style."
-
- def affichage_style_ini(self):
- self.affichage_fichier_ini()
-
-def make_config(appli,rep):
- return CONFIG(appli,rep)
-
-def make_config_style(appli,rep):
- return CONFIGStyle(appli,rep)
-
-
--- /dev/null
+# -*- coding: utf-8 -*-
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+#
+#
+# ======================================================================
+standard = ("Times",10)
+standard_italique = ("Times",10,'italic')
+standard_gras = ("Times",10,'bold')
+standard_gras_souligne = ("Times",10,'bold','underline')
+
+canvas = ('times',8)
+canvas_italique = ('times',8,'italic')
+canvas_gras = ("Times",8,'bold')
+canvas_gras_italique = ("Times",10,'bold','italic')
+
+standard12 = ("Times",12)
+standard12_gras = ("Times",12,'bold')
+standard12_gras_italique = ( "times",12,'bold','italic')
+
+standardcourier10 = ("Courier",10)
+
les imports de modules Python
"""
import sys
+import os
+
import prefs
+INSTALLDIR=prefs.INSTALLDIR
+sys.path.append(INSTALLDIR)
+sys.path.append(INSTALLDIR+"/Ui")
+sys.path.append(INSTALLDIR+"/InterfaceQT")
+sys.path.append(INSTALLDIR+"/Editeur")
+
# Ce chemin permet d'importer les modules Noyau et Validation
# représentant le code utilisé (si fourni)
-if prefs.CODE_PATH:
- sys.path[:0]=[prefs.CODE_PATH]
- import Noyau,Validation
- del sys.path[0]
-
# Ensuite on utilise les packages de l'intallation
+if hasattr(prefs,'CODE_PATH'):
+ if prefs.CODE_PATH:
+ sys.path[:0]=[prefs.CODE_PATH]
+ import Noyau,Validation
+ del sys.path[0]
sys.path[:0]=[prefs.INSTALLDIR]
+
+# Ensuite on surcharge eventuellement
+#if hasattr(prefs,'CODE_PATH_SURCHARGE'):
+# if prefs.CODE_PATH_SURCHARGE:
+# sys.path.insert(0,prefs.CODE_PATH_SURCHARGE)
+
import Accas
import re
sous_menus={"ASTER" : {0:{"3D":"3D.comm"},1:{"poutre":"pou.comm"},2:{"salome":"salome.comm"},3:{"divers":"comm"}},
- "OPENTURNS" : {0:{"Anne":"Anne.comm"}}
+ "OPENTURNS_STUDY" : {0:{"Anne":"Std.comm"}},
+ "OPENTURNS_WRAPPER" : {0:{"Anne":"wrapper_exemple.comm"}}
}
class listePatrons :
self.traite_liste()
def traite_liste(self):
+ if not (os.path.exists(self.rep_patrons)) : return
for file in os.listdir(self.rep_patrons):
for i in range(len(self.sous_menu)):
clef=self.sous_menu[i].keys()[0]
--- /dev/null
+# -*- coding: utf-8 -*-
+import os
+import prefs
+import basestyle
+from basestyle import STYLE,style
+
+inistylefile=os.path.join(prefs.REPINI,"style.py")
+if os.path.isfile(inistylefile):
+ execfile(inistylefile)
+
+userstylefile=os.path.expanduser("~/Eficas_install/style.py")
+if os.path.isfile(userstylefile):
+ execfile(userstylefile)
+
+import fontes
+for attr in dir(style):
+ if attr[0]=='_':continue
+ if not hasattr(fontes,attr):continue
+ setattr(fontes,attr,getattr(style,attr))
+
+
except:
rep_user_eficas = os.path.join('C:','Eficas_install')
else :
- rep_user_eficas = os.path.join(os.environ['HOME'],'Eficas_install')
+ rep_user_eficas= os.path.join(os.environ['HOME'],'.Eficas_install')
if os.path.exists(rep_user_eficas):
if os.path.isfile(rep_user_eficas) :
print "Un fichier de nom %s existe déjà : impossible de créer un répertoire de même nom" %rep_user_eficas
def supprime(self):
#print "supprime",self
Noyau.N_JDC.JDC.supprime(self)
- # self.appli=None
- # self.g_context={}
- # self.const_context={}
- # self.sds=[]
- # self.sds_dict={}
- # self.mc_globaux={}
- # self.current_context={}
- # self.condition_context={}
- # self.etapes_niveaux=[]
- # self.niveau=None
- # self.params=[]
- # self.fonctions=[]
- # self._etape_context=None
- # self.etapes=[]
+ self.appli=None
+ self.g_context={}
+ self.const_context={}
+ self.sds=[]
+ self.sds_dict={}
+ self.mc_globaux={}
+ self.current_context={}
+ self.condition_context={}
+ self.etapes_niveaux=[]
+ self.niveau=None
+ self.params=[]
+ self.fonctions=[]
+ self._etape_context=None
+ self.etapes=[]
#ATTENTION SURCHARGE : cette methode doit etre gardée en synchronisation avec celle de Noyau
def register(self,etape):
self.text_error=""
if self.nom != "INCLUDE_MATERIAU":
if self.parent.appli.ihm == "QT" :
- format=self.jdc.appli.format_fichier
+ format=self.parent.appli.appliEficas.format_fichier
else :
format=self.jdc.appli.format_fichier.get()
if convert.plugins.has_key(format):
else:
self.text_converted=1
+
j=self.JdC_aux( procedure=text, nom=fichier,
appli=self.jdc.appli,
cata=self.jdc.cata,
f,text=None,None
return f,text
+
+ def make_include2(self,fichier=None):
+ # gestion de l unicite SVP
+ unite=999
+ if hasattr(self,'fichier_ini') : return
+ #print "je passe le if"
+ if fichier == None :
+ fichier=str(self.jdc.appli.get_file_variable())
+ #print fichier
+ if fichier == str("") :
+ self.fichier_ini="badfile"
+ self.fichier_text=""
+ self.fichier_err="Le fichier INCLUDE n est pas defini"
+ self.parent.record_unit(999,self)
+ try :
+ MCFils=self.get_child('FICHIER')
+ MCFils.set_valeur(None)
+ except :
+ pass
+ raise Exception(self.fichier_err)
+
+ # On memorise le fichier retourne
+ self.fichier_ini = fichier
+ self.fichier_text = ""
+ self.contexte_fichier_init={}
+ self.fichier_unite=999
+ self.fichier_err=None
+ try :
+ from openturns import WrapperFile
+ monWrapper=WrapperFile(fichier)
+ data=monWrapper.getWrapperData()
+ maVariableListe=data.getVariableList()
+ nbVariables=maVariableListe.getSize()
+ for i in range(nbVariables) :
+ nom=maVariableListe[i].id_
+ type=maVariableListe[i].type_
+ if type :
+ ligneTexte=nom+"=VARI(type='IN',);\n"
+ else :
+ ligneTexte=nom+"=VARI(type='OUT',);\n"
+ self.fichier_text = self.fichier_text + ligneTexte
+ except:
+ self.make_incl2_except()
+ raise
+
+ try:
+ import Extensions.jdc_include
+ except:
+ traceback.print_exc()
+ self.make_incl2_except()
+ raise
+ self.JdC_aux=Extensions.jdc_include.JdC_include
+
+ try:
+ self.make_contexte_include(self.fichier_ini ,self.fichier_text)
+ self.parent.record_unit(unite,self)
+ try :
+ MCFils=self.get_child('FICHIER')
+ MCFils.set_valeur(fichier)
+ except :
+ pass
+ except:
+ self.make_incl2_except()
+ raise
+
+ def make_incl2_except(self):
+ #print "make_incl2_except"
+ l=traceback.format_exception_only("Fichier invalide",sys.exc_info()[1])
+ if self.jdc.appli:
+ self.jdc.appli.affiche_alerte("Erreur lors de l'evaluation du fichier inclus",
+ message="Le contenu de ce fichier ne sera pas pris en compte\n"+string.join(l)
+ )
+ self.parent.record_unit(unite,self)
+ self.g_context={}
+ self.etapes=[]
+ self.jdc_aux=None
+ self.fichier_err = string.join(l)
+ self.contexte_fichier_init={}
+ try :
+ MCFils=self.get_child('FICHIER')
+ MCFils.set_valeur(None)
+ except :
+ pass
+
+
#ATTENTION SURCHARGE : cette methode surcharge celle de Noyau (a garder en synchro)
def make_include(self,unite=None):
"""
try:
self.make_contexte_include(self.fichier_ini ,self.fichier_text)
self.parent.record_unit(unite,self)
- #print "make_include.context_ini",self.jdc_aux.context_ini
except:
l=traceback.format_exception_only("Fichier invalide",sys.exc_info()[1])
if self.jdc.appli:
self.addColumn(self.trUtf8('Commande'))
self.addColumn(self.trUtf8('Concept/Valeur'))
- self.setMinimumSize(QSize(400,500))
+ #self.setMinimumSize(QSize(400,500))
self.connect(self,SIGNAL('contextMenuRequested(QListViewItem *, const QPoint &, int)'),
self.handleContextMenu)
import prefs
import qtCommun
-VERSION_EFICAS = "EFICAS v1.14"
+VERSION_EFICAS = "EFICAS v1.15"
# -------------------------- #
self.jdc_openturn_std=""
self.ihm="QT"
- from Editeur import configuration
+ import configuration
self.CONFIGURATION = self.appliEficas.CONFIGURATION
self.CONFIGStyle = self.appliEficas.CONFIGStyle
self.test=0
if unite :
titre = "Choix unite %d " %unite
texte = "Le fichier %s contient une commande INCLUDE \n" % fic_origine
- texte = texte+'Donnez le nom du fichier correspondant\n à l unité logique %d' % unite
+ texte = texte+'Donnez le nom du fichier correspondant à l unité logique %d' % unite
labeltexte = 'Fichier pour unite %d :' % unite
else:
titre = "Choix d'un fichier de poursuite"
texte = "Le fichier %s contient une commande %s\n" %(fic_origine,'POURSUITE')
- texte = texte+'Donnez le nom du fichier dont vous \n voulez faire une poursuite'
+ texte = texte+'Donnez le nom du fichier dont vous voulez faire une poursuite'
QMessageBox.information( self, titre,texte)
- fn = QFileDialog.getOpenFileName( None, "", self, None, titre )
+ fn = QFileDialog.getOpenFileName( self.CONFIGURATION.savedir,"", self, titre, "" )
if fn.isNull():
return
if saveas or self.fileName is None:
if path is None and self.fileName is not None:
path = os.path.dirname(unicode(self.fileName))
- selectedFilter = QString('')
+ else :
+ path=self.CONFIGURATION.savedir
fn = QFileDialog.getSaveFileName(path,
- self.trUtf8("JDC (*.comm);;"
- "All Files (*)"), self, None,
- self.trUtf8("Save File"), selectedFilter, 0)
-
+ self.trUtf8("JDC (*.comm);;" "All Files (*)"),self, None,
+ self.trUtf8("Save File"), '', 0)
+
if not fn.isNull():
ext = QFileInfo(fn).extension()
if ext.isEmpty():
- ex = selectedFilter.section('(*',1,1).section(')',0,0)
- if not ex.isEmpty():
- fn.append(ex)
+ ex = ".comm"
+ fn.append(ex)
if QFileInfo(fn).exists():
- abort = QMessageBox.warning(self,
+ abort = QMessageBox.warning(
+ self,
self.trUtf8("Save File"),
- self.trUtf8("The file <b>%1</b> already exists.")
- .arg(fn),
+ self.trUtf8("The file <b>%1</b> already exists.").arg(fn),
self.trUtf8("&Overwrite"),
- self.trUtf8("&Abort"), None, 1)
+ self.trUtf8("&Abort") )
+ print abort
if abort:
return (0, None)
fn = unicode(QDir.convertSeparators(fn))
l_valeurs=[]
if (len(liste)% self.nbValeurs != 0):
message="La cardinalité n'est pas correcte, la dernière valeur est ignorée"
- #self.Commentaire.setText(QString(commentaire))
- self.editor.affiche_infos(commentaire)
+ self.editor.affiche_infos(message)
for i in range(len(liste)/ self.nbValeurs) :
if (self.nbValeurs==2):
t=(liste[i*self.nbValeurs], liste[i*self.nbValeurs+1])
self.LBValeurs.clear()
listeValeurs=self.node.item.GetListeValeurs()
for valeur in self.DecoupeListeValeurs(listeValeurs):
- self.LBValeurs.insertItem(str(valeur))
+ if type(valeur) == types.TupleType:
+ TupleEnTexte="("
+ for val in valeur :
+ TupleEnTexte = TupleEnTexte + str(self.politique.GetValeurTexte(val)) +", "
+ TupleEnTexte = TupleEnTexte[0:-2] +")"
+ self.LBValeurs.insertItem(TupleEnTexte)
+ else :
+ self.LBValeurs.insertItem(QString(str(valeur)))
def Ajout1Valeur(self,liste=[]):
# Pour être appele a partir du Panel Importer (donc plusieurs fois par AjouterNValeur)
if liste == [] :
- liste,validite=SaisieValeur.TraiteLEValeur(self)
+ liste,validite,texteBrut=SaisieValeur.TraiteLEValeur(self)
+ if validite :
+ for val in texteBrut.split(',') :
+ self.politique.AjoutDsDictReel(val)
else :
validite=1
if validite == 0 : return
index=self.LBValeurs.currentItem() +1
indexListe=index*self.nbValeurs
if index == 0 :
- index = -1
+ index = len(self.listeValeursCourantes)
indexListe=len(self.listeValeursCourantes)
listeVal=[]
for valeur in self.listeValeursCourantes :
listeVal.append(valeur)
- validite,comm,comm2,listeRetour=self.politique.AjoutValeurs(liste,index,listeVal)
+ validite,comm,comm2,listeRetour=self.politique.AjoutValeurs(liste,index+1,listeVal)
self.Commentaire.setText(comm2)
if not validite :
self.editor.affiche_infos(comm)
l1=self.listeValeursCourantes[:indexListe]
l3=self.listeValeursCourantes[indexListe:]
for valeur in self.DecoupeListeValeurs(listeRetour):
- self.LBValeurs.insertItem(QString(str(valeur)),index)
+ if type(valeur) == types.TupleType:
+ TupleEnTexte="("
+ for val in valeur :
+ TupleEnTexte = TupleEnTexte + str(self.politique.GetValeurTexte(val)) +", "
+ TupleEnTexte = TupleEnTexte[0:-2] +")"
+ self.LBValeurs.insertItem(TupleEnTexte,index)
+ else :
+ self.LBValeurs.insertItem(QString(str(valeur)),index)
index=index+1
self.listeValeursCourantes=l1+listeRetour+l3
MonMacroPanel.__init__(self,node,parent,name,fl)
#Version TK ??
#if not hasattr(self.node.item.object,'fichier_ini'):
- if not hasattr(self.node.item.object,'fichier_unite'):
+ if not hasattr(self.node.item.object,'fichier_ini'):
self.ajoutPageBad()
else:
self.ajoutPageOk()
self.BChangeFile = QPushButton(self.TabPage,"BChangeFile")
self.BChangeFile.setGeometry(QRect(290,350,161,41))
- self.BChangeFile.setSizePolicy(QSizePolicy(0,0,0,0,self.BChangeFile.sizePolicy().hasHeightForWidth()))
+ #self.BChangeFile.setSizePolicy(QSizePolicy(0,0,0,0,self.BChangeFile.sizePolicy().hasHeightForWidth()))
self.BChangeFile.setText(self._DMacro__tr("Autre Fichier"))
self.connect(self.BBrowse,SIGNAL("clicked()"),self.BBrowsePressed)
if res == 1 : return
appli=self.configuration.appli
- rep_ini=self.configuration.rep_ini
+ repIni=self.configuration.repIni
fic_ini_util=self.configuration.fic_ini_utilisateur
old_fic_ini_util=fic_ini_util+"_old"
commande="mv "+fic_ini_util+" "+old_fic_ini_util
os.system(commande)
- from Editeur import configuration
- configNew=configuration.CONFIG(appli,rep_ini)
+ import configuration
+ configNew=configuration.CONFIG(appli,repIni)
self.configuration=configNew
appli.CONFIGURATION=configNew
self.configuration.save_params()
def detruitBouton(self):
mc = self.node.item.get_definition()
type = mc.type[0]
- print self.editor.salome
if not(('grma' in repr(type)) or ('grno' in repr(type))) or not(self.editor.salome) :
self.BSalome.close()
self.BView2D.close()
def BuildLBValeurs(self):
# redefinit en raison de l heritage par monFonctionPanel
- SaisieValeur.BuildLBValeurs(self)
+ SaisieValeur.BuildLBValeurs(self,politique=self.politique)
def BOkPourListePressed(self):
if self.listeValeursCourantes == [] :
def Ajout1Valeur(self,valeur=None):
- liste,validite=SaisieValeur.TraiteLEValeur(self,valeur)
+ liste,validite,texteBrut=SaisieValeur.TraiteLEValeur(self,valeur)
if validite == 0 : return
if liste ==[] : return
+ for val in texteBrut.split(',') :
+ self.politique.AjoutDsDictReel(val)
index=self.LBValeurs.currentItem() + 1
listeVal=[]
l3=self.listeValeursCourantes[index:]
for valeur in listeRetour:
self.LBValeurs.insertItem(QString(str(valeur)),index)
+ self.LBValeurs.setCurrentItem(index)
index=index+1
self.listeValeursCourantes=l1+listeRetour+l3
+ self.editor.modified=1
def BImportPressed(self):
- init=QString( self.editor.CONFIGURATION.rep_user)
+ init=QString( self.editor.CONFIGURATION.savedir)
fn = QFileDialog.getOpenFileName(init, self.trUtf8('All Files (*)',))
if fn == None : return
if fn == "" : return
l3=self.listeValeursCourantes[index:]
for valeur in listeRetour:
self.LBValeurs.insertItem(QString(str(valeur)),index)
+ self.LBValeurs.setCurrentItem(index)
index=index+1
self.listeValeursCourantes=l1+listeRetour+l3
SaisieValeur.RemplitPanel(self,self.listeValeursCourantes)
DRac.__init__(self,parent,name,fl)
QTPanel.__init__(self,node,parent)
QTPanelTBW2.__init__(self,node,parent,racine=1)
+ self.setMinimumSize(0,0)
def BSupPressed(self):
QTPanel.BSupPressed(self)
self.initVal()
def readVal(self):
+ if self.file == "" : return
f = open(self.file, "rb")
self.texte = f.read()
f.close()
def BImportSelPressed(self):
text=str(self.TBtext.selectedText())
self.textTraite=text
+ if self.textTraite == "" : return
self.Traitement()
def BImportToutPressed(self):
liste1=self.textTraite.split(self.separateur)
liste=[]
for val in liste1 :
- val=str(val)
- try :
- val=eval(val,{})
- except :
- pass
- liste.append(val)
+ if val != '' and val != ' ' and val != self.separateur :
+ val=str(val)
+ try :
+ val2=eval(val,{})
+ liste.append(val)
+ except :
+ pass
self.FonctPanel.AjoutNValeur(liste)
def SetValeurTexte(self,texteValeur) :
try :
if "R" in self.node.item.object.definition.type:
- if texteValeur[0] != "'":
+ if str(texteValeur)[0] != "'":
clef=eval(texteValeur)
if str(clef) != str(texteValeur) :
self.node.item.object.init_modif()
except:
pass
+ def AjoutDsDictReel(self,texteValeur):
+ try :
+ #if 1 :
+ if "R" in self.node.item.object.definition.type:
+ if str(texteValeur)[0] != "'":
+ clef=eval(texteValeur)
+ if str(clef) != str(texteValeur) :
+ clefobj=self.node.item.object.GetNomConcept()
+ if not self.parent.dict_reels.has_key(clefobj):
+ self.parent.dict_reels[clefobj] = {}
+ self.parent.dict_reels[clefobj][clef]=texteValeur
+ self.parent.dict_reels[clefobj]
+ except:
+ #else:
+ #print "pb ds try de AjoutDsDictReel"
+ pass
+
def GetValeurTexte(self,valeur) :
valeurTexte=valeur
if "R" in self.node.item.object.definition.type:
return validite, commentaire
-#------------------------
-class PolitiquePlusieurs:
-#------------------------
+#-------------------------------------
+class PolitiquePlusieurs (Validation):
+#-------------------------------------
"""
classe servant pour les entrees ne demandant qu un mot clef
"""
if not( type(listevaleur) in (types.ListType,types.TupleType)) :
listevaleur=tuple(listevaleur)
for valeur in listevaleur :
+ valeurScientifique=valeur
# On teste le type de la valeur
valide=self.node.item.valide_item(valeur)
if not valide :
- #print self.__class__
- #if not testtype :
try :
valeur,valide=self.node.item.eval_valeur(valeur)
valide,commentaire = self.node.item.object.verif_type(valeur)
commentaire="La liste a déjà atteint le nombre maximum d'éléments,ajout refusé"
return valide,commentaire,commentaire2,listeRetour
if len(listecourante) + 1 > min :
+ commentaire=""
return valide,commentaire,commentaire2,listeRetour
# On ajoute la valeur testee a la liste courante et a la liste acceptee
+ self.AjoutDsDictReel(valeurScientifique)
listecourante.insert(index,valeur)
index=index+1
listeRetour.append(valeur)
def saveFile(self):
#recuperation du nom du fichier
- fn = QFileDialog.getSaveFileName(None,
+ fn = QFileDialog.getSaveFileName("",
self.trUtf8("All Files (*)"), self, None,
self.trUtf8("Save File"), '', 0)
if not fn.isNull():
import os, sys
REPINI=os.path.dirname(os.path.abspath(__file__))
INSTALLDIR=os.path.join(REPINI,'..')
-sys.path.append(INSTALLDIR)
-sys.path.append(INSTALLDIR+"/Ui")
-sys.path.append(INSTALLDIR+"/InterfaceQT")
+from Editeur import import_code
from qt import *
from myMain import Eficas
from viewManager import MyTabview
-from Editeur import configuration
+import configuration
from Editeur import session
import utilIcons
titre = "version "
monVisu=DVisu(parent=self.viewmanager,fl=Qt.WType_Dialog)
monVisu.setCaption(titre)
- monVisu.TB.setText("Eficas V1.14")
+ monVisu.TB.setText("Eficas V1.15")
monVisu.adjustSize()
monVisu.show()
self.listBoxASSD.setCurrentItem(0)
- def BuildLBValeurs(self):
+ def BuildLBValeurs(self,politique=None):
self.LBValeurs.clear()
listeValeurs=self.node.item.GetListeValeurs()
for valeur in listeValeurs:
- self.LBValeurs.insertItem(str(valeur))
+ if politique :
+ self.LBValeurs.insertItem(str(self.politique.GetValeurTexte(valeur)))
+ else :
+ self.LBValeurs.insertItem(str(valeur))
if listeValeurs != None and listeValeurs != [] :
self.LBValeurs.setCurrentItem(len(listeValeurs) - 1)
valeurBrute=str(self.LEValeur.text())
else :
valeurBrute=valeurTraitee
- if valeurBrute == str("") : return 1, listeValeurs
+ if valeurBrute == str("") : return listeValeurs,1,valeurBrute
try :
valeur=eval(valeurBrute,{})
except :
except :
commentaire = "Veuillez entrer le complexe sous forme aster ou sous forme python"
self.editor.affiche_infos(commentaire)
- return listeValeurs,0
+ return listeValeurs,0,valeurBrute
else : # ce n'est pas un tuple à la mode aster
else:
listeValeurs.append(valeur)
- return listeValeurs,1
+ return listeValeurs,1,valeurBrute
class SaisieSDCO :
from qt import *
-version="14"
+version="15"
class READERCATA:
self.parent=parent
self.code=self.appli.code
self.appli.format_fichier='python'
+ self.appli.appliEficas.format_fichier='python'
self.version_code=self.appli.version_code
self.version_cata=None
self.fic_cata=None
if self.version_code == cata[1]:
self.fic_cata = cata[2]
self.appli.format_fichier=cata[3]
+ self.appli.appliEficas.format_fichier=cata[3]
elif len(liste_cata_possibles)==1:
self.fic_cata = liste_cata_possibles[0][2]
self.version_code = liste_cata_possibles[0][1]
self.appli.format_fichier=liste_cata_possibles[0][3]
+ self.appli.appliEficas.format_fichier=liste_cata_possibles[0][3]
lab=QString("Eficas V1.")
lab+=QString(version)
lab+=QString(" pour ")
self.fic_cata = self.dico_catalogues[self.version_cata][2]
self.version_code = self.version_cata
self.appli.format_fichier = self.dico_catalogues[self.version_cata][3]
+ self.appli.appliEficas.format_fichier = self.dico_catalogues[self.version_cata][3]
lab+=self.version_cata
self.appli.parent.ui.setCaption(lab)
#qApp.mainWidget().setCaption(lab)
else:
# None will cause open dialog to start with cwd
try :
- userDir=os.path.expanduser("~/Eficas_install/")
- return userDir
- except :
- return ""
+ userDir=self.appli.CONFIGURATION.savedir
+ except :
+ try :
+ userDir=os.path.expanduser("~")
+ except :
+ userDir=""
+ return userDir
def handleEditorOpened(self):
class JDCTree( QTreeWidget ):
def __init__( self, jdc_item, QWParent):
QListView.__init__( self, QWParent )
+ print QWParent.__class__
+ print "je suis dans JDCTree et voilà ", jdc_item
self.item = jdc_item
self.tree = self
self.editor = QWParent
return child
def view3D(self) :
- import TroisDPal
+ from Editeur import TroisDPal
troisD=TroisDPal.TroisDPilote(self.item,self.editor.parent.appliEficas)
troisD.envoievisu()
import browser
from Noyau.N_CR import justify_text
-import prefs
-
class Node(browser.JDCNode):
def getPanel(self):
"""
#
# ======================================================================
+print "INTERFACEQT4"
import types,sys,os
import traceback
from PyQt4 import *
from Editeur import session
from Editeur import comploader
from Editeur import Objecttreeitem
-#import panelsQT
import browser
import readercata
import qtCommun
-import prefs
-VERSION_EFICAS = "EFICAS v1.14"
+VERSION_EFICAS = "EFICAS v1.15"
class JDCEditor(QSplitter):
Editeur de jdc
"""
- def __init__ (self,fichier = None, jdc = None, QWParent=None, units = None, include=0 ,appli=None, vm=None):
+ def __init__ (self,appli,fichier = None, jdc = None, QWParent=None, units = None, include=0 , vm=None):
#----------------------------------------------------------------------------------------------------------#
- #print "debut JDCEditor __init__"
- print "fichier", fichier,"jdc",jdc,"units",units,"include",include
+ #print "fichier", fichier,"jdc",jdc,"units",units,"include",include
QSplitter.__init__(self, QWParent)
self.appliEficas = appli
self.appli = appli #---- attendu par IHM
VERSION_CODE = session.d_env.cata
if appli != None :
self.salome = self.appliEficas.salome
+ self.format = self.appliEficas.format_fichier
else :
self.salome=0
+ print "dans JDC pas d appli ????????"
- self.code = prefs.code
+ self.code = self.appliEficas.CONFIGURATION.code
self.version_code = VERSION_CODE
self.titre=VERSION_EFICAS + ' pour '+ self.code
self.dict_reels={}
self.liste_simp_reel=[]
- self.format_fichier='python' # par defaut
- self.jdc_openturn_xml=""
- self.jdc_openturn_std=""
self.ihm="QT"
- from Editeur import configuration
+ import configuration
self.CONFIGURATION = self.appliEficas.CONFIGURATION
self.CONFIGStyle = self.appliEficas.CONFIGStyle
"""
import Extensions.jdc_include
JdC_aux=Extensions.jdc_include.JdC_include
- print JdC_aux
CONTEXT.unset_current_step()
jaux=self.readercata.cata[0].JdC( procedure="",
jdcName=os.path.basename(fn)
# Il faut convertir le contenu du fichier en fonction du format
- if convert.plugins.has_key( self.format_fichier ):
+ if convert.plugins.has_key( self.appliEficas.format_fichier ):
# Le convertisseur existe on l'utilise
appli = self
- p=convert.plugins[self.format_fichier]()
+ p=convert.plugins[self.appliEficas.format_fichier]()
p.readfile(fn)
text=p.convert('exec',appli)
if not p.cr.estvide():
self.affiche_infos("Erreur à la conversion")
+ else :
+ self.affiche_infos("Type de fichier non reconnu")
+ QMessageBox.critical( self, "Type de fichier non reconnu","EFICAS ne sait pas ouvrir ce type de fichier")
+ return None
CONTEXT.unset_current_step()
- ## os.chdir(self.initialdir)
jdc=self.readercata.cata[0].JdC(procedure=text,
appli=self,
cata=self.readercata.cata,
self.lastModified = 1
return jdc
+
#-----------------------#
def get_source(self,file):
#-----------------------#
- format=self.format_fichier
+ format=self.appliEficas.format_fichier
# Il faut convertir le contenu du fichier en fonction du format
if convert.plugins.has_key(format):
#-----------------------#
def viewJdcSource(self):
#-----------------------#
- format = self.format_fichier
+ format = self.appliEficas.format_fichier
f=open(self.fichier,'r')
texteSource=f.read()
f.close()
#-----------------------#
def viewJdcPy(self):
#-----------------------#
- format = self.format_fichier
+ format = self.appliEficas.format_fichier
strSource = str( self.get_text_JDC(format) )
self._viewText(strSource, "JDC_RESULTAT")
#------------------------------#
def affiche_infos(self,message):
#------------------------------#
+ if self.salome :
+ if not hasattr(self.appliEficas,'MessageLabel') :
+ self.appliEficas.leLayout=QDockWindow(self.appliEficas)
+ self.appliEficas.MessageLabel = QLabel(self.appliEficas.leLayout,"MessageLabel")
+ self.appliEficas.MessageLabel.setAlignment(Qt.AlignBottom)
+ self.appliEficas.leLayout.setWidget(self.appliEficas.MessageLabel)
+ self.appliEficas.moveDockWindow(self.appliEficas.leLayout,Qt.DockBottom)
+ self.appliEficas.MessageLabel.setText(message)
+ self.appliEficas.MessageLabel.show()
+ self.appliEficas.leLayout.show()
if self.sb:
self.sb.showMessage(message)#,2000)
Ne permet que la copie d'objets de type Commande ou MCF
"""
self.chercheNoeudSelectionne()
- print "noeud a copier", self.node_selected.item.GetLabelText()[0]
- print "noued apres " ,self.QWParent.noeud_a_editer.item.GetLabelText()[0]
+ index_noeud_a_couper=self.QWParent.noeud_a_editer.treeParent.children.index(self.QWParent.noeud_a_editer)
if self.QWParent.noeud_a_editer == None :
QMessageBox.information( self,
"Copie impossible",
# si possible on renomme l objet comme le noeud couper
if self.QWParent.edit == "couper":
- #nom = self.QWParent.noeud_a_editer.item.object.sd.nom
- print self.QWParent.noeud_a_editer.item.object.sd.nom
+ print self.QWParent.noeud_a_editer.child
+ index_ajoute=child.treeParent.children.index(child)
+ if index_ajoute <= index_noeud_a_couper :
+ index_noeud_a_couper=index_noeud_a_couper + 1
item=self.QWParent.noeud_a_editer.item
- self.QWParent.noeud_a_editer.delete()
+ noeud_a_supprimer=self.QWParent.noeud_a_editer.treeParent.children[index_noeud_a_couper]
+ noeud_a_supprimer.delete()
child.item.update(item)
#test,mess = child.item.nomme_sd(nom)
child.select()
def getFileName(self):
#---------------------#
return self.fichier
-
+
#---------------------------#
+ def get_file_variable(self) :
+ #---------------------------#
+ titre = "Choix d'un fichier XML"
+ texte = "Le fichier contient une commande INCLUDE\n"
+ texte = texte+'Donnez le nom du fichier XML qui contient la description des variables'
+ QMessageBox.information( self, titre,texte)
+
+ fichier = QFileDialog.getOpenFileName(self.appliEficas,
+ self.appliEficas.trUtf8('Ouvrir Fichier'),
+ self.appliEficas.CONFIGURATION.savedir,
+ self.appliEficas.trUtf8('Wrapper Files (*.xml);;''All Files (*)'))
+ print fichier
+ return fichier
+
+ #----------------------------------#
def writeFile(self, fn, txt = None):
- #------------------------------#
+ #----------------------------------#
"""
Public slot to write the text to a file.
fn = unicode(fn)
if txt == None :
- txt = self.get_text_JDC(self.format_fichier)
+ txt = self.get_text_JDC(self.appliEficas.format_fichier)
eol = '\n'
if len(txt) >= len(eol):
if txt[-len(eol):] != eol:
txt += eol
else:
txt += eol
-
try:
f = open(fn, 'wb')
f.write(txt)
.arg(unicode(fn)).arg(str(why)))
return 0
-# #------------------------------------
-# def writeFilesOpenturns(self,fn) :
-# #------------------------------------
-# base=fn[:fn.rfind(".")]
-# fileXML=base + '.xml'
-# fileSTD=base + '_std.py'
-# self.writeFile(fileXML,self.jdc_openturn_xml)
-# self.writeFile(fileSTD,self.jdc_openturn_std)
-#
-#
#-----------------------------#
def get_text_JDC(self,format):
#-----------------------------#
if generator.plugins.has_key(format):
# Le generateur existe on l'utilise
- g=generator.plugins[format]()
- jdc_formate=g.gener(self.jdc,format='beautifie')
- if format == "openturns" :
- self.jdc_openturn_xml=g.getOpenturnsXML()
- self.jdc_openturn_std=g.getOpenturnsSTD()
- if not g.cr.estvide():
+ self.generator=generator.plugins[format]()
+ jdc_formate=self.generator.gener(self.jdc,format='beautifie')
+ if not self.generator.cr.estvide():
self.affiche_infos("Erreur à la generation")
QMessageBox.critical( self, "Erreur a la generation","EFICAS ne sait pas convertir ce JDC")
- return
+ return ""
else:
return jdc_formate
else:
# Il n'existe pas c'est une erreur
self.affiche_infos("Format %s non reconnu" % format)
- QMessageBox.critical( self, "Format %s non reconnu" % format,"EFICAS ne sait pas convertir le JDC en format %s "% format)
- return
+ QMessageBox.critical( self, "Format "+format+" non reconnu","EFICAS ne sait pas convertir le JDC selon le format "+format)
+ return ""
#-----------------------------------------#
newName = None
if self.fichier is None or saveas:
if path is None:
- #PN --> modifier selon les prefs
- path="/tmp"
+ path=self.CONFIGURATION.savedir
selectedFilter = QString('')
fn = QFileDialog.getSaveFileName( self,
self.trUtf8("sauvegarde"), path,
self.appliEficas.addToRecentList(newName)
self.tree.racine.item.getObject().nom=os.path.basename(newName)
self.tree.racine.update_node_label()
-# if self.code == "OPENTURNS" :
-# self.writeFilesOpenturns(fn)
+
+ try :
+ #if 1 :
+ fileXML = fn[:fn.rfind(".")] + '.xml'
+ self.generator.writeOpenturnsXML( fileXML )
+ except :
+ #else :
+ pass
+
+ #PNPNPNPN A ecrire
+ try :
+ fileSTD = fn[:fn.rfind(".")] + '.py'
+ self.generator.writeOpenturnsSTD( fileSTD )
+ except :
+ pass
+
# if self.salome :
# self.QWParent.appli.addJdcInSalome( self.fichier)
# if self.code == 'ASTER':
texte = texte+'Donnez le nom du fichier dont vous \n voulez faire une poursuite'
QMessageBox.information( self, titre,texte)
- #PN --> les prefs
- fn = QFileDialog.getOpenFileName( self, titre)
+ path=self.CONFIGURATION.savedir
+ fn = QFileDialog.getOpenFileName( self, titre,path)
if fn.isNull():
# ce retour est impose par le get_file d'I_JDC
# Une erreur a été rencontrée
jdcText = ''
return ulfile, jdcText
+
if __name__=='__main__':
+ import prefs # dans main
if hasattr(prefs,'encoding'):
# Hack pour changer le codage par defaut des strings
import sys
# code=options.code
#
app = QApplication(sys.argv)
- mw = JDCEditor('azAster.comm')
+ mw = JDCEditor(None,'azAster.comm')
app.setMainWidget(mw)
app.connect(app, SIGNAL("lastWindowClosed()"), app, SLOT("quit()"))
mw.show()
"""
# Modules Python
import sys
-from qt import *
+from PyQt4.QtGui import *
-# Modules Eficas
-import prefs
-if hasattr(prefs,'encoding'):
- # Hack pour changer le codage par defaut des strings
- import sys
- reload(sys)
- sys.setdefaultencoding(prefs.encoding)
- del sys.setdefaultencoding
- # Fin hack
-
-from Editeur import import_code
-from Editeur import session
+from Editeur import import_code
+from Editeur import session
+from qtEficas import Appli
def lance_eficas(code=None,fichier=None):
"""
Lance l'appli EFICAS
"""
# Analyse des arguments de la ligne de commande
- if code !=None : prefs.code=code
- import qtEficas
options=session.parse(sys.argv)
code=options.code
app = QApplication(sys.argv)
- mw = qtEficas.Appli(code=code)
- app.setMainWidget(mw)
- app.connect(app, SIGNAL("lastWindowClosed()"), app, SLOT("quit()"))
- mw.show()
- mw.ouvreFichiers()
- res = app.exec_loop()
- sys.exit(res)
+ Eficas=Appli(code=code)
+ Eficas.show()
+ res=app.exec_()
+ sys.exit(res)
+
self.TWChoix.setCurrentIndex(2)
def BBrowsePressed(self):
- print self.node.makeEdit
self.node.makeEdit()
def BOkIncPressed (self):
if not text:
return
+ self.editor.init_modif()
+
try :
self.node.item.object.change_fichier_init(nomFichier,text)
commentaire = "Fichier modifie : " + self.node.item.get_nom()
"""
Methode pour convertir le fichier file dans le format courant
"""
- format=self.editor.format_fichier
+ format=self.editor.format
text=None
if convert.plugins.has_key(format):
# Le convertisseur existe on l'utilise
def BChangeFilePressed(self):
- userDir=os.path.expanduser("~/Eficas_install/")
+ userDir=self.node.appliEficas.CONFIGURATION.savedir
fn = QFileDialog.getOpenFileName(self.node.appliEficas,
self.node.appliEficas.trUtf8('Fichier Include'),
+ userDir,
self.node.appliEficas.trUtf8('All Files (*);;''JDC Files (*.comm);;'))
if fn.isNull():
if res == 1 : return
appli=self.configuration.appli
- rep_ini=self.configuration.rep_ini
+ repIni=self.configuration.REPINI
fic_ini_util=self.configuration.fic_ini_utilisateur
old_fic_ini_util=fic_ini_util+"_old"
commande="mv "+fic_ini_util+" "+old_fic_ini_util
os.system(commande)
- from Editeur import configuration
- configNew=configuration.CONFIG(appli,rep_ini)
+ import configuration
+ configNew=configuration.CONFIG(appli,repIni)
self.configuration=configNew
appli.CONFIGURATION=configNew
self.configuration.save_params()
import string,types,os,re
# Modules Eficas
-import prefs
from PyQt4 import *
from PyQt4.QtGui import *
# Modules Python
import string,types,os
-# Modules Eficas
-import prefs
-
from PyQt4 import *
from PyQt4.QtGui import *
from PyQt4.QtCore import *
+
+# Modules Eficas
from monPlusieursIntoPanel import MonPlusieursIntoPanel
from monPlusieursIntoPanel import DPlusInto
from qtCommun import QTPanel
from politiquesValidation import PolitiquePlusieurs
-# Import des panels
class MonPlusieursASSDPanel(MonPlusieursIntoPanel):
"""
self.editor.affiche_infos("Valeurs Ajoutées")
def BImportPressed(self):
- init=QString( self.editor.CONFIGURATION.rep_user)
+ init=QString( self.editor.CONFIGURATION.savedir)
fn = QFileDialog.getOpenFileName(self.node.appliEficas,
self.node.appliEficas.trUtf8('Fichier de données'),
- QString(),
+ init,
self.trUtf8('All Files (*)',))
if fn == None : return
if fn == "" : return
name=str(self.LBNouvCommande.currentItem().text())
if name==QString(" "): return
if name.find("GROUPE :")==0 : return
- print self.editor
- print self.editor.__class__
self.editor.init_modif()
print self.node.__class__
new_node = self.node.append_child(name,'first')
def detruitBouton(self):
mc = self.node.item.get_definition()
type = mc.type[0]
- if not('grma' in repr(type)) or not(self.editor.salome) :
+ #if not('grma' in repr(type)) or not(self.editor.salome) :
+ if not(('grma' in repr(type)) or ('grno' in repr(type))) or not(self.editor.salome) :
self.BSalome.close()
self.BView2D.close()
def BOk2Pressed(self):
SaisieValeur.BOk2Pressed(self)
+ if self.node.item.parent.nom == "FICXML" :
+ self.node.item.parent.change_fichier="1"
+ self.node.item.parent.build_include(None,"")
def BSupPressed(self):
QTPanel.BSupPressed(self)
def LEValeurPressed(self):
SaisieValeur.LEValeurPressed(self)
+ if self.node.item.parent.nom == "FICXML" :
+ self.node.item.parent.change_fichier="1"
+ self.node.item.parent.build_include(None,"")
def BParametresPressed(self):
QTPanel.BParametresPressed(self)
import string,types,os
# Modules Eficas
-import prefs
-
from PyQt4 import *
from PyQt4.QtGui import *
+++ /dev/null
-# -*- coding: utf-8 -*-
-
-# ======================================================================
-# CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
-# (AT YOUR OPTION) ANY LATER VERSION.
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
-# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
-#
-#
-# ======================================================================
-
-lang='fr'
-
from PyQt4 import *
from PyQt4.QtGui import *
from PyQt4.QtCore import *
-import prefsQT
# Import des panels
"""
def __init__(self,parent):
QDialog.__init__(self,parent)
+ self.parent=parent
self.setupUi(self)
self.resize( QSize(600,507).expandedTo(self.minimumSizeHint()) )
def saveFile(self):
#recuperation du nom du fichier
+ userDir=os.path.expanduser("~/.Eficas_install/")
fn = QFileDialog.getSaveFileName(None,
self.trUtf8("Save File"),
- self.trUtf8("/tmp"))
- #if not fn.isNull():
- # print "hhhhhhhhhhhhhhjjjjjjjjjjjjjjjjjjjjkkkkkkkkkkkkk"
- # if QFileInfo(fn).exists():
- # abort = QMessageBox.warning(self,
- # self.trUtf8("Save File"),
- # self.trUtf8("The file <b>%1</b> already exists.")
- # .arg(fn),
- # self.trUtf8("&Overwrite"),
- # self.trUtf8("&Abort"))
- # if abort:
- # return
- # fn = unicode(QDir.convertSeparators(fn))
- #else:
- # return
-
- #ecriture du fichier
+ self.trUtf8(userDir))
if fn.isNull() : return
try:
f = open(fn, 'wb')
# -*- coding: iso-8859-1 -*-
import os, sys
-REPINI=os.path.dirname(os.path.abspath(__file__))
-INSTALLDIR=os.path.join(REPINI,'..')
-sys.path.append(INSTALLDIR)
-sys.path.append(INSTALLDIR+"/UiQT4")
-sys.path.append(INSTALLDIR+"/InterfaceQT4")
from PyQt4.QtGui import *
from PyQt4.QtCore import *
from myMain import Ui_Eficas
from viewManager import MyTabview
-from Editeur import configuration
from Editeur import session
+dirCode={"ASTER":"Aster","OPENTURNS_WRAPPER":"Openturns_Wrapper"}
class Appli(Ui_Eficas,QMainWindow):
self.ihm="QT"
self.code=code
self.salome=salome
+ self.format_fichier="python" #par defaut
self.top = self #(pour CONFIGURATION)
- self.initPrefs()
+ import prefs
+ self.REPINI=prefs.REPINI
+ import configuration
self.CONFIGURATION = configuration.make_config(self,prefs.REPINI)
self.CONFIGStyle = configuration.make_config_style(self,prefs.REPINI)
+ if hasattr(prefs,'encoding'):
+ import sys
+ reload(sys)
+ sys.setdefaultencoding(prefs.encoding)
QMainWindow.__init__(self)
Ui_Eficas.__init__(self)
#self.monAssistant=QAssistantClient(QString(""), self.viewmanager)
-
#if self.salome :
# from Editeur import session
# self.ouvreFichiers()
- from Editeur import session
- self.ouvreFichiers()
+ self.recent = QStringList()
self.ficPatrons={}
self.initPatrons()
-
- self.recent = QStringList()
self.ficRecents={}
self.initRecents()
+
+ self.ouvreFichiers()
def OPENTURNS(self) :
self.MenuBar.removeItem(5)
idx=idx+1
def initRecents(self):
- #try :
- if 1 :
+ try :
rep=self.CONFIGURATION.rep_user
monFichier=rep+"/listefichiers_"+self.code
index=0
l=(ligne.split("\n"))[0]
self.recent.append(l)
index=index+1
- #except : pass
- else :
+ except :
pass
try : f.close()
def handleOpenPatrons(self):
idx=self.sender()
- fichier=REPINI+"/../Editeur/Patrons/"+self.code+"/"+self.ficPatrons[idx]
+ fichier=self.REPINI+"/../Editeur/Patrons/"+self.code+"/"+self.ficPatrons[idx]
self.viewmanager.handleOpen(fichier=fichier, patron = 1)
def handleOpenRecent(self):
def NewInclude(self):
self.viewmanager.newIncludeEditor()
- def initPrefs(self):
- if code == "ASTER" :
- from Aster import prefs
- import sys
- sys.path.append(INSTALLDIR+"/Aster")
- else :
- import prefs
- #try :
- if 1 :
- apply(Appli.__dict__[code],(self,))
- #except :
- else:
- pass
- if hasattr(prefs,'encoding'):
- import sys
- reload(sys)
- sys.setdefaultencoding(prefs.encoding)
if __name__=='__main__':
if (min == 1 and min == max and len(listeNomsSD)==1 and (l==[] or l==None)):
if ('R' not in self.node.item.get_type()) :
- self.listBoxASSD.setCurrentItem(0)
+ self.listBoxASSD.setCurrentRow(0)
def BuildLBValeurs(self):
import re
# Modules Eficas
-import prefs
from Noyau.N_CR import CR
from Editeur.utils import init_rep_cata_dev
-from Editeur import analyse_catalogue
-from Editeur import autre_analyse_cata
-from Editeur import uiinfo
+import analyse_catalogue
+import autre_analyse_cata
+import uiinfo
from monChoixCata import MonChoixCata
from PyQt4 import *
from PyQt4.QtGui import *
from PyQt4.QtCore import *
-version="14"
+VERSION_EFICAS="Eficas V1.15"
class READERCATA:
self.QWParent=QWParent
self.appliEficas=self.QWParent.appliEficas
self.code=self.QWParent.code
- self.QWParent.format_fichier='python'
+ self.appliEficas.format_fichier='python'
self.version_code=self.QWParent.version_code
self.version_cata=None
self.fic_cata=None
elif len(liste_cata_possibles)==1:
self.fic_cata = liste_cata_possibles[0][2]
self.version_code = liste_cata_possibles[0][1]
- self.QWParent.format_fichier=liste_cata_possibles[0][3]
+ self.appliEficas.format_fichier=liste_cata_possibles[0][3]
lab=QString("Eficas V1.")
- lab+=QString(version)
+ lab+=QString(VERSION_EFICAS)
lab+=QString(" pour ")
lab+=QString(self.code)
lab+=QString(" avec le catalogue ")
# traitement des clefs documentaires
#
self.traite_clefs_documentaires()
-
- # chargement et analyse des catalogues développeur (le cas échéant)
- #
- if self.appliEficas.CONFIGURATION.isdeveloppeur == 'OUI' :
- init_rep_cata_dev(self.fic_cata,self.appliEficas.CONFIGURATION.path_cata_dev)
- fic_cata_dev = os.path.join(self.appliEficas.CONFIGURATION.path_cata_dev,'cata_developpeur.py')
- if os.path.isfile(fic_cata_dev):
- # il y a bien un catalogue développeur : il faut récupérer le module_object associé ...
- test = self.compile_cata(fic_cata_dev,fic_cata_dev+'c')
- if not test :
- showinfo("Compilation catalogue développeur",
- "Erreur dans la compilation du catalogue développeur")
- self.cata = (self.cata,)
- else:
- self.cata_dev =self.import_cata(fic_cata_dev)
- #self.Retrouve_Ordre_Cata_Developpeur()
- self.Retrouve_Ordre_Cata_Developpeur_autre()
- self.cata = (self.cata,self.cata_dev)
- else:
- self.cata = (self.cata,)
- else:
- self.cata = (self.cata,)
- titre="Eficas V1.14 avec le catalogue " + os.path.basename(self.fic_cata)
+ self.cata=(self.cata,)
+ titre=VERSION_EFICAS + " avec le catalogue " + os.path.basename(self.fic_cata)
if self.appliEficas.top:
self.appliEficas.setWindowTitle(titre)
self.appliEficas.titre=titre
def import_cata(self,cata):
"""
- Réalise l'import du catalogue dont le chemin d'acca¨s est donné par cata
+ Réalise l'import du catalogue dont le chemin d'acces est donné par cata
"""
nom_cata = os.path.splitext(os.path.basename(cata))[0]
rep_cata = os.path.dirname(cata)
self.Get_Ordre_Cata(mode='cata')
self.appliEficas.affiche_infos("Catalogue standard chargé")
- def Retrouve_Ordre_Cata_Developpeur(self):
- """
- Retrouve l'ordre des mots-clés dans le catalogue, cad :
- - si ce dernier a été modifié, relance l'analyse du catalogue pour déterminer
- l'ordre des mots-clés dans le catalogue
- - s'il n'a pas été modifié, relie le fichier pickle
- """
- if self.code != 'ASTER' : return
- fic_cata = os.path.join(self.appliEficas.CONFIGURATION.path_cata_dev,'cata_developpeur.py')
- message="Chargement catalogue développeur présent dans :\n %s..." % self.appliEficas.CONFIGURATION.path_cata_dev
- cata_dev_ordonne = analyse_cata.analyse_catalogue(self,self.fic_cata)
- self.cata_dev_ordonne_cr = cata_dev_ordonne.cr
- cata_dev_ordonne_dico = cata_dev_ordonne.entites
- self.cata_ordonne_dico.update(cata_dev_ordonne_dico)
- self.appliEficas.affiche_infos(" catalogue(s) développeur(s) chargé(s)" )
-
- def Retrouve_Ordre_Cata_Developpeur_autre(self):
- """
- Retrouve l'ordre des mots-clés dans le catalogue, cad :
- - si ce dernier a été modifié, relance l'analyse du catalogue pour déterminer
- l'ordre des mots-clés dans le catalogue
- - s'il n'a pas été modifié, relie le fichier pickle
- """
- if self.code != 'ASTER' : return
- message="Chargement catalogue développeur présent dans :\n %s..." % self.appliEficas.CONFIGURATION.path_cata_dev
- cata_dev_ordonne_dico,self.appliEficas.liste_simp_reel=autre_analyse_cata.analyse_catalogue(self.cata)
- self.cata_ordonne_dico.update(cata_dev_ordonne_dico)
- self.appliEficas.affiche_infos(" catalogue(s) développeur(s) chargé(s)" )
def Get_Ordre_Cata(self,mode='pickle'):
"""
if fichier is None:
fichier = QFileDialog.getOpenFileName(self.appliEficas,
self.appliEficas.trUtf8('Ouvrir Fichier'),
- self.getOpenStartDir(),
+ self.appliEficas.CONFIGURATION.savedir,
self.appliEficas.trUtf8('JDC Files (*.comm);;''All Files (*)'))
if fichier.isNull(): return
- from utilitaires import normabspath
- fichier = normabspath(unicode(fichier))
+ fichier = os.path.abspath(unicode(fichier))
+ self.appliEficas.addToRecentList(fichier)
maPage=self.getEditor( fichier,units=units)
def handleClose(self,doitSauverRecent = 1):
- print "passage dans handleClose"
- print self.dict_editors
+ #print "passage dans handleClose"
+ #print self.dict_editors
if doitSauverRecent : self.appliEficas.sauveRecents()
index=self.myQtab.currentIndex()
if index < 0 : return
indexEditor=0
for indexEditor in self.dict_editors.keys():
editor=self.dict_editors[indexEditor]
- from utilitaires import samepath
- if samepath(fichier, editor.getFileName()):
+ if self.samepath(fichier, editor.getFileName()):
abort = QMessageBox.warning(self.appliEficas,
self.appliEficas.trUtf8("Fichier"),
self.appliEficas.trUtf8("Le fichier <b>%1</b> est deja ouvert.").arg(fichier),
double=editor
else :
from editor import JDCEditor
- editor = JDCEditor(fichier, jdc, self.myQtab,units=units,appli=self.appliEficas,vm = self,include=include)
- if double != None :
+ editor = JDCEditor(self.appliEficas,fichier, jdc, self.myQtab,units=units,vm = self,include=include)
+ if double != None :
self.doubles[editor]=double
if editor.jdc: # le fichier est bien un jdc
self.editors.append(editor)
except :
return ""
+ def samepath(self,f1, f2):
+ """
+ compare two paths.
+ """
+ if f1 is None or f2 is None: return 0
+ if os.path.normcase(os.path.normpath(f1)) == os.path.normcase(os.path.normpath(f2)) : return 1
+ return 0
+
def checkDirty(self, editor):
"""
REPTK=os.path.dirname(os.path.abspath(__file__))
sys.path[:0]=[REPTK]
-VERSION="EFICAS v1.14"
+VERSION="EFICAS v1.15"
class APPLI:
def __init__ (self,master,code=prefs.code,fichier=None,test=0,ihm="TK",salome=0) :
"""
if (self.test == 0):
splash._splash.configure(text = "Chargement des paramètres utilisateur")
- from Editeur import configuration
+ import configuration
self.CONFIGURATION = configuration.make_config(self,prefs.REPINI)
self.CONFIGStyle = configuration.make_config_style(self,prefs.REPINI)
from Ihm import CONNECTOR
try :
from Traducteur import traduitV7V8
+ from Traducteur import traduitV8V9
except :
pass
self.charger_composants()
self.cree_cataitem()
self.text_reel=""
- self.initialdir = self.appli.CONFIGURATION.initialdir
+ self.savedir = self.appli.CONFIGURATION.savedir
def charger_composants(self):
comploader.charger_composants()
if enregistre != "non" :
self.JDCDisplay_courant.fichier=self.fileName
else :
- self.initialdir = self.appli.CONFIGURATION.rep_user
+ self.savedir = self.appli.CONFIGURATION.rep_user
self.nb.selectpage(label_onglet)
self.nb.setnaturalsize()
self.nb.bind_all("<Key-Next>",lambda e,s=self:s.selectArbreDown())
filetypes = ( ("format "+self.appli.format_fichier.get(), ".com*"),("Tous",'*'))
else:
filetypes = ( ("format "+self.appli.format_fichier.get(), ".py"),)
- if not hasattr(self,'initialdir'):
- self.initialdir = self.appli.CONFIGURATION.initialdir
+ if not hasattr(self,'savedir'):
+ self.savedir = self.appli.CONFIGURATION.savedir
if not file :
file = askopenfilename(title="Ouverture d'un fichier de commandes Aster",
defaultextension=".comm",
filetypes = filetypes,
- initialdir = self.initialdir)
+ initialdir = self.savedir)
if file :
self.fileName = file
e=extension_fichier(file)
self.JDCName=stripPath(file)
- self.initialdir = os.path.dirname(os.path.abspath(file))
+ self.savedir = os.path.dirname(os.path.abspath(file))
else :
return
# On se met dans le repertoire ou se trouve le fichier de commandes
# pour trouver les eventuels fichiers include ou autres
# localises a cote du fichier de commandes
- os.chdir(self.initialdir)
+ os.chdir(self.savedir)
CONTEXT.unset_current_step()
J=self.cata[0].JdC(procedure=text,appli=self.appli,
cata=self.cata,cata_ord_dico=self.cata_ordonne_dico,
from panelsSalome import SALOME_UNIQUE_BASE_Panel
if len(SALOME_UNIQUE_BASE_Panel.dict_fichier_unite) > 0 :
print 'CS_pbruno if len(SALOMchier_unite) > 0 :???????'
- self.appli.creeConfigTxt( self.appli.CONFIGURATION.initialdir, SALOME_UNIQUE_BASE_Panel.dict_fichier_unite )
+ self.appli.creeConfigTxt( self.appli.CONFIGURATION.savedir, SALOME_UNIQUE_BASE_Panel.dict_fichier_unite )
#3)creation/mise a jours d'un maillage dans Salome
if self.code == 'ASTER':
sauvegarde = asksaveasfilename(title=titre,
defaultextension=defext,
filetypes = filtyp,
- initialdir = self.initialdir)
- #initialdir = self.appli.CONFIGURATION.initialdir)
- #initialdir = self.appli.CONFIGURATION.rep_user)
+ initialdir = self.savedir)
if sauvegarde :
if not save_in_file(sauvegarde,self.jdc_fini,None) :
showinfo("Erreur","Probleme a la sauvegarde du fichier "+`sauvegarde`)
def update_jdc_courant(self):
self.JDCDisplay_courant.update()
- def TraduitFichier(self,event=None):
- directory = self.appli.CONFIGURATION.rep_user
+ def TraduitFichier7(self,event=None):
+ self.TraduitFichier(7)
+
+ def TraduitFichier8(self,event=None):
+ self.TraduitFichier(8)
+
+ def TraduitFichier(self,version):
FichieraTraduire = askopenfilename(title="Nom du Fichier a Traduire",
defaultextension=".comm",
- initialdir = directory
+ initialdir = self.savedir
)
if (FichieraTraduire == "" or FichieraTraduire == () ) : return
i=FichieraTraduire.rfind(".")
Feuille=FichieraTraduire[0:i]
FichierTraduit=Feuille+"v8.comm"
- log=self.initialdir+"/convert.log"
+ log=self.savedir+"/convert.log"
os.system("rm -rf "+log)
os.system("rm -rf "+FichierTraduit)
Pmw.showbusycursor()
- traduitV7V8.traduc(FichieraTraduire,FichierTraduit,log)
+ if version == 7 :
+ traduitV7V8.traduc(FichieraTraduire,FichierTraduit,log)
+ else :
+ traduitV8V9.traduc(FichieraTraduire,FichierTraduit,log)
Pmw.hidebusycursor()
Entete="Fichier Traduit : "+FichierTraduit +"\n\n"
titre = "conversion de "+ FichieraTraduire
from Accas import FACT,BLOC,SIMP
#
-__version__="$Name: V1_14 $"
-__Id__="$Id: catabrowser.py,v 1.1.4.3.4.1 2008-10-10 13:46:35 pnoyret Exp $"
+__version__="$Name: $"
+__Id__="$Id: catabrowser.py,v 1.2.4.1 2008-11-13 10:35:11 cchris Exp $"
#
class Tableau:
incr = 10
import definition_cata
#
-__version__="$Name: V1_14 $"
-__Id__="$Id: cataediteur.py,v 1.1.4.3.4.1 2008-10-10 13:47:11 pnoyret Exp $"
+__version__="$Name: $"
+__Id__="$Id: cataediteur.py,v 1.2.4.1 2008-11-13 10:35:11 cchris Exp $"
#
Fonte_Niveau = fontes.canvas_gras_italique
self.top=None
self.test=2
- from Editeur import configuration
+ import configuration
self.CONFIGURATION=configuration.make_config(self,prefs.REPINI)
self.load_readercata()
self.fichier = fichier
e=extension_fichier(fichier)
self.JDCName=stripPath(fichier)
- self.initialdir = os.path.dirname(os.path.abspath(fichier))
+ self.savedir = os.path.dirname(os.path.abspath(fichier))
else :
return
# On se met dans le repertoire ou se trouve le fichier de commandes
# pour trouver les eventuels fichiers include ou autres
# localises a cote du fichier de commandes
- os.chdir(self.initialdir)
+ os.chdir(self.savedir)
CONTEXT.unset_current_step()
J=self.cata[0].JdC(procedure=text,appli=self,
cata=self.cata,cata_ord_dico=self.readercata.cata_ordonne_dico,
from widgets import showinfo,showerror
#
-__version__="$Name: V1_14 $"
-__Id__="$Id: compomacro.py,v 1.1.4.4.4.1 2008-10-10 13:47:11 pnoyret Exp $"
+__version__="$Name: $"
+__Id__="$Id: compomacro.py,v 1.2.4.1 2008-11-13 10:35:11 cchris Exp $"
#
class MACROPanel(panels.OngletPanel):
import panels
#
-__version__="$Name: V1_14 $"
-__Id__="$Id: componuplet.py,v 1.1.4.2.4.1 2008-10-10 13:47:11 pnoyret Exp $"
+__version__="$Name: $"
+__Id__="$Id: componuplet.py,v 1.2.4.1 2008-11-13 10:35:11 cchris Exp $"
#
myrepr = Repr()
from Ihm import CONNECTOR
#
-__version__="$Name: V1_14 $"
-__Id__="$Id: treewidget.py,v 1.1.4.4.4.1 2008-10-10 13:47:11 pnoyret Exp $"
+__version__="$Name: $"
+__Id__="$Id: treewidget.py,v 1.2.4.1 2008-11-13 10:35:11 cchris Exp $"
#
Fonte_Standard = fontes.standard
à l'utilisateur """
file = asksaveasfilename(parent=self.fenetre,defaultextension = '.comm',
#initialdir = self.appli.CONFIGURATION.rep_user,
- initialdir = self.appli.CONFIGURATION.initialdir,
+ initialdir = self.appli.CONFIGURATION.savedir,
title="Sauvegarde du "+self.titre)
if file :
if not save_in_file(file,self.texte,None) :
-#@ MODIF N_MCSIMP Noyau DATE 30/11/2007 AUTEUR COURTOIS M.COURTOIS
+#@ MODIF N_MCSIMP Noyau DATE 13/10/2008 AUTEUR COURTOIS M.COURTOIS
# -*- coding: iso-8859-1 -*-
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
Cette valeur est utilisée lors de la création d'un contexte
d'évaluation d'expressions à l'aide d'un interpréteur Python
"""
- return self.valeur
+ v = self.valeur
+ # Singleton : on retourne l'element
+ # Permet aussi d'ignorer l'erreur : concept=COMMANDE(),
+ # ou 'concept' est un tuple de longueur 1 a cause de la virgule.
+ if type(v) in (list, tuple) and len(v) == 1:
+ v = v[0]
+ return v
def get_val(self):
"""
-#@ MODIF ascheckers Noyau DATE 28/11/2007 AUTEUR COURTOIS M.COURTOIS
+#@ MODIF ascheckers Noyau DATE 07/10/2008 AUTEUR PELLET J.PELLET
# -*- coding: iso-8859-1 -*-
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
à la celle de la dernière vérification.
Si on incrémentait "marq" à chaque étape, on revérifie à chaque fois.
"""
+
def __init__(self):
self.msg = []
self.names = {}
+ self.cksums = {}
self.optional = False
self._marq = 1
self._lastmarq = self._marq
self._debug = False
+ self._profond = False # True pour forcer des vérifications plus profondes
def log(self, level, obj, msg ):
if obj :
key = obj.nomj()
self.names[key] = self._marq
+ def checkSumOJB(self, obj, sd, maj='non'):
+ # vérifie que le checksum de obj n'a pas changé
+ # sd : concept qui contient obj
+ # maj='maj', l'opérateur a le droit de modifier ojb
+ if obj.exists :
+ import md5
+ m=md5.new()
+ m.update(str(obj.get()))
+ cksum=m.digest()
+ nom=obj.nomj()
+ if not self.cksums.has_key(nom) :
+ self.cksums[nom]=cksum
+ else :
+ if self.cksums[nom] != cksum :
+ self.cksums[nom] = cksum
+ #if maj.strip()=='maj' and nom[0:8].strip()==sd.nomj.nomj[0:8].strip() :
+ # Remarque : ne pas tester 'maj' premet de résoudre (un peu) le problème
+ # posé par la commande DETRUIRE
+ if nom[0:8].strip()==sd.nomj.nomj[0:8].strip() :
+ pass
+ else :
+ self.err(obj,'Le checksum a changé')
+
def visitAsBase(self, obj):
key = (obj.nomj(), obj.__class__.__name__)
self.names[key] = self._marq
-#@ MODIF asojb Noyau DATE 07/04/2008 AUTEUR COURTOIS M.COURTOIS
+#@ MODIF asojb Noyau DATE 07/10/2008 AUTEUR PELLET J.PELLET
# -*- coding: iso-8859-1 -*-
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
try :
v( checker )
except :
- UTMESS("E", 'SDVERI_45') # AJACOT NON
- print 40*'-'
- traceback.print_exc(file=sys.stdout)
- print self
+ mess=60*'-'+'\n'
+ mess=mess+'Erreur SDVERI_45 (Attention : vérification incomplète)'+'\n'
+ mess=mess.join(traceback.format_tb(sys.exc_traceback))
+ checker.err(self,mess)
checker.optional = optional
return checker
global _root
if _root : raise "Impossible d'affecter _root. Il devrait valoir None"
_root=step
+ #print "dans set_current_step", step
def get_current_step():
"""
--- /dev/null
+# -*- coding: utf-8 -*-
+
+# --------------------------------------------------
+# debut entete
+# --------------------------------------------------
+
+import Accas
+from Accas import *
+
+class loi ( ASSD ) : pass
+class variable ( ASSD ) : pass
+
+
+#CONTEXT.debug = 1
+JdC = JDC_CATA ( code = 'OPENTURNS_STUDY',
+ execmodul = None,
+ regles = ( AU_MOINS_UN ( 'CRITERIA' ), ),
+ ) # Fin JDC_CATA
+
+# --------------------------------------------------
+# fin entete
+# --------------------------------------------------
+
+
+
+
+
+
+#================================
+# 1. Definition des LOIS
+#================================
+
+# Nota : les variables de type OPER doivent etre en majuscules !
+# Nota : les variables de type OPER doivent etre de premier niveau (pas imbriquees dans un autre type)
+DISTRIBUTION = OPER ( nom = "DISTRIBUTION",
+ sd_prod = loi,
+ op = 68,
+ fr = "Definitions des lois marginales utilisees par les variables d'entree",
+
+
+#====
+# Type de distribution
+#====
+
+ Kind = SIMP ( statut = "o", typ = "TXM",
+ into = ( "Beta",
+ "Exponential",
+ "Gamma",
+ "Geometric",
+ "Gumbel",
+ "Histogram",
+ "Logistic",
+ "LogNormal",
+ "MultiNomial",
+ "Normal",
+ "TruncatedNormal",
+ "Poisson",
+ "Student",
+ "Triangular",
+ "Uniform",
+ "UserDefined",
+ "Weibull",
+ ),
+ fr = "Choix du type de la loi marginale",
+ ang = "1D marginal distribution",
+ ),
+
+#====
+# Definition des parametres selon le type de la loi
+#====
+
+ BETA = BLOC ( condition = " Kind in ( 'Beta', ) ",
+
+ Settings = SIMP ( statut = "o",
+ typ = "TXM",
+ max = 1,
+ into = ( "RT", "MuSigma" ),
+ defaut = "RT",
+ fr = "Parametrage de la loi beta",
+ ang = "Beta distribution parameter set",
+ ),
+
+ RT_Parameters = BLOC ( condition = " Settings in ( 'RT', ) ",
+
+ R = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ val_min = 0.,
+ fr = "Parametre R de la loi",
+ ang = "R parameter",
+ ),
+
+ # T > R
+ T = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ val_min = 0.,
+ fr = "Parametre T de la loi | T > R",
+ ang = "T parameter | T > R",
+ ),
+
+ ), # Fin BLOC RT_Parameters
+
+
+ MuSigma_Parameters = BLOC ( condition = " Settings in ( 'MuSigma', ) ",
+
+ Mu = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ fr = "Parametre Mu de la loi",
+ ang = "Mu parameter",
+ ),
+
+ Sigma = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ val_min = 0.,
+ fr = "Parametre Sigma de la loi | Sigma > 0",
+ ang = "Sigma parameter | Sigma > 0",
+ ),
+
+ ), # Fin BLOC MuSigma_Parameters
+
+
+ A = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ fr = "Parametre A de la loi",
+ ang = "A parameter",
+ ),
+
+ # B > A
+ B = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ fr = "Parametre B de la loi | B > A",
+ ang = "B parameter | B > A",
+ ),
+
+ ), # Fin BLOC BETA
+
+
+
+ EXPONENTIAL = BLOC ( condition = " Kind in ( 'Exponential', ) ",
+
+ Lambda = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ val_min = 0.,
+ fr = "Parametre Lambda | Lambda > 0",
+ ang = "Lambda parameter | Lambda > 0",
+ ),
+
+ Gamma = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ fr = "Parametre Gamma",
+ ang = "Gamma parameter",
+ ),
+
+ ), # Fin BLOC EXPONENTIAL
+
+
+
+ GAMMA = BLOC ( condition = " Kind in ( 'Gamma', ) ",
+
+ Settings = SIMP ( statut = "o",
+ typ = "TXM",
+ max = 1,
+ into = ( "KLambda", "MuSigma" ),
+ defaut = "KLambda",
+ fr = "Parametrage de la loi gamma",
+ ang = "Gamma distribution parameter set",
+ ),
+
+ KLambda_Parameters = BLOC ( condition = " Settings in ( 'KLambda', ) ",
+
+ K = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ val_min = 0.,
+ fr = "Parametre K de la loi | K > 0",
+ ang = "K parameter | K > 0",
+ ),
+
+ Lambda = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ val_min = 0.,
+ fr = "Parametre Lambda de la loi | Lambda > 0",
+ ang = "Lambda parameter | Lambda > 0",
+ ),
+
+ ), # Fin BLOC KLambda_Parameters
+
+
+ MuSigma_Parameters = BLOC ( condition = " Settings in ( 'MuSigma', ) ",
+
+ Mu = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ defaut = 0.0,
+ fr = "Parametre Mu de la loi",
+ ang = "Mu parameter",
+ ),
+
+ Sigma = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ defaut = 1.0,
+ val_min = 0.,
+ fr = "Parametre Sigma de la loi | Sigma > 0",
+ ang = "Sigma parameter | Sigma > 0",
+ ),
+
+ ), # Fin BLOC MuSigma_Parameters
+
+ Gamma = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ fr = "Parametre Gamma",
+ ang = "Gamma parameter",
+ ),
+
+
+ ), # Fin BLOC GAMMA
+
+
+
+ GEOMETRIC = BLOC ( condition = " Kind in ( 'Geometric', ) ",
+
+ P = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ val_min = 0.,
+ val_max = 1.,
+ fr = "Parametre P | 0 < P < 1",
+ ang = "P parameter | 0 < P < 1",
+ ),
+
+ ), # Fin BLOC GEOMETRIC
+
+
+
+ GUMBEL = BLOC ( condition = " Kind in ( 'Gumbel', ) ",
+
+ Settings = SIMP ( statut = "o",
+ typ = "TXM",
+ max = 1,
+ into = ( "AlphaBeta", "MuSigma" ),
+ defaut = "AlphaBeta",
+ fr = "Parametrage de la loi gumbel",
+ ang = "Gumbel distribution parameter set",
+ ),
+
+ AlphaBeta_Parameters = BLOC ( condition = " Settings in ( 'AlphaBeta', ) ",
+
+ Alpha = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ val_min = 0.,
+ fr = "Parametre Alpha de la loi | Alpha > 0",
+ ang = "Alpha parameter | Alpha > 0",
+ ),
+
+ Beta = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ fr = "Parametre Beta de la loi",
+ ang = "Beta parameter",
+ ),
+
+ ), # Fin BLOC AlphaBeta_Parameters
+
+
+ MuSigma_Parameters = BLOC ( condition = " Settings in ( 'MuSigma', ) ",
+
+ Mu = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ fr = "Parametre Mu de la loi",
+ ang = "Mu parameter",
+ ),
+
+ Sigma = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ val_min = 0.,
+ fr = "Parametre Sigma de la loi | Sigma > 0",
+ ang = "Sigma parameter | Sigma > 0",
+ ),
+
+ ), # Fin BLOC MuSigma_Parameters
+
+ ), # Fin BLOC GUMBEL
+
+
+
+ HISTOGRAM = BLOC ( condition = " Kind in ( 'Histogram', ) ",
+
+ Sup = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ fr = "Borne superieure de la distribution",
+ ang = "Upper bound",
+ ),
+
+ # Il faut definir une collection de couples ( x,p )
+ Values = SIMP ( statut = 'o',
+ typ = 'R',
+ max = '**',
+ ),
+
+ ), # Fin BLOC HISTOGRAM
+
+
+
+ LOGNORMAL = BLOC ( condition = " Kind in ( 'LogNormal', ) ",
+
+ Settings = SIMP ( statut = "o",
+ typ = "TXM",
+ max = 1,
+ into = ( "MuSigmaLog", "MuSigma", "MuSigmaOverMu" ),
+ defaut = "MuSigmaLog",
+ fr = "Parametrage de la loi lognormale",
+ ang = "Lognormal distribution parameter set",
+ ),
+
+ MuSigma_Parameters = BLOC ( condition = " Settings in ( 'MuSigma', ) ",
+
+ Mu = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ fr = "Parametre Mu de la loi | Mu > Gamma",
+ ang = "Mu parameter | Mu > Gamma",
+ ),
+
+ Sigma = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ val_min = 0.,
+ fr = "Parametre Sigma de la loi | Sigma > 0",
+ ang = "Sigma parameter | Sigma > 0",
+ ),
+
+ ), # Fin BLOC MuSigma_Parameters
+
+ MuSigmaOverMu_Parameters = BLOC ( condition = " Settings in ( 'MuSigmaOverMu', ) ",
+
+ Mu = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ fr = "Parametre Mu de la loi | Mu > Gamma",
+ ang = "Mu parameter | Mu > Gamma",
+ ),
+
+ SigmaOverMu = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ val_min = 0.,
+ fr = "Parametre SigmaOverMu de la loi | SigmaOverMu > 0",
+ ang = "SigmaOverMu parameter | SigmaOverMu > 0",
+ ),
+
+ ), # Fin BLOC MuSigmaOverMu_Parameters
+
+ MuSigmaLog_Parameters = BLOC ( condition = " Settings in ( 'MuSigmaLog', ) ",
+
+ MuLog = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ fr = "Parametre Mu log de la loi",
+ ang = "Mu log parameter",
+ ),
+
+ SigmaLog = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ val_min = 0.,
+ fr = "Parametre Sigma log de la loi | SigmaLog > 0",
+ ang = "Sigma log parameter | SigmaLog > 0",
+ ),
+
+ ), # Fin BLOC MuSigmaLog_Parameters
+
+ Gamma = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ fr = "Parametre Gamma",
+ ang = "Gamma parameter",
+ ),
+
+ ), # Fin BLOC LOGNORMAL
+
+
+
+ LOGISTIC = BLOC ( condition = " Kind in ( 'Logistic', ) ",
+
+ Alpha = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ fr = "Parametre Alpha de la loi",
+ ang = "Alpha parameter",
+ ),
+
+ Beta = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ val_min = 0.,
+ fr = "Parametre Beta de la loi | Beta > = 0",
+ ang = "Beta parameter | Beta > = 0",
+ ),
+
+ ), # Fin BLOC LOGISTIC
+
+
+
+ MULTINOMIAL = BLOC ( condition = " Kind in ( 'MultiNomial', ) ",
+
+ N = SIMP ( statut = "o",
+ typ = "I",
+ max = 1,
+ fr = "Dimension de la loi",
+ ang = "Distribution dimension",
+ ),
+
+ # Il faut un vecteur P de taille N
+ Values = SIMP ( statut = 'o',
+ typ = 'R',
+ max = '**',
+ ),
+
+ ), # Fin BLOC MULTINOMIAL
+
+
+
+ NORMAL = BLOC ( condition = " Kind in ( 'Normal', ) ",
+
+ Mu = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ fr = "Parametre Mu de la loi",
+ ang = "Mu parameter",
+ ),
+
+ Sigma = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ val_min = 0.,
+ fr = "Parametre Sigma de la loi | Sigma > 0",
+ ang = "Sigma parameter | Sigma > 0",
+ ),
+
+ ), # Fin BLOC NORMAL
+
+
+
+ POISSON = BLOC ( condition = " Kind in ( 'Poisson', ) ",
+
+ Lambda = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ val_min = 0.,
+ fr = "Parametre Lambda de la loi | Lambda > 0",
+ ang = "Lambda parameter | Lambda > 0",
+ ),
+
+ ), # Fin BLOC POISSON
+
+
+
+ STUDENT = BLOC ( condition = " Kind in ( 'Student', ) ",
+
+ Mu = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ fr = "Parametre Mu de la loi",
+ ang = "Mu parameter",
+ ),
+
+ Nu = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ val_min = 2.,
+ fr = "Parametre Nu de la loi | V > = 2",
+ ang = "Nu parameter | V > = 2",
+ ),
+
+ ), # Fin BLOC STUDENT
+
+
+
+ TRIANGULAR = BLOC ( condition = " Kind in ( 'Triangular', ) ",
+
+ A = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ fr = "Borne inferieure de la loi | A < = M < = B",
+ ang = "Lower bound | A < = M < = B",
+ ),
+
+ M = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ fr = "Mode de la loi | A < = M < = B",
+ ang = "Mode | A < = M < = B",
+ ),
+
+ B = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ fr = "Borne superieure de la loi | A < = M < = B",
+ ang = "Upper bound | A < = M < = B",
+ ),
+
+ ), # Fin BLOC TRIANGULAR
+
+
+
+ TRUNCATEDNORMAL = BLOC ( condition = " Kind in ( 'TruncatedNormal', ) ",
+
+ MuN = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ fr = "Parametre Mu de la loi",
+ ang = "Mu parameter",
+ ),
+
+ SigmaN = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ val_min = 0.,
+ fr = "Parametre SigmaN de la loi | SigmaN > 0",
+ ang = "SigmaN parameter | SigmaN> 0",
+ ),
+
+ A = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ fr = "Borne inferieure de la loi | A < = B",
+ ang = "Lower bound | A < = B",
+ ),
+
+ B = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ fr = "Borne superieure de la loi | A < = B",
+ ang = "Upper bound | A < = B",
+ ),
+
+ ), # Fin BLOC TRUNCATEDNORMAL
+
+
+
+ UNIFORM = BLOC ( condition = " Kind in ( 'Uniform', ) ",
+
+ A = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ fr = "Borne inferieure de la loi | A < = B",
+ ang = "Lower bound | A < = B",
+ ),
+
+ B = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ fr = "Borne superieure de la loi | A < = B",
+ ang = "Upper bound | A < = B",
+ ),
+
+ ), # Fin BLOC UNIFORM
+
+
+
+ USERDEFINED = BLOC ( condition = " Kind in ( 'UserDefined', ) ",
+
+ # Il faut definir une collection de couples ( x,p )
+ Values = SIMP ( statut = 'o',
+ typ = 'R',
+ max = '**',
+ ),
+
+ ), # Fin BLOC USERDEFINED
+
+
+
+ WEIBULL = BLOC ( condition = " Kind in ( 'Weibull', ) ",
+
+ Settings = SIMP ( statut = "o",
+ typ = "TXM",
+ max = 1,
+ into = ( "AlphaBeta", "MuSigma" ),
+ defaut = "AlphaBeta",
+ fr = "Parametrage de la loi weibull",
+ ang = "Weibull distribution parameter set",
+ ),
+
+ AlphaBeta_Parameters = BLOC ( condition = " Settings in ( 'AlphaBeta', ) ",
+
+ Alpha = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ val_min = 0.,
+ fr = "Parametre Alpha de la loi | Alpha > 0",
+ ang = "Alpha parameter | Alpha > 0",
+ ),
+
+ Beta = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ val_min = 0.,
+ fr = "Parametre Beta de la loi | Beta > 0",
+ ang = "Beta parameter | Beta > 0",
+ ),
+
+ ), # Fin BLOC AlphaBeta_Parameters
+
+
+ MuSigma_Parameters = BLOC ( condition = " Settings in ( 'MuSigma', ) ",
+
+ Mu = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ fr = "Parametre Mu de la loi",
+ ang = "Mu parameter",
+ ),
+
+ Sigma = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ val_min = 0.,
+ fr = "Parametre Sigma de la loi | Sigma > 0",
+ ang = "Sigma parameter | Sigma > 0",
+ ),
+
+ ), # Fin BLOC MuSigma_Parameters
+
+ Gamma = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ fr = "Parametre Gamma",
+ ang = "Gamma parameter",
+ ),
+
+ ), # Fin BLOC WEIBULL
+
+) # Fin OPER DISTRIBUTION
+
+
+
+
+
+
+#================================
+# 3. Definition de l'etude
+#================================
+
+# Nota : les variables de type PROC doivent etre en majuscules !
+CRITERIA = PROC ( nom = "CRITERIA",
+ op = None,
+ docu = "",
+ fr = "Mise en donnee pour le fichier de configuration de OPENTURNS.",
+ ang = "Writes the configuration file for OPENTURNS.",
+
+
+
+ Type = SIMP ( statut = "o",
+ typ = "TXM",
+ into = ( "Min/Max", "Central Uncertainty", "Threshold Exceedence" ),
+ fr = "Type d'Analyse",
+ ang = "Analysis",
+ ),
+
+
+
+
+ MinMax = BLOC ( condition = " Type in ( 'Min/Max', ) ",
+
+ Method = SIMP ( statut = "o",
+ typ = "TXM",
+ into = ( "Experiment Plane", "Random Sampling" ),
+ fr = "Methode",
+ ang = "Method",
+ ),
+ # UC 3.1.1
+ ExperimentPlaneSettings = BLOC ( condition = " Method in ( 'Experiment Plane', ) ",
+
+ ExperimentPlane = SIMP ( statut = "o",
+ typ = "TXM",
+ into = ( "Axial", "Factorial", "Composite", ),
+ fr = "Methode",
+ ang = "Method",
+ ),
+
+ Levels = SIMP ( statut = "o",
+ typ = "R",
+ val_min = 0.0,
+ max = '**',
+ fr = "Nombre de niveaux dans chaque direction",
+ ang = "Levels in each direction",
+ ),
+
+ # Scaled Vector
+ UnitsPerDimension = SIMP ( statut = "o",
+ typ = "R",
+ max = '**',
+ fr = "Unite par dimension (autant que de variables declarees)",
+ ang = "Units per dimension (as much as declared variables)",
+ ),
+
+ # Translation Vector
+ Center = SIMP ( statut = "o",
+ typ = "R",
+ max = '**',
+ fr = "Unite par dimension",
+ ang = "Units per dimension",
+ ),
+
+ ), # Fin BLOC ExperimentPlaneSettings
+
+
+
+ RandomSamplingSettings = BLOC ( condition = " Method in ( 'Random Sampling', ) ",
+
+ PointsNumber = SIMP ( statut = "o",
+ typ = "I",
+ val_min = 1,
+ fr = "Nombre de points",
+ ang = "Points number",
+ ),
+
+ ), # Fin BLOC RandomSamplingSettings
+
+ Result = SIMP ( statut = "o",
+ typ = "TXM",
+ into = ( "Min/Max", ),
+ defaut = "Min/Max",
+ fr = "Le minimum et le maximum",
+ ang = "The min and max values",
+ ),
+
+
+ ), # Fin BLOC MinMax
+
+
+
+
+ CentralUncertainty = BLOC ( condition = " Type in ( 'Central Uncertainty', ) ",
+
+ Method = SIMP ( statut = "o",
+ typ = "TXM",
+ into = ( "Taylor Variance Decomposition", "Random Sampling" ),
+ fr = "Methode",
+ ang = "Method",
+ ),
+
+ # UC 3.2.
+ TaylorVarianceDecompositionSettings = BLOC ( condition = " Method in ( 'Taylor Variance Decomposition', ) ",
+
+ Result = FACT ( statut = "o",
+ min = 1,
+ max = "**",
+
+ MeanFirstOrder = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'yes',
+ max = 1,
+ fr = "Moyenne au premier ordre",
+ ang = "MeanFirstOrder",
+ ),
+
+ StandardDeviationFirstOrder = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'yes',
+ max = 1,
+ fr = "Ecart-type au premier ordre",
+ ang = "StandardDeviationFirstOrder",
+ ),
+
+ MeanSecondOrder = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'yes',
+ max = 1,
+ fr = "Moyenne au second ordre",
+ ang = "MeanSecondOrder",
+ ),
+
+ ImportanceFactor = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'no',
+ max = 1,
+ fr = "Facteur d'importance pour variable de sortie scalaire",
+ ang = "ImportanceFactor",
+ ),
+
+ ImportanceFactorSettings = BLOC ( condition = " ImportanceFactor in ( 'yes', ) ",
+
+ NumericalResults = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'yes',
+ max = 1,
+ fr = "Resultats numeriques",
+ ang = "NumericalResults",
+ ),
+
+ GraphicalResults = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'no',
+ max = 1,
+ fr = "Resultats graphiques",
+ ang = "GraphicalResults",
+ ),
+
+ ), # Fin BLOC ImportanceFactorSettings
+
+ ), # Fin FACT Result
+
+ ), # Fin BLOC TaylorVarianceDecompositionSettings
+
+
+
+ RandomSamplingSettings = BLOC ( condition = " Method in ( 'Random Sampling', ) ",
+
+ PointsNumber = SIMP ( statut = "o",
+ typ = "I",
+ val_min = 1,
+ fr = "Nombre de points",
+ ang = "Points number",
+ ),
+
+ Result = FACT ( statut = "o",
+ min = 1,
+ max = "**",
+
+ EmpiricalMean = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'yes',
+ max = 1,
+ fr = "Moyenne empirique",
+ ang = "Empirical mean",
+ ),
+
+ EmpiricalStandardDeviation = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'yes',
+ max = 1,
+ fr = "Ecart-type empirique",
+ ang = "Empirical standard deviation",
+ ),
+
+ EmpiricalQuantile = SIMP ( statut = "o",
+ typ = 'R',
+ defaut = 0.0,
+ max = 1,
+ val_min = 0.0,
+ val_max = 1.0,
+ fr = "Quantile empirique",
+ ang = "Empirical quantile",
+ ),
+
+ AnalysedCorrelations = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'no',
+ max = 1,
+ fr = "Correlations analysees",
+ ang = "Analysed correlations",
+ ),
+
+ KernelSmoothing = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'no',
+ max = 1,
+ fr = "Kernel smoothing de l'echantillon",
+ ang = "Kernel smoothing of the sample",
+ ),
+
+ ), # Fin FACT Result
+
+ ), # Fin BLOC RandomSamplingSettings
+
+ ), # Fin BLOC CentralUncertainty
+
+
+
+
+ ThresholdExceedence = BLOC ( condition = " Type in ( 'Threshold Exceedence', ) ",
+
+ Event = FACT ( statut = "o",
+ min = 1,
+ max = 1,
+
+ Threshold = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ fr = "Le seuil de defaillance",
+ ang = "Failure threshold",
+ ),
+
+ ComparisonOperator = SIMP ( statut = "o",
+ typ = "TXM",
+ max = 1,
+ into = ( "Less", "LessOrEqual", "Equal", "GreaterOrEqual", "Greater" ),
+ fr = "Que faut-il ne pas depasser : un maximum ou un minimum",
+ ang = "What is the failure threshold : maximum or minimum",
+ ),
+ ), # Fin FACT Event
+
+
+ Method = SIMP ( statut = "o",
+ typ = "TXM",
+ into = ( "Simulation", "Analytical" ),
+ fr = "Methode",
+ ang = "Method",
+ ),
+
+ SimulationSettings = BLOC ( condition = " Method in ( 'Simulation', ) ",
+
+ Algorithm = SIMP ( statut = "o",
+ typ = "TXM",
+ into = ( "MonteCarlo", "LHS", "ImportanceSampling" ),
+ fr = "Algorithme de simulation",
+ ang = "Simulation algorithm",
+ ),
+
+
+ RandomGenerator = FACT ( statut = "o",
+ min = 1,
+ max = 1,
+
+ SeedToBeSet = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'no',
+ max = 1,
+ fr = "La racine du generateur aleatoire doit-elle etre positionnee ?",
+ ang = "Does the random generator seed need to be set ?",
+ ),
+
+ SeedSettings = BLOC ( condition = " SeedToBeSet in ( 'yes', ) ",
+
+ RandomGeneratorSeed = SIMP ( statut = "o",
+ typ = "I",
+ max = 1,
+ fr = "Racine du generateur aleatoire",
+ ang = "Random generator seed",
+ ),
+
+ ), # Fin BLOC SeedSettings
+
+ ), # Fin FACT RandomGenerator
+
+
+ BlockSize = SIMP ( statut = "f",
+ typ = "I",
+ max = 1,
+ val_min = 1,
+ defaut = 1,
+ fr = "Nombre de calculs realises en bloc",
+ ang = "Number of computations as a block",
+ ),
+
+ MaximumOuterSampling = SIMP ( statut = "o",
+ typ = "I",
+ max = 1,
+ val_min = 1,
+ fr = "Maximum d'iterations externes",
+ ang = "Maximum outer Sampling value",
+ ),
+
+ MaximumCoefficientOfVariation = SIMP ( statut = "f",
+ typ = "R",
+ max = 1,
+ defaut = 0.1,
+ val_min = 0.0,
+ fr = " maximum ...",
+ ang = "Absolute maximum ...."
+ ),
+
+ ImportanceSamplingSettings = BLOC ( condition = " Algorithm in ( 'ImportanceSampling', ) ",
+
+ MeanVector = SIMP ( statut = "o",
+ typ = "R",
+ max = "**",
+ fr = "Moyenne",
+ ang = "Mean vector",
+ ),
+
+ Correlation = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'Independent', 'Linear' ),
+ defaut = 'Linear',
+ max = 1,
+ fr = "Le type de correlation entre les variables",
+ ang = "Correlation between variables",
+ ),
+
+ ), # Fin BLOC ImportanceSamplingSettings
+
+ Result = FACT ( statut = "o",
+ min = 1,
+ max = "**",
+
+ Probability = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', ),
+ defaut = 'yes',
+ max = 1,
+ fr = "Probabiblite",
+ ang = "Probability",
+ ),
+
+ ConfidenceInterval = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'yes',
+ max = 1,
+ fr = "Ecart-type empirique",
+ ang = "Empirical standard deviation",
+ ),
+
+ ConfidenceIntervalSettings = BLOC ( condition = " ConfidenceInterval in ( 'yes', ) ",
+
+ Level = SIMP ( statut = "o",
+ typ = 'R',
+ defaut = 0.0,
+ max = 1,
+ val_min = 0.0,
+ val_max = 1.0,
+ fr = "Niveau de confiance",
+ ang = "Confidence level",
+ ),
+
+ ), # Fin BLOC ConfidenceIntervalSettings
+
+ VariationCoefficient = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'yes',
+ max = 1,
+ fr = "Coefficient de variation",
+ ang = "VariationCoefficient",
+ ),
+
+ IterationNumber = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'yes',
+ max = 1,
+ fr = "Nombre d'iterations",
+ ang = "Iteration number",
+ ),
+
+ ConvergenceGraph = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'yes',
+ max = 1,
+ fr = "Graphe de convergence",
+ ang = "Convergence graph",
+ ),
+
+ ), # Fin FACT Result
+
+
+
+ ), # Fin BLOC SimulationSettings
+
+
+
+ AnalyticalSettings = BLOC ( condition = " Method in ( 'Analytical', ) ",
+
+ Approximation = SIMP ( statut = "o",
+ typ = "TXM",
+ into = ( "FORM", "SORM" ),
+ fr = "Approximation",
+ ang = "Approximation",
+ ),
+
+ OptimizationAlgorithm = SIMP ( statut = "o",
+ typ = "TXM",
+ into = ( "Cobyla", "AbdoRackwitz" ),
+ fr = "Methode d'optimisation",
+ ang = "Optimisation method",
+ ),
+
+
+ PhysicalStartingPoint = SIMP ( statut = "f",
+ typ = "R",
+ max = "**",
+ fr = "Point de demarrage de l'algorithme iteratif",
+ ang = "Initial point for iterative process",
+ ),
+
+ MaximumIterationsNumber = SIMP ( statut = "f",
+ typ = "I",
+ max = 1,
+ val_min = 1,
+ fr = "Nombre maximum d iterations",
+ ang = "Maximum number of iterations",
+ ),
+
+ regles = ( EXCLUS ( "MaximumAbsoluteError", "RelativeAbsoluteError" ), ),
+
+ MaximumAbsoluteError = SIMP ( statut = "f",
+ typ = "R",
+ max = 1,
+ defaut = 1E-6,
+ val_min = 0.0,
+ fr = "Distance maximum absolue entre 2 iterations successifs",
+ ang = "Absolute maximum distance between 2 successive iterates",
+ ),
+
+ RelativeAbsoluteError = SIMP ( statut = "f",
+ typ = "R",
+ max = 1,
+ defaut = 1E-6,
+ val_min = 0.0,
+ fr = "Distance maximum relative entre 2 iterations successives",
+ ang = "Relative maximum distance between 2 successive iterates",
+ ),
+
+ MaximumConstraintError = SIMP ( statut = "f",
+ typ = "R",
+ max = 1,
+ val_min = 0.0,
+ fr = "Valeur maximum absolue de la fonction moins la valeur du niveau",
+ ang = "Maximum absolute value of the constraint function minus the level value",
+ ),
+
+ ImportanceSampling = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'no',
+ max = 1,
+ fr = "Tirage d'importance au point de conception",
+ ang = "Importance sampling at design point",
+ ),
+
+ FORM = BLOC ( condition = " Approximation in ( 'FORM', ) ",
+
+ Probability = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', ),
+ defaut = 'yes',
+ max = 1,
+ fr = "Probabiblite",
+ ang = "Probability",
+ ),
+
+ DesignPoint = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'yes',
+ max = 1,
+ fr = "Point de conception",
+ ang = "Design point",
+ ),
+
+ HasReliabilityIndex = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'yes',
+ max = 1,
+ fr = "Indice de fiabilite",
+ ang = "Reliability index",
+ ),
+
+ ImportanceFactor = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'no',
+ max = 1,
+ fr = "Facteur d'importance pour variable de sortie scalaire",
+ ang = "ImportanceFactor",
+ ),
+
+ ImportanceFactorSettings = BLOC ( condition = " ImportanceFactor in ( 'yes', ) ",
+
+ NumericalResults = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'yes',
+ max = 1,
+ fr = "Resultats numeriques",
+ ang = "NumericalResults",
+ ),
+
+ GraphicalResults = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'no',
+ max = 1,
+ fr = "Resultats graphiques",
+ ang = "GraphicalResults",
+ ),
+
+ ), # Fin BLOC ImportanceFactorSettings
+
+
+ SensitivityAnalysis = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'no',
+ max = 1,
+ fr = "Analyse de sensibilite",
+ ang = "Sensitivity analysis",
+ ),
+
+ SensitivityAnalysisSettings = BLOC ( condition = " SensitivityAnalysis in ( 'yes', ) ",
+
+ HasoferReliabilityIndex = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'no',
+ max = 1,
+ fr = "Indice de fiabilite de Hasofer",
+ ang = "Hasofer reliability index",
+ ),
+
+ HasoferReliabilityIndexSettings = BLOC ( condition = " HasoferReliabilityIndex in ( 'yes', ) ",
+
+ NumericalResults = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'yes',
+ max = 1,
+ fr = "Resultats numeriques",
+ ang = "NumericalResults",
+ ),
+
+ GraphicalResults = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'no',
+ max = 1,
+ fr = "Resultats graphiques",
+ ang = "GraphicalResults",
+ ),
+
+ ), # Fin BLOC HasoferReliabilityIndexSettings
+
+ ), # Fin BLOC SensitivityAnalysisSettings
+
+ FunctionCallsNumber = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'no',
+ max = 1,
+ fr = "Nombre d'appels a la fonction",
+ ang = "Function calls number",
+ ),
+
+
+ ), # Fin BLOC FORM
+
+
+ SORM = BLOC ( condition = " Approximation in ( 'SORM', ) ",
+
+
+ TvedtApproximation = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'no',
+ max = 1,
+ fr = "Approximation de Tvedt",
+ ang = "Tvedt approximation",
+ ),
+
+ HohenBichlerApproximation = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'no',
+ max = 1,
+ fr = "Approximation de HohenBichler",
+ ang = "HohenBichler approximation",
+ ),
+
+ BreitungApproximation = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'no',
+ max = 1,
+ fr = "Approximation de Breitung",
+ ang = "Breitung approximation",
+ ),
+
+ DesignPoint = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'yes',
+ max = 1,
+ fr = "Point de conception",
+ ang = "Design point",
+ ),
+
+ ImportanceFactor = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'no',
+ max = 1,
+ fr = "Facteur d'importance pour variable de sortie scalaire",
+ ang = "ImportanceFactor",
+ ),
+
+ ImportanceFactorSettings = BLOC ( condition = " ImportanceFactor in ( 'yes', ) ",
+
+ NumericalResults = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'yes',
+ max = 1,
+ fr = "Resultats numeriques",
+ ang = "NumericalResults",
+ ),
+
+ GraphicalResults = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'no',
+ max = 1,
+ fr = "Resultats graphiques",
+ ang = "GraphicalResults",
+ ),
+
+ ), # Fin BLOC ImportanceFactorSettings
+
+
+ SensitivityAnalysis = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'no',
+ max = 1,
+ fr = "Analyse de sensibilite",
+ ang = "Sensitivity analysis",
+ ),
+
+ SensitivityAnalysisSettings = BLOC ( condition = " SensitivityAnalysis in ( 'yes', ) ",
+
+ HasoferReliabilityIndex = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'no',
+ max = 1,
+ fr = "Indice de fiabilite de Hasofer",
+ ang = "Hasofer reliability index",
+ ),
+
+ HasoferReliabilityIndexSettings = BLOC ( condition = " HasoferReliabilityIndex in ( 'yes', ) ",
+
+ NumericalResults = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'yes',
+ max = 1,
+ fr = "Resultats numeriques",
+ ang = "NumericalResults",
+ ),
+
+ GraphicalResults = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'no',
+ max = 1,
+ fr = "Resultats graphiques",
+ ang = "GraphicalResults",
+ ),
+
+ ), # Fin BLOC HasoferReliabilityIndexSettings
+
+ ), # Fin BLOC SensitivityAnalysisSettings
+
+ FunctionCallsNumber = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'no',
+ max = 1,
+ fr = "Nombre d'appels a la fonction",
+ ang = "Function calls number",
+ ),
+
+
+ ), # Fin BLOC SORM
+
+
+
+ ), # Fin BLOC AnalyticalSettings
+
+
+
+ ), # Fin BLOC ThresholdExceedence
+
+
+
+) # Fin PROC CRITERIA
+
+
+#===============================
+# 5. Definition des parametres
+#===============================
+VARI = OPER ( nom = "VARI",
+ sd_prod = variable,
+ op = None,
+ fr = "Definitions des lois marginales utilisees par les variables d'entree",
+ type=SIMP(statut='f',defaut="IN",into=("IN","OUT"), typ = "TXM",)
+ )
+
+AAA=PROC(nom="AAA",
+ op=None,
+ fr="Essai",
+ ang = "Test",
+
+ MALOI = SIMP(statut='o',typ=(loi,),),
+ MAVARIABLE = SIMP(statut='o',typ=(variable,),),
+) ;
+
+
+
+import ops
+FICXML=MACRO(nom="FICXML",
+ op=None,
+ UIinfo={"groupes":("Gestion du travail",)},
+ fr="Débranchement vers un fichier de commandes secondaires",
+ sd_prod=ops.INCLUDE,op_init=ops.INCLUDE_context,fichier_ini=1,
+ FICHIER = SIMP(statut='o',typ='TXM',),
+);
+
--- /dev/null
+# -*- coding: utf-8 -*-
+
+# --------------------------------------------------
+# debut entete
+# --------------------------------------------------
+
+import Accas
+from Accas import *
+
+class loi ( ASSD ) : pass
+
+
+#CONTEXT.debug = 1
+JdC = JDC_CATA ( code = 'OPENTURNS_STUDY',
+ execmodul = None,
+ regles = ( AU_MOINS_UN ( 'CRITERIA' ), AU_MOINS_UN ( 'MODEL' ), ),
+ ) # Fin JDC_CATA
+
+# --------------------------------------------------
+# fin entete
+# --------------------------------------------------
+
+LOG = PROC ( nom = "LOG",
+ op = None,
+ docu = "",
+
+ DebugMessages = SIMP ( statut = "o",
+ typ = "TXM",
+ into = ( 'yes', 'no' ),
+ defaut = 'no',
+ fr = "Affichage du niveau de debug de la bibliotheque Open TURNS",
+ ang = "Open TURNS library debug level print",
+ ),
+
+ WrapperMessages = SIMP ( statut = "o",
+ typ = "TXM",
+ into = ( 'yes', 'no' ),
+ defaut = 'no',
+ fr = "Affichage du niveau de wrapper de la bibliotheque Open TURNS",
+ ang = "Open TURNS library debug level print",
+ ),
+
+ UserMessages = SIMP ( statut = "o",
+ typ = "TXM",
+ into = ( 'yes', 'no' ),
+ defaut = 'no',
+ fr = "Affichage du niveau de user de la bibliotheque Open TURNS",
+ ang = "Open TURNS library user level print",
+ ),
+
+ InfoMessages = SIMP ( statut = "o",
+ typ = "TXM",
+ into = ( 'yes', 'no' ),
+ defaut = 'yes',
+ fr = "Affichage du niveau de info de la bibliotheque Open TURNS",
+ ang = "Open TURNS library info level print",
+ ),
+
+ WarningMessages = SIMP ( statut = "o",
+ typ = "TXM",
+ into = ( 'yes', 'no' ),
+ defaut = 'yes',
+ fr = "Affichage du niveau de warning de la bibliotheque Open TURNS",
+ ang = "Open TURNS library warning level print",
+ ),
+
+ ErrorMessages = SIMP ( statut = "o",
+ typ = "TXM",
+ into = ( 'yes', 'no' ),
+ defaut = 'yes',
+ fr = "Affichage du niveau de error de la bibliotheque Open TURNS",
+ ang = "Open TURNS library error level print",
+ ),
+
+) # Fin PROC LOG
+
+
+
+
+#================================
+# 0. Definition du modele physique
+#================================
+
+MODEL = PROC ( nom = "MODEL",
+ op = None,
+ docu = "",
+
+ Name = SIMP ( statut = "o",
+ typ = "TXM",
+ fr = "Nom du modele physique",
+ ang = "Physical model identifier",
+ ),
+
+) # Fin PROC MODEL
+
+
+
+
+
+
+#================================
+# 1. Definition des LOIS
+#================================
+
+# Nota : les variables de type OPER doivent etre en majuscules !
+# Nota : les variables de type OPER doivent etre de premier niveau (pas imbriquees dans un autre type)
+DISTRIBUTION = OPER ( nom = "DISTRIBUTION",
+ sd_prod = loi,
+ op = 68,
+ fr = "Definitions des lois marginales utilisees par les variables d'entree",
+
+
+#====
+# Type de distribution
+#====
+
+ Kind = SIMP ( statut = "o", typ = "TXM",
+ into = ( "Beta",
+ "Exponential",
+ "Gamma",
+ "Geometric",
+ "Gumbel",
+ "Histogram",
+ "Logistic",
+ "LogNormal",
+ "MultiNomial",
+ "Normal",
+ "TruncatedNormal",
+ "Poisson",
+ "Student",
+ "Triangular",
+ "Uniform",
+ "UserDefined",
+ "Weibull",
+ ),
+ fr = "Choix du type de la loi marginale",
+ ang = "1D marginal distribution",
+ ),
+
+#====
+# Definition des parametres selon le type de la loi
+#====
+
+ BETA = BLOC ( condition = " Kind in ( 'Beta', ) ",
+
+ Settings = SIMP ( statut = "o",
+ typ = "TXM",
+ max = 1,
+ into = ( "RT", "MuSigma" ),
+ defaut = "RT",
+ fr = "Parametrage de la loi beta",
+ ang = "Beta distribution parameter set",
+ ),
+
+ RT_Parameters = BLOC ( condition = " Settings in ( 'RT', ) ",
+
+ R = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ val_min = 0.,
+ fr = "Parametre R de la loi",
+ ang = "R parameter",
+ ),
+
+ # T > R
+ T = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ val_min = 0.,
+ fr = "Parametre T de la loi | T > R",
+ ang = "T parameter | T > R",
+ ),
+
+ ), # Fin BLOC RT_Parameters
+
+
+ MuSigma_Parameters = BLOC ( condition = " Settings in ( 'MuSigma', ) ",
+
+ Mu = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ fr = "Parametre Mu de la loi",
+ ang = "Mu parameter",
+ ),
+
+ Sigma = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ val_min = 0.,
+ fr = "Parametre Sigma de la loi | Sigma > 0",
+ ang = "Sigma parameter | Sigma > 0",
+ ),
+
+ ), # Fin BLOC MuSigma_Parameters
+
+
+ A = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ fr = "Parametre A de la loi",
+ ang = "A parameter",
+ ),
+
+ # B > A
+ B = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ fr = "Parametre B de la loi | B > A",
+ ang = "B parameter | B > A",
+ ),
+
+ ), # Fin BLOC BETA
+
+
+
+ EXPONENTIAL = BLOC ( condition = " Kind in ( 'Exponential', ) ",
+
+ Lambda = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ val_min = 0.,
+ fr = "Parametre Lambda | Lambda > 0",
+ ang = "Lambda parameter | Lambda > 0",
+ ),
+
+ Gamma = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ fr = "Parametre Gamma",
+ ang = "Gamma parameter",
+ ),
+
+ ), # Fin BLOC EXPONENTIAL
+
+
+
+ GAMMA = BLOC ( condition = " Kind in ( 'Gamma', ) ",
+
+ Settings = SIMP ( statut = "o",
+ typ = "TXM",
+ max = 1,
+ into = ( "KLambda", "MuSigma" ),
+ defaut = "KLambda",
+ fr = "Parametrage de la loi gamma",
+ ang = "Gamma distribution parameter set",
+ ),
+
+ KLambda_Parameters = BLOC ( condition = " Settings in ( 'KLambda', ) ",
+
+ K = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ val_min = 0.,
+ fr = "Parametre K de la loi | K > 0",
+ ang = "K parameter | K > 0",
+ ),
+
+ Lambda = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ val_min = 0.,
+ fr = "Parametre Lambda de la loi | Lambda > 0",
+ ang = "Lambda parameter | Lambda > 0",
+ ),
+
+ ), # Fin BLOC KLambda_Parameters
+
+
+ MuSigma_Parameters = BLOC ( condition = " Settings in ( 'MuSigma', ) ",
+
+ Mu = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ defaut = 0.0,
+ fr = "Parametre Mu de la loi",
+ ang = "Mu parameter",
+ ),
+
+ Sigma = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ defaut = 1.0,
+ val_min = 0.,
+ fr = "Parametre Sigma de la loi | Sigma > 0",
+ ang = "Sigma parameter | Sigma > 0",
+ ),
+
+ ), # Fin BLOC MuSigma_Parameters
+
+ Gamma = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ fr = "Parametre Gamma",
+ ang = "Gamma parameter",
+ ),
+
+
+ ), # Fin BLOC GAMMA
+
+
+
+ GEOMETRIC = BLOC ( condition = " Kind in ( 'Geometric', ) ",
+
+ P = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ val_min = 0.,
+ val_max = 1.,
+ fr = "Parametre P | 0 < P < 1",
+ ang = "P parameter | 0 < P < 1",
+ ),
+
+ ), # Fin BLOC GEOMETRIC
+
+
+
+ GUMBEL = BLOC ( condition = " Kind in ( 'Gumbel', ) ",
+
+ Settings = SIMP ( statut = "o",
+ typ = "TXM",
+ max = 1,
+ into = ( "AlphaBeta", "MuSigma" ),
+ defaut = "AlphaBeta",
+ fr = "Parametrage de la loi gumbel",
+ ang = "Gumbel distribution parameter set",
+ ),
+
+ AlphaBeta_Parameters = BLOC ( condition = " Settings in ( 'AlphaBeta', ) ",
+
+ Alpha = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ val_min = 0.,
+ fr = "Parametre Alpha de la loi | Alpha > 0",
+ ang = "Alpha parameter | Alpha > 0",
+ ),
+
+ Beta = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ fr = "Parametre Beta de la loi",
+ ang = "Beta parameter",
+ ),
+
+ ), # Fin BLOC AlphaBeta_Parameters
+
+
+ MuSigma_Parameters = BLOC ( condition = " Settings in ( 'MuSigma', ) ",
+
+ Mu = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ fr = "Parametre Mu de la loi",
+ ang = "Mu parameter",
+ ),
+
+ Sigma = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ val_min = 0.,
+ fr = "Parametre Sigma de la loi | Sigma > 0",
+ ang = "Sigma parameter | Sigma > 0",
+ ),
+
+ ), # Fin BLOC MuSigma_Parameters
+
+ ), # Fin BLOC GUMBEL
+
+
+
+ HISTOGRAM = BLOC ( condition = " Kind in ( 'Histogram', ) ",
+
+ Sup = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ fr = "Borne superieure de la distribution",
+ ang = "Upper bound",
+ ),
+
+ # Il faut definir une collection de couples ( x,p )
+ Values = SIMP ( statut = 'o',
+ typ = 'R',
+ max = '**',
+ ),
+
+ ), # Fin BLOC HISTOGRAM
+
+
+
+ LOGNORMAL = BLOC ( condition = " Kind in ( 'LogNormal', ) ",
+
+ Settings = SIMP ( statut = "o",
+ typ = "TXM",
+ max = 1,
+ into = ( "MuSigmaLog", "MuSigma", "MuSigmaOverMu" ),
+ defaut = "MuSigmaLog",
+ fr = "Parametrage de la loi lognormale",
+ ang = "Lognormal distribution parameter set",
+ ),
+
+ MuSigma_Parameters = BLOC ( condition = " Settings in ( 'MuSigma', ) ",
+
+ Mu = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ fr = "Parametre Mu de la loi | Mu > Gamma",
+ ang = "Mu parameter | Mu > Gamma",
+ ),
+
+ Sigma = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ val_min = 0.,
+ fr = "Parametre Sigma de la loi | Sigma > 0",
+ ang = "Sigma parameter | Sigma > 0",
+ ),
+
+ ), # Fin BLOC MuSigma_Parameters
+
+ MuSigmaOverMu_Parameters = BLOC ( condition = " Settings in ( 'MuSigmaOverMu', ) ",
+
+ Mu = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ fr = "Parametre Mu de la loi | Mu > Gamma",
+ ang = "Mu parameter | Mu > Gamma",
+ ),
+
+ SigmaOverMu = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ val_min = 0.,
+ fr = "Parametre SigmaOverMu de la loi | SigmaOverMu > 0",
+ ang = "SigmaOverMu parameter | SigmaOverMu > 0",
+ ),
+
+ ), # Fin BLOC MuSigmaOverMu_Parameters
+
+ MuSigmaLog_Parameters = BLOC ( condition = " Settings in ( 'MuSigmaLog', ) ",
+
+ MuLog = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ fr = "Parametre Mu log de la loi",
+ ang = "Mu log parameter",
+ ),
+
+ SigmaLog = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ val_min = 0.,
+ fr = "Parametre Sigma log de la loi | SigmaLog > 0",
+ ang = "Sigma log parameter | SigmaLog > 0",
+ ),
+
+ ), # Fin BLOC MuSigmaLog_Parameters
+
+ Gamma = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ fr = "Parametre Gamma",
+ ang = "Gamma parameter",
+ ),
+
+ ), # Fin BLOC LOGNORMAL
+
+
+
+ LOGISTIC = BLOC ( condition = " Kind in ( 'Logistic', ) ",
+
+ Alpha = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ fr = "Parametre Alpha de la loi",
+ ang = "Alpha parameter",
+ ),
+
+ Beta = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ val_min = 0.,
+ fr = "Parametre Beta de la loi | Beta > = 0",
+ ang = "Beta parameter | Beta > = 0",
+ ),
+
+ ), # Fin BLOC LOGISTIC
+
+
+
+ MULTINOMIAL = BLOC ( condition = " Kind in ( 'MultiNomial', ) ",
+
+ N = SIMP ( statut = "o",
+ typ = "I",
+ max = 1,
+ fr = "Dimension de la loi",
+ ang = "Distribution dimension",
+ ),
+
+ # Il faut un vecteur P de taille N
+ Values = SIMP ( statut = 'o',
+ typ = 'R',
+ max = '**',
+ ),
+
+ ), # Fin BLOC MULTINOMIAL
+
+
+
+ NORMAL = BLOC ( condition = " Kind in ( 'Normal', ) ",
+
+ Mu = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ fr = "Parametre Mu de la loi",
+ ang = "Mu parameter",
+ ),
+
+ Sigma = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ val_min = 0.,
+ fr = "Parametre Sigma de la loi | Sigma > 0",
+ ang = "Sigma parameter | Sigma > 0",
+ ),
+
+ ), # Fin BLOC NORMAL
+
+
+
+ POISSON = BLOC ( condition = " Kind in ( 'Poisson', ) ",
+
+ Lambda = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ val_min = 0.,
+ fr = "Parametre Lambda de la loi | Lambda > 0",
+ ang = "Lambda parameter | Lambda > 0",
+ ),
+
+ ), # Fin BLOC POISSON
+
+
+
+ STUDENT = BLOC ( condition = " Kind in ( 'Student', ) ",
+
+ Mu = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ fr = "Parametre Mu de la loi",
+ ang = "Mu parameter",
+ ),
+
+ Nu = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ val_min = 2.,
+ fr = "Parametre Nu de la loi | V > = 2",
+ ang = "Nu parameter | V > = 2",
+ ),
+
+ ), # Fin BLOC STUDENT
+
+
+
+ TRIANGULAR = BLOC ( condition = " Kind in ( 'Triangular', ) ",
+
+ A = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ fr = "Borne inferieure de la loi | A < = M < = B",
+ ang = "Lower bound | A < = M < = B",
+ ),
+
+ M = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ fr = "Mode de la loi | A < = M < = B",
+ ang = "Mode | A < = M < = B",
+ ),
+
+ B = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ fr = "Borne superieure de la loi | A < = M < = B",
+ ang = "Upper bound | A < = M < = B",
+ ),
+
+ ), # Fin BLOC TRIANGULAR
+
+
+
+ TRUNCATEDNORMAL = BLOC ( condition = " Kind in ( 'TruncatedNormal', ) ",
+
+ MuN = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ fr = "Parametre Mu de la loi",
+ ang = "Mu parameter",
+ ),
+
+ SigmaN = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ val_min = 0.,
+ fr = "Parametre SigmaN de la loi | SigmaN > 0",
+ ang = "SigmaN parameter | SigmaN> 0",
+ ),
+
+ A = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ fr = "Borne inferieure de la loi | A < = B",
+ ang = "Lower bound | A < = B",
+ ),
+
+ B = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ fr = "Borne superieure de la loi | A < = B",
+ ang = "Upper bound | A < = B",
+ ),
+
+ ), # Fin BLOC TRUNCATEDNORMAL
+
+
+
+ UNIFORM = BLOC ( condition = " Kind in ( 'Uniform', ) ",
+
+ A = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ fr = "Borne inferieure de la loi | A < = B",
+ ang = "Lower bound | A < = B",
+ ),
+
+ B = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ fr = "Borne superieure de la loi | A < = B",
+ ang = "Upper bound | A < = B",
+ ),
+
+ ), # Fin BLOC UNIFORM
+
+
+
+ USERDEFINED = BLOC ( condition = " Kind in ( 'UserDefined', ) ",
+
+ # Il faut definir une collection de couples ( x,p )
+ Values = SIMP ( statut = 'o',
+ typ = 'R',
+ max = '**',
+ ),
+
+ ), # Fin BLOC USERDEFINED
+
+
+
+ WEIBULL = BLOC ( condition = " Kind in ( 'Weibull', ) ",
+
+ Settings = SIMP ( statut = "o",
+ typ = "TXM",
+ max = 1,
+ into = ( "AlphaBeta", "MuSigma" ),
+ defaut = "AlphaBeta",
+ fr = "Parametrage de la loi weibull",
+ ang = "Weibull distribution parameter set",
+ ),
+
+ AlphaBeta_Parameters = BLOC ( condition = " Settings in ( 'AlphaBeta', ) ",
+
+ Alpha = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ val_min = 0.,
+ fr = "Parametre Alpha de la loi | Alpha > 0",
+ ang = "Alpha parameter | Alpha > 0",
+ ),
+
+ Beta = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ val_min = 0.,
+ fr = "Parametre Beta de la loi | Beta > 0",
+ ang = "Beta parameter | Beta > 0",
+ ),
+
+ ), # Fin BLOC AlphaBeta_Parameters
+
+
+ MuSigma_Parameters = BLOC ( condition = " Settings in ( 'MuSigma', ) ",
+
+ Mu = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ fr = "Parametre Mu de la loi",
+ ang = "Mu parameter",
+ ),
+
+ Sigma = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ val_min = 0.,
+ fr = "Parametre Sigma de la loi | Sigma > 0",
+ ang = "Sigma parameter | Sigma > 0",
+ ),
+
+ ), # Fin BLOC MuSigma_Parameters
+
+ Gamma = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ fr = "Parametre Gamma",
+ ang = "Gamma parameter",
+ ),
+
+ ), # Fin BLOC WEIBULL
+
+) # Fin OPER DISTRIBUTION
+
+
+
+
+
+
+#================================
+# 3. Definition de l'etude
+#================================
+
+# Nota : les variables de type PROC doivent etre en majuscules !
+CRITERIA = PROC ( nom = "CRITERIA",
+ op = None,
+ docu = "",
+ fr = "Mise en donnee pour le fichier de configuration de OPENTURNS.",
+ ang = "Writes the configuration file for OPENTURNS.",
+
+
+
+ Type = SIMP ( statut = "o",
+ typ = "TXM",
+ into = ( "Min/Max", "Central Uncertainty", "Threshold Exceedence" ),
+ fr = "Type d'Analyse",
+ ang = "Analysis",
+ ),
+
+
+
+
+
+
+
+ MinMax = BLOC ( condition = " Type in ( 'Min/Max', ) ",
+
+ Method = SIMP ( statut = "o",
+ typ = "TXM",
+ into = ( "Experiment Plane", "Random Sampling" ),
+ fr = "Methode",
+ ang = "Method",
+ ),
+ # UC 3.1.1
+ ExperimentPlaneSettings = BLOC ( condition = " Method in ( 'Experiment Plane', ) ",
+
+ ExperimentPlane = SIMP ( statut = "o",
+ typ = "TXM",
+ into = ( "Axial", "Factorial", "Composite", ),
+ fr = "Methode",
+ ang = "Method",
+ ),
+
+ Levels = SIMP ( statut = "o",
+ typ = "R",
+ val_min = 0.0,
+ max = '**',
+ fr = "Nombre de niveaux dans chaque direction",
+ ang = "Levels in each direction",
+ ),
+
+ # Scaled Vector
+ UnitsPerDimension = SIMP ( statut = "o",
+ typ = "R",
+ max = '**',
+ fr = "Unite par dimension (autant que de variables declarees)",
+ ang = "Units per dimension (as much as declared variables)",
+ ),
+
+ # Translation Vector
+ Center = SIMP ( statut = "o",
+ typ = "R",
+ max = '**',
+ fr = "Unite par dimension",
+ ang = "Units per dimension",
+ ),
+
+ ), # Fin BLOC ExperimentPlaneSettings
+
+
+
+ RandomSamplingSettings = BLOC ( condition = " Method in ( 'Random Sampling', ) ",
+
+ PointsNumber = SIMP ( statut = "o",
+ typ = "I",
+ val_min = 1,
+ fr = "Nombre de points",
+ ang = "Points number",
+ ),
+
+ ), # Fin BLOC RandomSamplingSettings
+
+ Result = SIMP ( statut = "o",
+ typ = "TXM",
+ into = ( "Min/Max", ),
+ defaut = "Min/Max",
+ fr = "Le minimum et le maximum",
+ ang = "The min and max values",
+ ),
+
+
+ ), # Fin BLOC MinMax
+
+
+
+
+ CentralUncertainty = BLOC ( condition = " Type in ( 'Central Uncertainty', ) ",
+
+ Method = SIMP ( statut = "o",
+ typ = "TXM",
+ into = ( "Taylor Variance Decomposition", "Random Sampling" ),
+ fr = "Methode",
+ ang = "Method",
+ ),
+
+ # UC 3.2.
+ TaylorVarianceDecompositionSettings = BLOC ( condition = " Method in ( 'Taylor Variance Decomposition', ) ",
+
+ Result = FACT ( statut = "o",
+ min = 1,
+ max = "**",
+
+ MeanFirstOrder = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'yes',
+ max = 1,
+ fr = "Moyenne au premier ordre",
+ ang = "MeanFirstOrder",
+ ),
+
+ StandardDeviationFirstOrder = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'yes',
+ max = 1,
+ fr = "Ecart-type au premier ordre",
+ ang = "StandardDeviationFirstOrder",
+ ),
+
+ MeanSecondOrder = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'yes',
+ max = 1,
+ fr = "Moyenne au second ordre",
+ ang = "MeanSecondOrder",
+ ),
+
+ ImportanceFactor = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'no',
+ max = 1,
+ fr = "Facteur d'importance pour variable de sortie scalaire",
+ ang = "ImportanceFactor",
+ ),
+
+ ImportanceFactorSettings = BLOC ( condition = " ImportanceFactor in ( 'yes', ) ",
+
+ NumericalResults = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'yes',
+ max = 1,
+ fr = "Resultats numeriques",
+ ang = "NumericalResults",
+ ),
+
+ GraphicalResults = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'no',
+ max = 1,
+ fr = "Resultats graphiques",
+ ang = "GraphicalResults",
+ ),
+
+ ), # Fin BLOC ImportanceFactorSettings
+
+ ), # Fin FACT Result
+
+ ), # Fin BLOC TaylorVarianceDecompositionSettings
+
+
+
+ RandomSamplingSettings = BLOC ( condition = " Method in ( 'Random Sampling', ) ",
+
+ PointsNumber = SIMP ( statut = "o",
+ typ = "I",
+ val_min = 1,
+ fr = "Nombre de points",
+ ang = "Points number",
+ ),
+
+ Result = FACT ( statut = "o",
+ min = 1,
+ max = "**",
+
+ EmpiricalMean = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'yes',
+ max = 1,
+ fr = "Moyenne empirique",
+ ang = "Empirical mean",
+ ),
+
+ EmpiricalStandardDeviation = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'yes',
+ max = 1,
+ fr = "Ecart-type empirique",
+ ang = "Empirical standard deviation",
+ ),
+
+ EmpiricalQuantile = SIMP ( statut = "o",
+ typ = 'R',
+ defaut = 0.0,
+ max = 1,
+ val_min = 0.0,
+ val_max = 1.0,
+ fr = "Quantile empirique",
+ ang = "Empirical quantile",
+ ),
+
+ AnalysedCorrelations = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'no',
+ max = 1,
+ fr = "Correlations analysees",
+ ang = "Analysed correlations",
+ ),
+
+ KernelSmoothing = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'no',
+ max = 1,
+ fr = "Kernel smoothing de l'echantillon",
+ ang = "Kernel smoothing of the sample",
+ ),
+
+ ), # Fin FACT Result
+
+ ), # Fin BLOC RandomSamplingSettings
+
+ ), # Fin BLOC CentralUncertainty
+
+
+
+
+ ThresholdExceedence = BLOC ( condition = " Type in ( 'Threshold Exceedence', ) ",
+
+ Event = FACT ( statut = "o",
+ min = 1,
+ max = 1,
+
+ Threshold = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ fr = "Le seuil de defaillance",
+ ang = "Failure threshold",
+ ),
+
+ ComparisonOperator = SIMP ( statut = "o",
+ typ = "TXM",
+ max = 1,
+ into = ( "Less", "LessOrEqual", "Equal", "GreaterOrEqual", "Greater" ),
+ fr = "Que faut-il ne pas depasser : un maximum ou un minimum",
+ ang = "What is the failure threshold : maximum or minimum",
+ ),
+ ), # Fin FACT Event
+
+
+ Method = SIMP ( statut = "o",
+ typ = "TXM",
+ into = ( "Simulation", "Analytical" ),
+ fr = "Methode",
+ ang = "Method",
+ ),
+
+ SimulationSettings = BLOC ( condition = " Method in ( 'Simulation', ) ",
+
+ Algorithm = SIMP ( statut = "o",
+ typ = "TXM",
+ into = ( "MonteCarlo", "LHS", "ImportanceSampling" ),
+ fr = "Algorithme de simulation",
+ ang = "Simulation algorithm",
+ ),
+
+
+ RandomGenerator = FACT ( statut = "o",
+ min = 1,
+ max = 1,
+
+ SeedToBeSet = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'no',
+ max = 1,
+ fr = "La racine du generateur aleatoire doit-elle etre positionnee ?",
+ ang = "Does the random generator seed need to be set ?",
+ ),
+
+ SeedSettings = BLOC ( condition = " SeedToBeSet in ( 'yes', ) ",
+
+ RandomGeneratorSeed = SIMP ( statut = "o",
+ typ = "I",
+ max = 1,
+ fr = "Racine du generateur aleatoire",
+ ang = "Random generator seed",
+ ),
+
+ ), # Fin BLOC SeedSettings
+
+ ), # Fin FACT RandomGenerator
+
+
+ BlockSize = SIMP ( statut = "f",
+ typ = "I",
+ max = 1,
+ val_min = 1,
+ defaut = 1,
+ fr = "Nombre de calculs realises en bloc",
+ ang = "Number of computations as a block",
+ ),
+
+ MaximumOuterSampling = SIMP ( statut = "o",
+ typ = "I",
+ max = 1,
+ val_min = 1,
+ fr = "Maximum d'iterations externes",
+ ang = "Maximum outer Sampling value",
+ ),
+
+ MaximumCoefficientOfVariation = SIMP ( statut = "f",
+ typ = "R",
+ max = 1,
+ defaut = 0.1,
+ val_min = 0.0,
+ fr = " maximum ...",
+ ang = "Absolute maximum ...."
+ ),
+
+ ImportanceSamplingSettings = BLOC ( condition = " Algorithm in ( 'ImportanceSampling', ) ",
+
+ MeanVector = SIMP ( statut = "o",
+ typ = "R",
+ max = "**",
+ fr = "Moyenne",
+ ang = "Mean vector",
+ ),
+
+ Correlation = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'Independent', 'Linear' ),
+ defaut = 'Linear',
+ max = 1,
+ fr = "Le type de correlation entre les variables",
+ ang = "Correlation between variables",
+ ),
+
+ ), # Fin BLOC ImportanceSamplingSettings
+
+ Result = FACT ( statut = "o",
+ min = 1,
+ max = "**",
+
+ Probability = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', ),
+ defaut = 'yes',
+ max = 1,
+ fr = "Probabiblite",
+ ang = "Probability",
+ ),
+
+ ConfidenceInterval = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'yes',
+ max = 1,
+ fr = "Ecart-type empirique",
+ ang = "Empirical standard deviation",
+ ),
+
+ ConfidenceIntervalSettings = BLOC ( condition = " ConfidenceInterval in ( 'yes', ) ",
+
+ Level = SIMP ( statut = "o",
+ typ = 'R',
+ defaut = 0.0,
+ max = 1,
+ val_min = 0.0,
+ val_max = 1.0,
+ fr = "Niveau de confiance",
+ ang = "Confidence level",
+ ),
+
+ ), # Fin BLOC ConfidenceIntervalSettings
+
+ VariationCoefficient = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'yes',
+ max = 1,
+ fr = "Coefficient de variation",
+ ang = "VariationCoefficient",
+ ),
+
+ IterationNumber = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'yes',
+ max = 1,
+ fr = "Nombre d'iterations",
+ ang = "Iteration number",
+ ),
+
+ ConvergenceGraph = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'yes',
+ max = 1,
+ fr = "Graphe de convergence",
+ ang = "Convergence graph",
+ ),
+
+ ), # Fin FACT Result
+
+
+
+ ), # Fin BLOC SimulationSettings
+
+
+
+ AnalyticalSettings = BLOC ( condition = " Method in ( 'Analytical', ) ",
+
+ Approximation = SIMP ( statut = "o",
+ typ = "TXM",
+ into = ( "FORM", "SORM" ),
+ fr = "Approximation",
+ ang = "Approximation",
+ ),
+
+ OptimizationAlgorithm = SIMP ( statut = "o",
+ typ = "TXM",
+ into = ( "Cobyla", "AbdoRackwitz" ),
+ fr = "Methode d'optimisation",
+ ang = "Optimisation method",
+ ),
+
+
+ PhysicalStartingPoint = SIMP ( statut = "f",
+ typ = "R",
+ max = "**",
+ fr = "Point de demarrage de l'algorithme iteratif",
+ ang = "Initial point for iterative process",
+ ),
+
+ MaximumIterationsNumber = SIMP ( statut = "f",
+ typ = "I",
+ max = 1,
+ val_min = 1,
+ fr = "Nombre maximum d iterations",
+ ang = "Maximum number of iterations",
+ ),
+
+ regles = ( EXCLUS ( "MaximumAbsoluteError", "RelativeAbsoluteError" ), ),
+
+ MaximumAbsoluteError = SIMP ( statut = "f",
+ typ = "R",
+ max = 1,
+ defaut = 1E-6,
+ val_min = 0.0,
+ fr = "Distance maximum absolue entre 2 iterations successifs",
+ ang = "Absolute maximum distance between 2 successive iterates",
+ ),
+
+ RelativeAbsoluteError = SIMP ( statut = "f",
+ typ = "R",
+ max = 1,
+ defaut = 1E-6,
+ val_min = 0.0,
+ fr = "Distance maximum relative entre 2 iterations successives",
+ ang = "Relative maximum distance between 2 successive iterates",
+ ),
+
+ MaximumConstraintError = SIMP ( statut = "f",
+ typ = "R",
+ max = 1,
+ val_min = 0.0,
+ fr = "Valeur maximum absolue de la fonction moins la valeur du niveau",
+ ang = "Maximum absolute value of the constraint function minus the level value",
+ ),
+
+ ImportanceSampling = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'no',
+ max = 1,
+ fr = "Tirage d'importance au point de conception",
+ ang = "Importance sampling at design point",
+ ),
+
+ FORM = BLOC ( condition = " Approximation in ( 'FORM', ) ",
+
+ Probability = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', ),
+ defaut = 'yes',
+ max = 1,
+ fr = "Probabiblite",
+ ang = "Probability",
+ ),
+
+ DesignPoint = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'yes',
+ max = 1,
+ fr = "Point de conception",
+ ang = "Design point",
+ ),
+
+ HasReliabilityIndex = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'yes',
+ max = 1,
+ fr = "Indice de fiabilite",
+ ang = "Reliability index",
+ ),
+
+ ImportanceFactor = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'no',
+ max = 1,
+ fr = "Facteur d'importance pour variable de sortie scalaire",
+ ang = "ImportanceFactor",
+ ),
+
+ ImportanceFactorSettings = BLOC ( condition = " ImportanceFactor in ( 'yes', ) ",
+
+ NumericalResults = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'yes',
+ max = 1,
+ fr = "Resultats numeriques",
+ ang = "NumericalResults",
+ ),
+
+ GraphicalResults = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'no',
+ max = 1,
+ fr = "Resultats graphiques",
+ ang = "GraphicalResults",
+ ),
+
+ ), # Fin BLOC ImportanceFactorSettings
+
+
+ SensitivityAnalysis = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'no',
+ max = 1,
+ fr = "Analyse de sensibilite",
+ ang = "Sensitivity analysis",
+ ),
+
+ SensitivityAnalysisSettings = BLOC ( condition = " SensitivityAnalysis in ( 'yes', ) ",
+
+ HasoferReliabilityIndex = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'no',
+ max = 1,
+ fr = "Indice de fiabilite de Hasofer",
+ ang = "Hasofer reliability index",
+ ),
+
+ HasoferReliabilityIndexSettings = BLOC ( condition = " HasoferReliabilityIndex in ( 'yes', ) ",
+
+ NumericalResults = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'yes',
+ max = 1,
+ fr = "Resultats numeriques",
+ ang = "NumericalResults",
+ ),
+
+ GraphicalResults = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'no',
+ max = 1,
+ fr = "Resultats graphiques",
+ ang = "GraphicalResults",
+ ),
+
+ ), # Fin BLOC HasoferReliabilityIndexSettings
+
+ ), # Fin BLOC SensitivityAnalysisSettings
+
+ FunctionCallsNumber = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'no',
+ max = 1,
+ fr = "Nombre d'appels a la fonction",
+ ang = "Function calls number",
+ ),
+
+
+ ), # Fin BLOC FORM
+
+
+ SORM = BLOC ( condition = " Approximation in ( 'SORM', ) ",
+
+
+ TvedtApproximation = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'no',
+ max = 1,
+ fr = "Approximation de Tvedt",
+ ang = "Tvedt approximation",
+ ),
+
+ HohenBichlerApproximation = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'no',
+ max = 1,
+ fr = "Approximation de HohenBichler",
+ ang = "HohenBichler approximation",
+ ),
+
+ BreitungApproximation = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'no',
+ max = 1,
+ fr = "Approximation de Breitung",
+ ang = "Breitung approximation",
+ ),
+
+ DesignPoint = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'yes',
+ max = 1,
+ fr = "Point de conception",
+ ang = "Design point",
+ ),
+
+ ImportanceFactor = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'no',
+ max = 1,
+ fr = "Facteur d'importance pour variable de sortie scalaire",
+ ang = "ImportanceFactor",
+ ),
+
+ ImportanceFactorSettings = BLOC ( condition = " ImportanceFactor in ( 'yes', ) ",
+
+ NumericalResults = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'yes',
+ max = 1,
+ fr = "Resultats numeriques",
+ ang = "NumericalResults",
+ ),
+
+ GraphicalResults = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'no',
+ max = 1,
+ fr = "Resultats graphiques",
+ ang = "GraphicalResults",
+ ),
+
+ ), # Fin BLOC ImportanceFactorSettings
+
+
+ SensitivityAnalysis = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'no',
+ max = 1,
+ fr = "Analyse de sensibilite",
+ ang = "Sensitivity analysis",
+ ),
+
+ SensitivityAnalysisSettings = BLOC ( condition = " SensitivityAnalysis in ( 'yes', ) ",
+
+ HasoferReliabilityIndex = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'no',
+ max = 1,
+ fr = "Indice de fiabilite de Hasofer",
+ ang = "Hasofer reliability index",
+ ),
+
+ HasoferReliabilityIndexSettings = BLOC ( condition = " HasoferReliabilityIndex in ( 'yes', ) ",
+
+ NumericalResults = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'yes',
+ max = 1,
+ fr = "Resultats numeriques",
+ ang = "NumericalResults",
+ ),
+
+ GraphicalResults = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'no',
+ max = 1,
+ fr = "Resultats graphiques",
+ ang = "GraphicalResults",
+ ),
+
+ ), # Fin BLOC HasoferReliabilityIndexSettings
+
+ ), # Fin BLOC SensitivityAnalysisSettings
+
+ FunctionCallsNumber = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'no',
+ max = 1,
+ fr = "Nombre d'appels a la fonction",
+ ang = "Function calls number",
+ ),
+
+
+ ), # Fin BLOC SORM
+
+
+
+ ), # Fin BLOC AnalyticalSettings
+
+
+
+ ), # Fin BLOC ThresholdExceedence
+
+
+
+) # Fin PROC CRITERIA
+
+
+
+
+
+
+
--- /dev/null
+# -*- coding: utf-8 -*-
+
+# --------------------------------------------------
+# debut entete
+# --------------------------------------------------
+
+from Accas import ASSD, JDC_CATA, AU_MOINS_UN, PROC, SIMP, FACT, OPER, MACRO, BLOC
+
+class loi ( ASSD ) : pass
+class variable ( ASSD ) : pass
+
+
+#CONTEXT.debug = 1
+JdC = JDC_CATA ( code = 'OPENTURNS_STUDY',
+ execmodul = None,
+ regles = ( AU_MOINS_UN ( 'CRITERIA' ), AU_MOINS_UN ( 'MODEL' ), ),
+ ) # Fin JDC_CATA
+
+# --------------------------------------------------
+# fin entete
+# --------------------------------------------------
+
+LOG = PROC ( nom = "LOG",
+ op = None,
+ docu = "",
+
+ DebugMessages = SIMP ( statut = "o",
+ typ = "TXM",
+ into = ( 'yes', 'no' ),
+ defaut = 'no',
+ fr = "Affichage du niveau de debug de la bibliotheque Open TURNS",
+ ang = "Open TURNS library debug level print",
+ ),
+
+ WrapperMessages = SIMP ( statut = "o",
+ typ = "TXM",
+ into = ( 'yes', 'no' ),
+ defaut = 'no',
+ fr = "Affichage du niveau de wrapper de la bibliotheque Open TURNS",
+ ang = "Open TURNS library debug level print",
+ ),
+
+ UserMessages = SIMP ( statut = "o",
+ typ = "TXM",
+ into = ( 'yes', 'no' ),
+ defaut = 'no',
+ fr = "Affichage du niveau de user de la bibliotheque Open TURNS",
+ ang = "Open TURNS library user level print",
+ ),
+
+ InfoMessages = SIMP ( statut = "o",
+ typ = "TXM",
+ into = ( 'yes', 'no' ),
+ defaut = 'yes',
+ fr = "Affichage du niveau de info de la bibliotheque Open TURNS",
+ ang = "Open TURNS library info level print",
+ ),
+
+ WarningMessages = SIMP ( statut = "o",
+ typ = "TXM",
+ into = ( 'yes', 'no' ),
+ defaut = 'yes',
+ fr = "Affichage du niveau de warning de la bibliotheque Open TURNS",
+ ang = "Open TURNS library warning level print",
+ ),
+
+ ErrorMessages = SIMP ( statut = "o",
+ typ = "TXM",
+ into = ( 'yes', 'no' ),
+ defaut = 'yes',
+ fr = "Affichage du niveau de error de la bibliotheque Open TURNS",
+ ang = "Open TURNS library error level print",
+ ),
+
+) # Fin PROC LOG
+
+
+
+
+#================================
+# 0. Definition du modele physique
+#================================
+
+
+DETERMINISTICVARIABLE = OPER ( nom = "DETERMINISTICVARIABLE",
+ sd_prod = variable,
+ op = None,
+ fr = "Variable deterministe",
+ ang = "Deterministic variable",
+
+ N = SIMP ( statut = 'o',
+ typ = "TXM",
+ fr = "Nom",
+ ang = "Name",
+ ),
+
+ T = SIMP ( statut = 'o',
+ defaut = "in",
+ into = ( "in" , "out", ),
+ typ = "TXM",
+ fr = "Type",
+ ang = "Type",
+ ),
+
+ R = SIMP ( statut = 'o',
+ defaut = 0,
+ typ = "I",
+ fr = "Rang",
+ ang = "Rank",
+ ),
+
+) # Fin OPER DETERMINISTICVARIABLE
+
+
+
+import ops
+MODEL = MACRO ( nom = "MODEL",
+ op = None,
+ UIinfo = { "groupes" : ( "Gestion du travail", ) },
+ fr = "Chargement du wrapper du modele physique",
+ ang = "Physical model wrapper load",
+ sd_prod = ops.INCLUDE,
+ op_init = ops.INCLUDE_context,
+ fichier_ini = 1,
+
+ FileName = SIMP ( statut = "o",
+ typ = "TXM",
+ fr = "Nom du modele physique",
+ ang = "Physical model identifier",
+ ),
+
+) # Fin PROC MODEL
+
+
+
+
+VARIABLE = PROC ( nom = "VARIABLE",
+ op = None,
+ docu = "",
+ fr = "Variable probabiliste",
+ ang = "Probabilistic variable",
+
+ ModelVariable = SIMP ( statut = "o",
+ typ = ( variable, ),
+ ),
+
+ Distribution = SIMP ( statut = "o",
+ typ = ( loi, ),
+ ),
+
+) # Fin PROC VARIABLE
+
+
+
+
+#================================
+# 1. Definition des LOIS
+#================================
+
+# Nota : les variables de type OPER doivent etre en majuscules !
+# Nota : les variables de type OPER doivent etre de premier niveau (pas imbriquees dans un autre type)
+DISTRIBUTION = OPER ( nom = "DISTRIBUTION",
+ sd_prod = loi,
+ op = 68,
+ fr = "Definitions des lois marginales utilisees par les variables d'entree",
+
+
+#====
+# Type de distribution
+#====
+
+ Kind = SIMP ( statut = "o", typ = "TXM",
+ into = ( "Beta",
+ "Exponential",
+ "Gamma",
+ "Geometric",
+ "Gumbel",
+ "Histogram",
+ "Logistic",
+ "LogNormal",
+ "MultiNomial",
+ "Normal",
+ "TruncatedNormal",
+ "Poisson",
+ "Student",
+ "Triangular",
+ "Uniform",
+ "UserDefined",
+ "Weibull",
+ ),
+ fr = "Choix du type de la loi marginale",
+ ang = "1D marginal distribution",
+ ),
+
+#====
+# Definition des parametres selon le type de la loi
+#====
+
+ BETA = BLOC ( condition = " Kind in ( 'Beta', ) ",
+
+ Settings = SIMP ( statut = "o",
+ typ = "TXM",
+ max = 1,
+ into = ( "RT", "MuSigma" ),
+ defaut = "RT",
+ fr = "Parametrage de la loi beta",
+ ang = "Beta distribution parameter set",
+ ),
+
+ RT_Parameters = BLOC ( condition = " Settings in ( 'RT', ) ",
+
+ R = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ val_min = 0.,
+ fr = "Parametre R de la loi",
+ ang = "R parameter",
+ ),
+
+ # T > R
+ T = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ val_min = 0.,
+ fr = "Parametre T de la loi | T > R",
+ ang = "T parameter | T > R",
+ ),
+
+ ), # Fin BLOC RT_Parameters
+
+
+ MuSigma_Parameters = BLOC ( condition = " Settings in ( 'MuSigma', ) ",
+
+ Mu = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ fr = "Parametre Mu de la loi",
+ ang = "Mu parameter",
+ ),
+
+ Sigma = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ val_min = 0.,
+ fr = "Parametre Sigma de la loi | Sigma > 0",
+ ang = "Sigma parameter | Sigma > 0",
+ ),
+
+ ), # Fin BLOC MuSigma_Parameters
+
+
+ A = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ fr = "Parametre A de la loi",
+ ang = "A parameter",
+ ),
+
+ # B > A
+ B = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ fr = "Parametre B de la loi | B > A",
+ ang = "B parameter | B > A",
+ ),
+
+ ), # Fin BLOC BETA
+
+
+
+ EXPONENTIAL = BLOC ( condition = " Kind in ( 'Exponential', ) ",
+
+ Lambda = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ val_min = 0.,
+ fr = "Parametre Lambda | Lambda > 0",
+ ang = "Lambda parameter | Lambda > 0",
+ ),
+
+ Gamma = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ fr = "Parametre Gamma",
+ ang = "Gamma parameter",
+ ),
+
+ ), # Fin BLOC EXPONENTIAL
+
+
+
+ GAMMA = BLOC ( condition = " Kind in ( 'Gamma', ) ",
+
+ Settings = SIMP ( statut = "o",
+ typ = "TXM",
+ max = 1,
+ into = ( "KLambda", "MuSigma" ),
+ defaut = "KLambda",
+ fr = "Parametrage de la loi gamma",
+ ang = "Gamma distribution parameter set",
+ ),
+
+ KLambda_Parameters = BLOC ( condition = " Settings in ( 'KLambda', ) ",
+
+ K = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ val_min = 0.,
+ fr = "Parametre K de la loi | K > 0",
+ ang = "K parameter | K > 0",
+ ),
+
+ Lambda = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ val_min = 0.,
+ fr = "Parametre Lambda de la loi | Lambda > 0",
+ ang = "Lambda parameter | Lambda > 0",
+ ),
+
+ ), # Fin BLOC KLambda_Parameters
+
+
+ MuSigma_Parameters = BLOC ( condition = " Settings in ( 'MuSigma', ) ",
+
+ Mu = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ defaut = 0.0,
+ fr = "Parametre Mu de la loi",
+ ang = "Mu parameter",
+ ),
+
+ Sigma = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ defaut = 1.0,
+ val_min = 0.,
+ fr = "Parametre Sigma de la loi | Sigma > 0",
+ ang = "Sigma parameter | Sigma > 0",
+ ),
+
+ ), # Fin BLOC MuSigma_Parameters
+
+ Gamma = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ fr = "Parametre Gamma",
+ ang = "Gamma parameter",
+ ),
+
+
+ ), # Fin BLOC GAMMA
+
+
+
+ GEOMETRIC = BLOC ( condition = " Kind in ( 'Geometric', ) ",
+
+ P = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ val_min = 0.,
+ val_max = 1.,
+ fr = "Parametre P | 0 < P < 1",
+ ang = "P parameter | 0 < P < 1",
+ ),
+
+ ), # Fin BLOC GEOMETRIC
+
+
+
+ GUMBEL = BLOC ( condition = " Kind in ( 'Gumbel', ) ",
+
+ Settings = SIMP ( statut = "o",
+ typ = "TXM",
+ max = 1,
+ into = ( "AlphaBeta", "MuSigma" ),
+ defaut = "AlphaBeta",
+ fr = "Parametrage de la loi gumbel",
+ ang = "Gumbel distribution parameter set",
+ ),
+
+ AlphaBeta_Parameters = BLOC ( condition = " Settings in ( 'AlphaBeta', ) ",
+
+ Alpha = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ val_min = 0.,
+ fr = "Parametre Alpha de la loi | Alpha > 0",
+ ang = "Alpha parameter | Alpha > 0",
+ ),
+
+ Beta = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ fr = "Parametre Beta de la loi",
+ ang = "Beta parameter",
+ ),
+
+ ), # Fin BLOC AlphaBeta_Parameters
+
+
+ MuSigma_Parameters = BLOC ( condition = " Settings in ( 'MuSigma', ) ",
+
+ Mu = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ fr = "Parametre Mu de la loi",
+ ang = "Mu parameter",
+ ),
+
+ Sigma = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ val_min = 0.,
+ fr = "Parametre Sigma de la loi | Sigma > 0",
+ ang = "Sigma parameter | Sigma > 0",
+ ),
+
+ ), # Fin BLOC MuSigma_Parameters
+
+ ), # Fin BLOC GUMBEL
+
+
+
+ HISTOGRAM = BLOC ( condition = " Kind in ( 'Histogram', ) ",
+
+ Sup = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ fr = "Borne superieure de la distribution",
+ ang = "Upper bound",
+ ),
+
+ # Il faut definir une collection de couples ( x,p )
+ Values = SIMP ( statut = 'o',
+ typ = 'R',
+ max = '**',
+ ),
+
+ ), # Fin BLOC HISTOGRAM
+
+
+
+ LOGNORMAL = BLOC ( condition = " Kind in ( 'LogNormal', ) ",
+
+ Settings = SIMP ( statut = "o",
+ typ = "TXM",
+ max = 1,
+ into = ( "MuSigmaLog", "MuSigma", "MuSigmaOverMu" ),
+ defaut = "MuSigmaLog",
+ fr = "Parametrage de la loi lognormale",
+ ang = "Lognormal distribution parameter set",
+ ),
+
+ MuSigma_Parameters = BLOC ( condition = " Settings in ( 'MuSigma', ) ",
+
+ Mu = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ fr = "Parametre Mu de la loi | Mu > Gamma",
+ ang = "Mu parameter | Mu > Gamma",
+ ),
+
+ Sigma = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ val_min = 0.,
+ fr = "Parametre Sigma de la loi | Sigma > 0",
+ ang = "Sigma parameter | Sigma > 0",
+ ),
+
+ ), # Fin BLOC MuSigma_Parameters
+
+ MuSigmaOverMu_Parameters = BLOC ( condition = " Settings in ( 'MuSigmaOverMu', ) ",
+
+ Mu = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ fr = "Parametre Mu de la loi | Mu > Gamma",
+ ang = "Mu parameter | Mu > Gamma",
+ ),
+
+ SigmaOverMu = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ val_min = 0.,
+ fr = "Parametre SigmaOverMu de la loi | SigmaOverMu > 0",
+ ang = "SigmaOverMu parameter | SigmaOverMu > 0",
+ ),
+
+ ), # Fin BLOC MuSigmaOverMu_Parameters
+
+ MuSigmaLog_Parameters = BLOC ( condition = " Settings in ( 'MuSigmaLog', ) ",
+
+ MuLog = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ fr = "Parametre Mu log de la loi",
+ ang = "Mu log parameter",
+ ),
+
+ SigmaLog = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ val_min = 0.,
+ fr = "Parametre Sigma log de la loi | SigmaLog > 0",
+ ang = "Sigma log parameter | SigmaLog > 0",
+ ),
+
+ ), # Fin BLOC MuSigmaLog_Parameters
+
+ Gamma = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ fr = "Parametre Gamma",
+ ang = "Gamma parameter",
+ ),
+
+ ), # Fin BLOC LOGNORMAL
+
+
+
+ LOGISTIC = BLOC ( condition = " Kind in ( 'Logistic', ) ",
+
+ Alpha = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ fr = "Parametre Alpha de la loi",
+ ang = "Alpha parameter",
+ ),
+
+ Beta = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ val_min = 0.,
+ fr = "Parametre Beta de la loi | Beta > = 0",
+ ang = "Beta parameter | Beta > = 0",
+ ),
+
+ ), # Fin BLOC LOGISTIC
+
+
+
+ MULTINOMIAL = BLOC ( condition = " Kind in ( 'MultiNomial', ) ",
+
+ N = SIMP ( statut = "o",
+ typ = "I",
+ max = 1,
+ fr = "Dimension de la loi",
+ ang = "Distribution dimension",
+ ),
+
+ # Il faut un vecteur P de taille N
+ Values = SIMP ( statut = 'o',
+ typ = 'R',
+ max = '**',
+ ),
+
+ ), # Fin BLOC MULTINOMIAL
+
+
+
+ NORMAL = BLOC ( condition = " Kind in ( 'Normal', ) ",
+
+ Mu = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ fr = "Parametre Mu de la loi",
+ ang = "Mu parameter",
+ ),
+
+ Sigma = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ val_min = 0.,
+ fr = "Parametre Sigma de la loi | Sigma > 0",
+ ang = "Sigma parameter | Sigma > 0",
+ ),
+
+ ), # Fin BLOC NORMAL
+
+
+
+ POISSON = BLOC ( condition = " Kind in ( 'Poisson', ) ",
+
+ Lambda = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ val_min = 0.,
+ fr = "Parametre Lambda de la loi | Lambda > 0",
+ ang = "Lambda parameter | Lambda > 0",
+ ),
+
+ ), # Fin BLOC POISSON
+
+
+
+ STUDENT = BLOC ( condition = " Kind in ( 'Student', ) ",
+
+ Mu = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ fr = "Parametre Mu de la loi",
+ ang = "Mu parameter",
+ ),
+
+ Nu = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ val_min = 2.,
+ fr = "Parametre Nu de la loi | V > = 2",
+ ang = "Nu parameter | V > = 2",
+ ),
+
+ ), # Fin BLOC STUDENT
+
+
+
+ TRIANGULAR = BLOC ( condition = " Kind in ( 'Triangular', ) ",
+
+ A = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ fr = "Borne inferieure de la loi | A < = M < = B",
+ ang = "Lower bound | A < = M < = B",
+ ),
+
+ M = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ fr = "Mode de la loi | A < = M < = B",
+ ang = "Mode | A < = M < = B",
+ ),
+
+ B = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ fr = "Borne superieure de la loi | A < = M < = B",
+ ang = "Upper bound | A < = M < = B",
+ ),
+
+ ), # Fin BLOC TRIANGULAR
+
+
+
+ TRUNCATEDNORMAL = BLOC ( condition = " Kind in ( 'TruncatedNormal', ) ",
+
+ MuN = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ fr = "Parametre Mu de la loi",
+ ang = "Mu parameter",
+ ),
+
+ SigmaN = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ val_min = 0.,
+ fr = "Parametre SigmaN de la loi | SigmaN > 0",
+ ang = "SigmaN parameter | SigmaN> 0",
+ ),
+
+ A = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ fr = "Borne inferieure de la loi | A < = B",
+ ang = "Lower bound | A < = B",
+ ),
+
+ B = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ fr = "Borne superieure de la loi | A < = B",
+ ang = "Upper bound | A < = B",
+ ),
+
+ ), # Fin BLOC TRUNCATEDNORMAL
+
+
+
+ UNIFORM = BLOC ( condition = " Kind in ( 'Uniform', ) ",
+
+ A = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ fr = "Borne inferieure de la loi | A < = B",
+ ang = "Lower bound | A < = B",
+ ),
+
+ B = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ fr = "Borne superieure de la loi | A < = B",
+ ang = "Upper bound | A < = B",
+ ),
+
+ ), # Fin BLOC UNIFORM
+
+
+
+ USERDEFINED = BLOC ( condition = " Kind in ( 'UserDefined', ) ",
+
+ # Il faut definir une collection de couples ( x,p )
+ Values = SIMP ( statut = 'o',
+ typ = 'R',
+ max = '**',
+ ),
+
+ ), # Fin BLOC USERDEFINED
+
+
+
+ WEIBULL = BLOC ( condition = " Kind in ( 'Weibull', ) ",
+
+ Settings = SIMP ( statut = "o",
+ typ = "TXM",
+ max = 1,
+ into = ( "AlphaBeta", "MuSigma" ),
+ defaut = "AlphaBeta",
+ fr = "Parametrage de la loi weibull",
+ ang = "Weibull distribution parameter set",
+ ),
+
+ AlphaBeta_Parameters = BLOC ( condition = " Settings in ( 'AlphaBeta', ) ",
+
+ Alpha = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ val_min = 0.,
+ fr = "Parametre Alpha de la loi | Alpha > 0",
+ ang = "Alpha parameter | Alpha > 0",
+ ),
+
+ Beta = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ val_min = 0.,
+ fr = "Parametre Beta de la loi | Beta > 0",
+ ang = "Beta parameter | Beta > 0",
+ ),
+
+ ), # Fin BLOC AlphaBeta_Parameters
+
+
+ MuSigma_Parameters = BLOC ( condition = " Settings in ( 'MuSigma', ) ",
+
+ Mu = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ fr = "Parametre Mu de la loi",
+ ang = "Mu parameter",
+ ),
+
+ Sigma = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ val_min = 0.,
+ fr = "Parametre Sigma de la loi | Sigma > 0",
+ ang = "Sigma parameter | Sigma > 0",
+ ),
+
+ ), # Fin BLOC MuSigma_Parameters
+
+ Gamma = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ fr = "Parametre Gamma",
+ ang = "Gamma parameter",
+ ),
+
+ ), # Fin BLOC WEIBULL
+
+) # Fin OPER DISTRIBUTION
+
+
+
+
+
+
+
+#================================
+# 3. Definition de l'etude
+#================================
+
+# Nota : les variables de type PROC doivent etre en majuscules !
+CRITERIA = PROC ( nom = "CRITERIA",
+ op = None,
+ docu = "",
+ fr = "Mise en donnee pour le fichier de configuration de OPENTURNS.",
+ ang = "Writes the configuration file for OPENTURNS.",
+
+
+
+ Type = SIMP ( statut = "o",
+ typ = "TXM",
+ into = ( "Min/Max", "Central Uncertainty", "Threshold Exceedence" ),
+ fr = "Type d'Analyse",
+ ang = "Analysis",
+ ),
+
+
+
+
+
+
+
+ MinMax = BLOC ( condition = " Type in ( 'Min/Max', ) ",
+
+ Method = SIMP ( statut = "o",
+ typ = "TXM",
+ into = ( "Experiment Plane", "Random Sampling" ),
+ fr = "Methode",
+ ang = "Method",
+ ),
+ # UC 3.1.1
+ ExperimentPlaneSettings = BLOC ( condition = " Method in ( 'Experiment Plane', ) ",
+
+ ExperimentPlane = SIMP ( statut = "o",
+ typ = "TXM",
+ into = ( "Axial", "Factorial", "Composite", ),
+ fr = "Methode",
+ ang = "Method",
+ ),
+
+ Levels = SIMP ( statut = "o",
+ typ = "R",
+ val_min = 0.0,
+ max = '**',
+ fr = "Nombre de niveaux dans chaque direction",
+ ang = "Levels in each direction",
+ ),
+
+ # Scaled Vector
+ UnitsPerDimension = SIMP ( statut = "o",
+ typ = "R",
+ max = '**',
+ fr = "Unite par dimension (autant que de variables declarees)",
+ ang = "Units per dimension (as much as declared variables)",
+ ),
+
+ # Translation Vector
+ Center = SIMP ( statut = "o",
+ typ = "R",
+ max = '**',
+ fr = "Unite par dimension",
+ ang = "Units per dimension",
+ ),
+
+ ), # Fin BLOC ExperimentPlaneSettings
+
+
+
+ RandomSamplingSettings = BLOC ( condition = " Method in ( 'Random Sampling', ) ",
+
+ PointsNumber = SIMP ( statut = "o",
+ typ = "I",
+ val_min = 1,
+ fr = "Nombre de points",
+ ang = "Points number",
+ ),
+
+ ), # Fin BLOC RandomSamplingSettings
+
+ Result = SIMP ( statut = "o",
+ typ = "TXM",
+ into = ( "Min/Max", ),
+ defaut = "Min/Max",
+ fr = "Le minimum et le maximum",
+ ang = "The min and max values",
+ ),
+
+
+ ), # Fin BLOC MinMax
+
+
+
+
+ CentralUncertainty = BLOC ( condition = " Type in ( 'Central Uncertainty', ) ",
+
+ Method = SIMP ( statut = "o",
+ typ = "TXM",
+ into = ( "Taylor Variance Decomposition", "Random Sampling" ),
+ fr = "Methode",
+ ang = "Method",
+ ),
+
+ # UC 3.2.
+ TaylorVarianceDecompositionSettings = BLOC ( condition = " Method in ( 'Taylor Variance Decomposition', ) ",
+
+ Result = FACT ( statut = "o",
+ min = 1,
+ max = "**",
+
+ MeanFirstOrder = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'yes',
+ max = 1,
+ fr = "Moyenne au premier ordre",
+ ang = "MeanFirstOrder",
+ ),
+
+ StandardDeviationFirstOrder = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'yes',
+ max = 1,
+ fr = "Ecart-type au premier ordre",
+ ang = "StandardDeviationFirstOrder",
+ ),
+
+ MeanSecondOrder = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'yes',
+ max = 1,
+ fr = "Moyenne au second ordre",
+ ang = "MeanSecondOrder",
+ ),
+
+ ImportanceFactor = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'no',
+ max = 1,
+ fr = "Facteur d'importance pour variable de sortie scalaire",
+ ang = "ImportanceFactor",
+ ),
+
+ ImportanceFactorSettings = BLOC ( condition = " ImportanceFactor in ( 'yes', ) ",
+
+ NumericalResults = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'yes',
+ max = 1,
+ fr = "Resultats numeriques",
+ ang = "NumericalResults",
+ ),
+
+ GraphicalResults = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'no',
+ max = 1,
+ fr = "Resultats graphiques",
+ ang = "GraphicalResults",
+ ),
+
+ ), # Fin BLOC ImportanceFactorSettings
+
+ ), # Fin FACT Result
+
+ ), # Fin BLOC TaylorVarianceDecompositionSettings
+
+
+
+ RandomSamplingSettings = BLOC ( condition = " Method in ( 'Random Sampling', ) ",
+
+ PointsNumber = SIMP ( statut = "o",
+ typ = "I",
+ val_min = 1,
+ fr = "Nombre de points",
+ ang = "Points number",
+ ),
+
+ Result = FACT ( statut = "o",
+ min = 1,
+ max = "**",
+
+ EmpiricalMean = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'yes',
+ max = 1,
+ fr = "Moyenne empirique",
+ ang = "Empirical mean",
+ ),
+
+ EmpiricalStandardDeviation = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'yes',
+ max = 1,
+ fr = "Ecart-type empirique",
+ ang = "Empirical standard deviation",
+ ),
+
+ EmpiricalQuantile = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'yes',
+ max = 1,
+ fr = "Quantile empirique",
+ ang = "Empirical quantile",
+ ),
+
+ EmpiricalQuantileSettings = BLOC ( condition = " EmpiricalQuantile in ( 'yes', ) ",
+
+ EmpiricalQuantile_Order = SIMP ( statut = "o",
+ typ = 'R',
+ defaut = 0.95,
+ max = 1,
+ val_min = 0.0,
+ val_max = 1.0,
+ fr = "Ordre du quantile empirique",
+ ang = "Empirical quantile order",
+ ),
+
+ ), # Fin BLOC EmpiricalQuantileSettings
+
+ AnalysedCorrelations = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'no',
+ max = 1,
+ fr = "Correlations analysees",
+ ang = "Analysed correlations",
+ ),
+
+ KernelSmoothing = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'no',
+ max = 1,
+ fr = "Kernel smoothing de l'echantillon",
+ ang = "Kernel smoothing of the sample",
+ ),
+
+ ), # Fin FACT Result
+
+ ), # Fin BLOC RandomSamplingSettings
+
+ ), # Fin BLOC CentralUncertainty
+
+
+
+
+ ThresholdExceedence = BLOC ( condition = " Type in ( 'Threshold Exceedence', ) ",
+
+ Event = FACT ( statut = "o",
+ min = 1,
+ max = 1,
+
+ Threshold = SIMP ( statut = "o",
+ typ = "R",
+ max = 1,
+ fr = "Le seuil de defaillance",
+ ang = "Failure threshold",
+ ),
+
+ ComparisonOperator = SIMP ( statut = "o",
+ typ = "TXM",
+ max = 1,
+ into = ( "Less", "LessOrEqual", "Equal", "GreaterOrEqual", "Greater" ),
+ fr = "Que faut-il ne pas depasser : un maximum ou un minimum",
+ ang = "What is the failure threshold : maximum or minimum",
+ ),
+ ), # Fin FACT Event
+
+
+ Method = SIMP ( statut = "o",
+ typ = "TXM",
+ into = ( "Simulation", "Analytical" ),
+ fr = "Methode",
+ ang = "Method",
+ ),
+
+ SimulationSettings = BLOC ( condition = " Method in ( 'Simulation', ) ",
+
+ Algorithm = SIMP ( statut = "o",
+ typ = "TXM",
+ into = ( "MonteCarlo", "LHS", "ImportanceSampling" ),
+ fr = "Algorithme de simulation",
+ ang = "Simulation algorithm",
+ ),
+
+
+ RandomGenerator = FACT ( statut = "o",
+ min = 1,
+ max = 1,
+
+ SeedToBeSet = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'no',
+ max = 1,
+ fr = "La racine du generateur aleatoire doit-elle etre positionnee ?",
+ ang = "Does the random generator seed need to be set ?",
+ ),
+
+ SeedSettings = BLOC ( condition = " SeedToBeSet in ( 'yes', ) ",
+
+ RandomGeneratorSeed = SIMP ( statut = "o",
+ typ = "I",
+ max = 1,
+ fr = "Racine du generateur aleatoire",
+ ang = "Random generator seed",
+ ),
+
+ ), # Fin BLOC SeedSettings
+
+ ), # Fin FACT RandomGenerator
+
+
+ BlockSize = SIMP ( statut = "f",
+ typ = "I",
+ max = 1,
+ val_min = 1,
+ defaut = 1,
+ fr = "Nombre de calculs realises en bloc",
+ ang = "Number of computations as a block",
+ ),
+
+ MaximumOuterSampling = SIMP ( statut = "o",
+ typ = "I",
+ max = 1,
+ val_min = 1,
+ fr = "Maximum d'iterations externes",
+ ang = "Maximum outer Sampling value",
+ ),
+
+ MaximumCoefficientOfVariation = SIMP ( statut = "f",
+ typ = "R",
+ max = 1,
+ defaut = 0.1,
+ val_min = 0.0,
+ fr = " maximum ...",
+ ang = "Absolute maximum ...."
+ ),
+
+ ImportanceSamplingSettings = BLOC ( condition = " Algorithm in ( 'ImportanceSampling', ) ",
+
+ MeanVector = SIMP ( statut = "o",
+ typ = "R",
+ max = "**",
+ fr = "Moyenne",
+ ang = "Mean vector",
+ ),
+
+ Correlation = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'Independent', 'Linear' ),
+ defaut = 'Linear',
+ max = 1,
+ fr = "Le type de correlation entre les variables",
+ ang = "Correlation between variables",
+ ),
+
+ ), # Fin BLOC ImportanceSamplingSettings
+
+ Result = FACT ( statut = "o",
+ min = 1,
+ max = "**",
+
+ Probability = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', ),
+ defaut = 'yes',
+ max = 1,
+ fr = "Probabiblite",
+ ang = "Probability",
+ ),
+
+ StandardDeviation = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', ),
+ defaut = 'yes',
+ max = 1,
+ fr = "Ecart type",
+ ang = "Standard deviation",
+ ),
+
+ ConfidenceInterval = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'yes',
+ max = 1,
+ fr = "Ecart-type empirique",
+ ang = "Empirical standard deviation",
+ ),
+
+ ConfidenceIntervalSettings = BLOC ( condition = " ConfidenceInterval in ( 'yes', ) ",
+
+ Level = SIMP ( statut = "o",
+ typ = 'R',
+ defaut = 0.9,
+ max = 1,
+ val_min = 0.0,
+ val_max = 1.0,
+ fr = "Niveau de confiance",
+ ang = "Confidence level",
+ ),
+
+ ), # Fin BLOC ConfidenceIntervalSettings
+
+ VariationCoefficient = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'yes',
+ max = 1,
+ fr = "Coefficient de variation",
+ ang = "VariationCoefficient",
+ ),
+
+ IterationNumber = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'yes',
+ max = 1,
+ fr = "Nombre d'iterations",
+ ang = "Iteration number",
+ ),
+
+ ConvergenceGraph = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'yes',
+ max = 1,
+ fr = "Graphe de convergence",
+ ang = "Convergence graph",
+ ),
+
+ ), # Fin FACT Result
+
+
+
+ ), # Fin BLOC SimulationSettings
+
+
+
+ AnalyticalSettings = BLOC ( condition = " Method in ( 'Analytical', ) ",
+
+ Approximation = SIMP ( statut = "o",
+ typ = "TXM",
+ defaut = "FirstOrder",
+ into = ( "FirstOrder", "SecondOrder" ),
+ max = 1,
+ fr = "Approximation",
+ ang = "Approximation",
+ ),
+
+ OptimizationAlgorithm = SIMP ( statut = "o",
+ typ = "TXM",
+ defaut = "Cobyla",
+ into = ( "Cobyla", "AbdoRackwitz" ),
+ max = 1,
+ fr = "Methode d'optimisation",
+ ang = "Optimisation method",
+ ),
+
+
+ PhysicalStartingPoint = SIMP ( statut = "f",
+ typ = "R",
+ max = "**",
+ fr = "Point de demarrage de l'algorithme iteratif",
+ ang = "Initial point for iterative process",
+ ),
+
+ MaximumIterationsNumber = SIMP ( statut = "f",
+ typ = "I",
+ max = 1,
+ val_min = 1,
+ fr = "Nombre maximum d iterations",
+ ang = "Maximum number of iterations",
+ ),
+
+
+ MaximumAbsoluteError = SIMP ( statut = "f",
+ typ = "R",
+ max = 1,
+ defaut = 1E-4,
+ val_min = 0.0,
+ fr = "Distance maximum absolue entre 2 iterations successifs",
+ ang = "Absolute maximum distance between 2 successive iterates",
+ ),
+
+ MaximumRelativeError = SIMP ( statut = "f",
+ typ = "R",
+ max = 1,
+ defaut = 1E-4,
+ val_min = 0.0,
+ fr = "Distance maximum relative entre 2 iterations successives",
+ ang = "Relative maximum distance between 2 successive iterates",
+ ),
+
+ MaximumConstraintError = SIMP ( statut = "f",
+ typ = "R",
+ max = 1,
+ defaut = 1E-4,
+ val_min = 0.0,
+ fr = "Valeur maximum absolue de la fonction moins la valeur du niveau",
+ ang = "Maximum absolute value of the constraint function minus the level value",
+ ),
+
+ ImportanceSampling = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'no',
+ max = 1,
+ fr = "Tirage d'importance au point de conception",
+ ang = "Importance sampling at design point",
+ ),
+
+ FirstOrder = BLOC ( condition = " Approximation in ( 'FirstOrder', ) ",
+
+ Probability = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', ),
+ defaut = 'yes',
+ max = 1,
+ fr = "Probabiblite",
+ ang = "Probability",
+ ),
+
+ DesignPoint = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'yes',
+ max = 1,
+ fr = "Point de conception",
+ ang = "Design point",
+ ),
+
+ HasoferReliabilityIndex = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'yes',
+ max = 1,
+ fr = "Indice de fiabilite",
+ ang = "Reliability index",
+ ),
+
+ ImportanceFactor = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'no',
+ max = 1,
+ fr = "Facteur d'importance pour variable de sortie scalaire",
+ ang = "ImportanceFactor",
+ ),
+
+ ImportanceFactorSettings = BLOC ( condition = " ImportanceFactor in ( 'yes', ) ",
+
+ ImportanceFactorNumericalResults = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'yes',
+ max = 1,
+ fr = "Resultats numeriques",
+ ang = "NumericalResults",
+ ),
+
+ ImportanceFactorGraphicalResults = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'no',
+ max = 1,
+ fr = "Resultats graphiques",
+ ang = "GraphicalResults",
+ ),
+
+ ), # Fin BLOC ImportanceFactorSettings
+
+
+ SensitivityAnalysis = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'no',
+ max = 1,
+ fr = "Analyse de sensibilite",
+ ang = "Sensitivity analysis",
+ ),
+
+ SensitivityAnalysisSettings = BLOC ( condition = " SensitivityAnalysis in ( 'yes', ) ",
+
+ FORMEventProbabilitySensitivity = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'no',
+ max = 1,
+ fr = "Indice de fiabilite de Hasofer",
+ ang = "Hasofer reliability index",
+ ),
+
+ FORMEventProbabilitySensitivitySettings = BLOC ( condition = " FORMEventProbabilitySensitivity in ( 'yes', ) ",
+
+ FORMEventProbabilitySensitivityNumericalResults = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'yes',
+ max = 1,
+ fr = "Resultats numeriques",
+ ang = "NumericalResults",
+ ),
+
+ FORMEventProbabilitySensitivityGraphicalResults = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'no',
+ max = 1,
+ fr = "Resultats graphiques",
+ ang = "GraphicalResults",
+ ),
+
+ ), # Fin BLOC FORMEventProbabilitySensitivitySettings
+
+ HasoferReliabilityIndexSensitivity = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'no',
+ max = 1,
+ fr = "Indice de fiabilite de Hasofer",
+ ang = "Hasofer reliability index",
+ ),
+
+ HasoferReliabilityIndexSensitivitySettings = BLOC ( condition = " HasoferReliabilityIndexSensitivity in ( 'yes', ) ",
+
+ HasoferReliabilityIndexSensitivityNumericalResults = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'yes',
+ max = 1,
+ fr = "Resultats numeriques",
+ ang = "NumericalResults",
+ ),
+
+ HasoferReliabilityIndexSensitivityGraphicalResults = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'no',
+ max = 1,
+ fr = "Resultats graphiques",
+ ang = "GraphicalResults",
+ ),
+
+ ), # Fin BLOC HasoferReliabilityIndexSettings
+
+ ), # Fin BLOC SensitivityAnalysisSettings
+
+ FunctionCallsNumber = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'no',
+ max = 1,
+ fr = "Nombre d'appels a la fonction",
+ ang = "Function calls number",
+ ),
+
+
+ ), # Fin BLOC FirstOrder
+
+
+ SecondOrder = BLOC ( condition = " Approximation in ( 'SecondOrder', ) ",
+
+
+ TvedtApproximation = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'no',
+ max = 1,
+ fr = "Approximation de Tvedt",
+ ang = "Tvedt approximation",
+ ),
+
+ HohenBichlerApproximation = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'no',
+ max = 1,
+ fr = "Approximation de HohenBichler",
+ ang = "HohenBichler approximation",
+ ),
+
+ BreitungApproximation = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'no',
+ max = 1,
+ fr = "Approximation de Breitung",
+ ang = "Breitung approximation",
+ ),
+
+ DesignPoint = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'yes',
+ max = 1,
+ fr = "Point de conception",
+ ang = "Design point",
+ ),
+
+ ImportanceFactor = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'no',
+ max = 1,
+ fr = "Facteur d'importance pour variable de sortie scalaire",
+ ang = "ImportanceFactor",
+ ),
+
+ ImportanceFactorSettings = BLOC ( condition = " ImportanceFactor in ( 'yes', ) ",
+
+ ImportanceFactorNumericalResults = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'yes',
+ max = 1,
+ fr = "Resultats numeriques",
+ ang = "NumericalResults",
+ ),
+
+ ImportanceFactorGraphicalResults = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'no',
+ max = 1,
+ fr = "Resultats graphiques",
+ ang = "GraphicalResults",
+ ),
+
+ ), # Fin BLOC ImportanceFactorSettings
+
+ SensitivityAnalysis = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'no',
+ max = 1,
+ fr = "Analyse de sensibilite",
+ ang = "Sensitivity analysis",
+ ),
+
+ SensitivityAnalysisSettings = BLOC ( condition = " SensitivityAnalysis in ( 'yes', ) ",
+
+ HasoferReliabilityIndexSensitivity = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'no',
+ max = 1,
+ fr = "Indice de fiabilite de Hasofer",
+ ang = "Hasofer reliability index",
+ ),
+
+ HasoferReliabilityIndexSensitivitySettings = BLOC ( condition = " HasoferReliabilityIndexSensitivity in ( 'yes', ) ",
+
+ HasoferReliabilityIndexSensitivityNumericalResults = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'yes',
+ max = 1,
+ fr = "Resultats numeriques",
+ ang = "NumericalResults",
+ ),
+
+ HasoferReliabilityIndexSensitivityGraphicalResults = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'no',
+ max = 1,
+ fr = "Resultats graphiques",
+ ang = "GraphicalResults",
+ ),
+
+ ), # Fin BLOC HasoferReliabilityIndexSettings
+
+ ), # Fin BLOC SensitivityAnalysisSettings
+
+ FunctionCallsNumber = SIMP ( statut = "o",
+ typ = 'TXM',
+ into = ( 'yes', 'no' ),
+ defaut = 'no',
+ max = 1,
+ fr = "Nombre d'appels a la fonction",
+ ang = "Function calls number",
+ ),
+
+
+ ), # Fin BLOC SecondOrder
+
+
+
+ ), # Fin BLOC AnalyticalSettings
+
+
+
+ ), # Fin BLOC ThresholdExceedence
+
+
+
+) # Fin PROC CRITERIA
+
+
+
+
+
+
+
--- /dev/null
+# Choix des catalogues
+import os
+#rep_cata=os.path.dirname(os.path.abspath(__file__))
+rep_cata=os.getcwd()
+
+catalogues = (
+# (code,version,catalogue,formatIn,formatOut)
+ #('OPENTURNS_WRAPPER','V1',os.path.join(rep_cata,'OpenTURNS_Cata_Wrapper_V1.py'),'openturns_wrapper','wrapper'),
+ ('OPENTURNS_STUDY','V3',os.path.join(rep_cata,'OpenTURNS_Cata_Study_V3.py'),'openturns_study','wrapper'),
+ #('OPENTURNS','Wrapper',os.path.join(rep_cata,'OpenTURNS_Cata_Wrapper_V1.py'),'openturns'),
+)
+
--- /dev/null
+# -*- coding: utf-8 -*-
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+#
+#
+# ======================================================================
+"""
+ Ce module sert pour charger les paramètres de configuration d'EFICAS
+"""
+# Modules Python
+print "passage dans la surcharge de configuration pour OTW"
+import os, sys, string, types, re
+import traceback
+from PyQt4.QtGui import *
+
+# Modules Eficas
+from Editeur import utils
+
+class CONFIG:
+
+ #-----------------------------------
+ def __init__(self,appli,repIni):
+ #-----------------------------------
+
+ # Classe de base permettant de lire, afficher
+ # et sauvegarder les fichiers utilisateurs
+ # On a deux directories : la directory generale (Repertoire d instal + Nom du code
+ # Par exemple : ~/Install_Eficas/EficasV1_14/Openturns_Wrapper
+ # et la directorie de l utilisateur
+ # HOME/.Eficas_Openturns
+ # Le fichier prefs.py va etre lu dans la directory generale puis surcharge eventuellement
+ # par celui de l utilisateur
+ # le fichier de catalogue va etre lu dans la directory de l utilisateur s il exite
+ # dans le fichier general sinon
+ self.appli = appli
+ self.code = appli.code
+ self.salome = appli.salome
+ self.repIni = repIni
+ self.fic_prefs ="prefs.py"
+
+ if self.appli:
+ self.parent=appli.top
+ #self.appli.format_fichier="openturns_study"
+ else: self.parent=None
+
+
+ self.labels=("OpenTURNS_path","rep_user","INSTALLDIR","path_doc","exec_acrobat","rep_cata","initialdir","savedir")
+
+ # Valeurs par defaut
+ self.rep_user = os.path.join(os.environ['HOME'],'.Eficas_Openturns')
+ self.initialdir = self.rep_user
+ self.path_doc = self.rep_user
+ self.savedir = self.rep_user
+ self.exec_acrobat = self.rep_user
+
+ #Lecture des fichiers utilisateurs
+ self.lecture_fichier_ini_standard()
+ self.lecture_fichier_ini_utilisateur()
+ self.lecture_catalogues()
+ print self.initialdir
+
+ #--------------------------------------
+ def lecture_fichier_ini_standard(self):
+ #--------------------------------------
+ # Verifie l'existence du fichier "standard"
+ # appelle la lecture de ce fichier
+ self.fic_ini = os.path.join(self.repIni,self.fic_prefs)
+ if not os.path.isfile(self.fic_ini):
+ QMessageBox.critical( None, "Import du fichier de Configuration",
+ "Erreur à la lecture du fichier de configuration "+self.fic_ini+".py" )
+ sys.exit(0)
+ import prefs
+ for k in self.labels :
+ try :
+ valeur=getattr(prefs,k)
+ setattr(self,k,valeur)
+ except :
+ pass
+
+
+ #--------------------------------------
+ def lecture_fichier_ini_utilisateur(self):
+ #--------------------------------------
+ # Surcharge les paramètres standards par les paramètres utilisateur s'ils existent
+ self.fic_ini_utilisateur = os.path.join(self.rep_user,self.fic_prefs)
+ #if not os.path.isfile(self.fic_ini_utilisateur+".py"):
+ if not os.path.isfile(self.fic_ini_utilisateur):
+ return
+ from utils import read_file
+ txt = utils.read_file(self.fic_ini_utilisateur)
+ from styles import style
+ d=locals()
+ try:
+ exec txt in d
+ except :
+ l=traceback.format_exception(sys.exc_info()[0],sys.exc_info()[1],sys.exc_info()[2])
+ QMessageBox.critical( None, "Import du fichier de Configuration",
+ "Erreur à la lecture du fichier de configuration " + self.fic_ini_utilisateur )
+ sys.exit(0)
+ for k in self.labels :
+ try :
+ setattr(self,k,d[k])
+ except :
+ pass
+
+
+
+ #--------------------------------------
+ def lecture_catalogues(self):
+ #--------------------------------------
+ rep_mat=" " # Compatbilite Aster
+ fic_cata ="catalogues_openturns.ini"
+ fic_ini = os.path.join(self.repIni,fic_cata)
+ fic_user= os.path.join(self.rep_user,fic_cata)
+ if os.path.isfile(fic_user):
+ fichier = fic_user
+ else :
+ fichier = fic_ini
+ if not os.path.isfile(fic_ini) :
+ QMessageBox.critical( None, "Erreur a l'import du fichier des Catalogues",
+ "Le fichier de configuration des catalogues "+fic_ini+" n a pas été trouvé" )
+ sys.exit(0)
+
+ from utils import read_file
+ txt = utils.read_file(fichier)
+ d=locals()
+ try:
+ exec txt in d
+ self.catalogues=d["catalogues"]
+ except :
+ l=traceback.format_exception(sys.exc_info()[0],sys.exc_info()[1],sys.exc_info()[2])
+ QMessageBox.critical( None, "Import du fichier de Configuration",
+ "Erreur à la lecture du fichier de configuration " + fichier )
+ sys.exit(0)
+
+
+
+ #--------------------------------------
+ def save_params(self):
+ #--------------------------------------
+ # sauvegarde
+ # les nouveaux paramètres dans le fichier de configuration utilisateur
+ #
+ print "a ecrire PNPNPN"
+# l_param=('exec_acrobat', 'repIni','catalogues','rep_travail','rep_mat','path_doc')
+# texte=""
+# for clef in l_param :
+# if hasattr(self,clef):
+# valeur=getattr(self,clef)
+# texte= texte + clef+" = " + repr(valeur) +"\n"
+#
+#
+# # recuperation des repertoires materiaux
+# try :
+# for item in self.catalogues :
+# try :
+# (code,version,cata,format,defaut)=item
+# except :
+# (code,version,cata,format)=item
+# codeSansPoint=re.sub("\.","",version)
+# chaine="rep_mat_"+codeSansPoint
+# if hasattr(self,chaine):
+# valeur=getattr(self,chaine)
+# texte= texte + chaine+" = '" + str(valeur) +"'\n"
+# except :
+# pass
+#
+# f=open(self.fic_ini_utilisateur,'w+')
+# f.write(texte)
+# f.close()
+#
+
+
+def make_config(appli,rep):
+ return CONFIG(appli,rep)
+
+def make_config_style(appli,rep):
+ return None
+
+
--- /dev/null
+# -*- coding: iso-8859-1 -*-
+
+def INCLUDE(self,FileName,**args):
+ """
+ Fonction sd_prod pour la macro INCLUDE
+ """
+ if hasattr(self,'change_fichier'):
+ delattr(self,'change_fichier')
+ delattr(self,'fichier_ini')
+
+ self.make_include2(fichier=FileName)
+
+def INCLUDE_context(self,d):
+ """
+ Fonction op_init pour macro INCLUDE
+ """
+ for k,v in self.g_context.items():
+ print "IDM: ops.py k=%s v=%s" % (k,v)
+ d[k]=v
+
+
--- /dev/null
+# -*- coding: utf-8 -*-
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+#
+#
+# ======================================================================
+
+import os, sys
+# Les variables pouvant positionnees sont :
+# "CODE_PATH_SURCHARGE","DTDDirectory","rep_user","INSTALLDIR","path_doc","exec_acrobat","rep_cata"
+print "import des prefs de OPENTURNS_STUDY"
+
+code = "OPENTURNS_STUDY"
+
+# REPINI sert à localiser le fichier
+# initialdir sert comme directory initial des QFileDialog
+# positionnee a repin au debut mise a jour dans configuration
+REPINI=os.path.dirname(os.path.abspath(__file__))
+initialdir=REPINI
+
+# INSTALLDIR sert à localiser l'installation d'Eficas
+INSTALLDIR=os.path.join(REPINI,'..')
+
+
+# Codage des strings qui accepte les accents (en remplacement de 'ascii')
+# lang indique la langue utilisée pour les chaines d'aide : fr ou ang
+lang='fr'
+encoding='iso-8859-1'
+
+# Acces a la documentation
+rep_cata = INSTALLDIR
+path_doc = os.path.join(rep_cata,'Doc')
+exec_acrobat = "/usr/bin/xpdf"
+
+# Repertoire initial
+DTDDirectory="/local00/home/dutka/OpenTURNS/dutka/devel/build/install/share/openturns/wrappers/"
+
+# Choix des catalogues
+sys.path[:0]=[INSTALLDIR]
+
--- /dev/null
+# -*- coding: utf-8 -*-
+#@ MODIF properties Accas DATE 10/10/2002 AUTEUR gcbhhhh M.ADMINISTRATEUR
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# RESPONSABLE D6BHHHH J-P.LEFEBVRE
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# ======================================================================
+# IDENTIFICATION DU GESTIONNAIRE DE COMMANDE ACCAS A PARTIR
+# DE LA VERSION DU CODE_ASTER ASSOCIE
+#----------------------------------------------------------------------
+version = "7.1.0"
+date = "23/04/2003"
--- /dev/null
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+#
+#
+# ======================================================================
+
+"""
+ Ce module sert à lancer EFICAS configuré pour Openturns
+"""
+# Modules Python
+
+# Modules Eficas
+import prefs
+prefs.code="OPENTURNS_STUDY"
+from InterfaceQT4 import eficas_go
+
+eficas_go.lance_eficas(code=prefs.code)
--- /dev/null
+# -*- coding: utf-8 -*-
+"""
+ Ce module sert à construire les distributions d'EFICAS pour Openturns
+ en fonction du tag CVS courant
+ Les distributions sont :
+ - un tar.gz pour UNIX ne contenant pas mxTextTools
+ L'utilisation de ce module est la suivante :
+ 1- Se mettre dans un répertoire de travail
+ 2- Configurer son environnement pour utiliser le référentiel CVS EFICAS
+ 3- Exporter les sources d'EficasV1 par la commande :
+ cvs export -r TAG -d Eficas_export EficasV1
+ ou TAG est le tag CVS de la version que l'on veut distribuer (par exemple V1_1p1)
+ 5- Aller dans le répertoire Eficas_export
+ 6- Executer le script sdist.py
+ python sdist.py
+ Ce qui a pour effet de creer un repertoire dist contenant la distribution
+ et de la copier dans le répertoire indiqué par dir_download s'il est accessible
+
+"""
+import os,shutil,glob,sys
+import types
+
+nom_distrib="QTEficasOpenturns_V1_0"
+path_distrib=os.path.join("dist",nom_distrib)
+path_TextTools="/home/eficas/pkg/mxTools/egenix2.0.2pourWindows/mx/TextTools"
+dir_download= "/home/eficas/WWW/telechargement/eficas"
+
+def main():
+ if os.path.isdir('dist'):shutil.rmtree('dist')
+
+ copyfiles('.',path_distrib,['LICENSE.TERMS','INSTALL','NEWS'])
+
+ copyfiles('../Editeur',os.path.join(path_distrib,'Editeur'),['*.py','faqs.txt'])
+ copyfiles('../InterfaceTK',os.path.join(path_distrib,'InterfaceTK'),['*.py','faqs.txt'])
+ copyfiles('../InterfaceQT',os.path.join(path_distrib,'InterfaceQT'),['*.py','faqs.txt'])
+ copyfiles('../Ui',os.path.join(path_distrib,'Ui'),['*.ui','makefile'])
+ copyfiles('../Openturns',os.path.join(path_distrib,'Openturns'),['*.py','*.ini'])
+ copyfiles('../Ihm',os.path.join(path_distrib,'Ihm'),['*.py'])
+ copyfiles('../Extensions',os.path.join(path_distrib,'Extensions'),['*.py'])
+ copyfiles('../Misc',os.path.join(path_distrib,'Misc'),['*.py'])
+ copyfiles('../Accas',os.path.join(path_distrib,'Accas'),['*.py'])
+ copyfiles('../Accas',os.path.join(path_distrib,'Noyau'),['*.py'])
+ copyfiles('../Accas',os.path.join(path_distrib,'Validation'),['*.py'])
+ # AIDE
+ copyfiles('../AIDE',os.path.join(path_distrib,'AIDE'),['*.py'])
+ copyfiles('../AIDE/fichiers',os.path.join(path_distrib,'AIDE','fichiers'),['*'])
+ copyfiles('.',os.path.join(path_distrib,'AIDE','fichiers'),['INSTALL','NEWS'])
+ copyfiles('../Editeur',os.path.join(path_distrib,'AIDE','fichiers'),['faqs.txt'])
+ # ______________________
+
+ copyfiles('../convert',os.path.join(path_distrib,'convert'),['*.py'])
+ copyfiles('../convert/Parserv5',os.path.join(path_distrib,'convert','Parserv5'),['*.py'])
+ copyfiles('../generator',os.path.join(path_distrib,'generator'),['*.py'])
+ copyfiles('../Editeur/icons',os.path.join(path_distrib,'Editeur','icons'),['*.gif'])
+ copyfiles('../Editeur/icons',os.path.join(path_distrib,'Editeur','icons'),['*.png'])
+ copyfiles('../Editeur/Patrons/',os.path.join(path_distrib,'Editeur','Patrons'),['*.com*'])
+ copyfiles('../Editeur/Patrons/OPENTURNS',os.path.join(path_distrib,'Editeur','Patrons','OPENTURNS'),['*.com*'])
+
+ copyfiles('../Noyau',os.path.join(path_distrib,'Noyau'),['*.py'])
+ copyfiles('../Validation',os.path.join(path_distrib,'Validation'),['*.py'])
+
+
+ tarball= maketarball('dist',nom_distrib,nom_distrib)
+ try:
+ shutil.copy(tarball,dir_download)
+ except:
+ print "Repertoire de download inconnu : ",dir_download
+
+
+
+def make_dir(dir_cible):
+ if type(dir_cible) is not types.StringType:
+ raise "make_dir : dir_cible doit etre une string (%s)" % `dir_cible`
+ head,tail=os.path.split(dir_cible)
+ tails=[tail]
+ while head and tail and not os.path.isdir(head):
+ head,tail=os.path.split(head)
+ tails.insert(0, tail)
+
+ for d in tails:
+ head = os.path.join(head, d)
+ if not os.path.isdir(head):os.mkdir(head)
+
+
+def copyfiles(dir_origin,dir_cible,listfiles):
+ if not os.path.isdir(dir_cible):make_dir(dir_cible)
+ for glob_files in listfiles:
+ for file in glob.glob(os.path.join(dir_origin,glob_files)):
+ shutil.copy(file,dir_cible)
+
+
+def maketarball(dir_trav,dir_cible,nom_tar):
+ prev=os.getcwd()
+ print prev
+ os.chdir(dir_trav)
+ os.system("tar -cf "+nom_tar+".tar "+dir_cible)
+ os.system("gzip -f9 "+nom_tar+".tar ")
+ os.chdir(prev)
+ return os.path.join(dir_trav,nom_tar+".tar.gz")
+
+
+main()
+
--- /dev/null
+# Necessaire pour compatibilite avec Aster
--- /dev/null
+
+LOG(DebugMessages='no',
+ WrapperMessages='no',
+ UserMessages='no',
+ InfoMessages='yes',
+ WarningMessages='yes',
+ ErrorMessages='yes',);
+
+MODEL(Name='poutre',);
+
+CRITERIA(Type='Min/Max',
+ Method='Experiment Plane',
+ ExperimentPlane='Axial',
+ Levels=(1.0,2.0,5.0,),
+ UnitsPerDimension=(100.0,5.0,0.5,1e-07,),
+ Center=(3000000000.0,300.0,2.5,4e-06,),
+ Result='Min/Max',);
--- /dev/null
+#! /usr/bin/env python
+
+# Chargement du module systeme
+import sys
+sys.path.append( '/local00/home/dutka/OpenTURNS/trunk/build/install/lib/python2.4/site-packages/openturns' )
+
+# Chargement du module Open TURNS
+from openturns import *
+
+# Definit le niveau d'affichage de la log
+flags = Log.NONE
+flags = flags + Log.WARN
+flags = flags + Log.ERROR
+flags = flags - Log.WRAPPER
+flags = flags + Log.INFO
+flags = flags - Log.USER
+flags = flags - Log.DBG
+Log.Show( flags )
+
+# Etude 'Min/Max'
+# Charge le modele physique
+model = NumericalMathFunction( 'poutre' )
+n = model.getInputNumericalPointDimension()
+
+# Etude par plan d'experience
+# Definit les niveaux de la structure de grille
+levels = NumericalPoint( 3 )
+levels[0] = 1
+levels[1] = 2
+levels[2] = 5
+
+# Cree le plan d'experience centre reduit
+myCenteredReductedGrid = Axial(n, levels)
+myExperimentPlane = myCenteredReductedGrid.generate()
+
+# Definit les facteurs d'echelle dans chaque direction
+scaledVector = NumericalPoint( n )
+scaledVector[0] = 100
+scaledVector[1] = 5
+scaledVector[2] = 0.5
+scaledVector[3] = 1e-07
+myExperimentPlane.scale( scaledVector )
+
+# Definit le vecteur de translation
+translationVector = NumericalPoint( n )
+translationVector[0] = 3e+09
+translationVector[1] = 300
+translationVector[2] = 2.5
+translationVector[3] = 4e-06
+myExperimentPlane.translate( translationVector )
+
+
+inputSample = myExperimentPlane
+
+# Calcul
+outputSample = model( inputSample )
+
+# Resultats
+minValue = outputSample.getMin()
+maxValue = outputSample.getMax()
+
+print 'minValue = ', minValue
+print 'maxValue = ', maxValue
+
+
+
+# Terminaison du fichier
+sys.exit( 0 )
--- /dev/null
+
+LOG(DebugMessages='no',
+ WrapperMessages='no',
+ UserMessages='no',
+ InfoMessages='yes',
+ WarningMessages='yes',
+ ErrorMessages='yes',);
+
+MODEL(Name='poutre',);
+
+L_E=DISTRIBUTION(Kind='Normal',
+ Mu=0.1,
+ Sigma=0.1,);
+
+L_F=DISTRIBUTION(Kind='Exponential',
+ Lambda=1.0,
+ Gamma=2.0,);
+
+L_L=DISTRIBUTION(Kind='MultiNomial',
+ N=1,
+ Values=1.0,);
+
+L_I=DISTRIBUTION(Kind='Uniform',
+ A=10.0,
+ B=20.0,);
+
+CRITERIA(Type='Min/Max',
+ Method='Random Sampling',
+ PointsNumber=1000,
+ Result='Min/Max',);
--- /dev/null
+# -*- coding: utf-8 -*-
+
+# --------------------------------------------------
+# debut entete
+# --------------------------------------------------
+
+import Accas
+from Accas import *
+
+
+#CONTEXT.debug = 1
+JdC = JDC_CATA ( code = 'OPENTURNS_WRAPPER',
+ execmodul = None,
+ regles = ( AU_MOINS_UN ( 'WRAPPER' ), ),
+ ) # Fin JDC_CATA
+
+# --------------------------------------------------
+# fin entete
+# --------------------------------------------------
+
+
+#================================
+# 2. Definition des variables
+#================================
+
+VARIABLEPOOL = PROC ( nom = "VARIABLEPOOL",
+ op = None,
+ docu = "",
+ fr = "L'ensemble des variables probabilistes",
+ ang = "The pool of probabilistic variables",
+
+
+ Variables = FACT ( statut = "o",
+ min = 1,
+ max = "**",
+
+
+
+ Name = SIMP ( statut = "o",
+ typ = "TXM",
+ max = 1,
+ fr = "Nom de la variable, identique au nom dans le solver.",
+ ang = "Name of the variable, identical to the name in solver."
+ ),
+
+ Type = SIMP ( statut = "o",
+ typ = "TXM",
+ max = 1,
+ into = ( "in", "out", ),
+ defaut = "in",
+ fr = "variable d'entree ou de sortie du solver",
+ ang = "Input or Output variable",
+ ),
+
+ Unit = SIMP ( statut = "f",
+ typ = "TXM",
+ max = 1,
+ fr = "Unite",
+ ang = "Unit",
+ ),
+
+ Comment = SIMP ( statut = "f",
+ typ = "TXM",
+ max = 1,
+ fr = "Commentaire",
+ ang = "Comment",
+ ),
+
+ Regexp = SIMP ( statut = "f",
+ typ = "TXM",
+ max = 1,
+ fr = "Expression reguliere",
+ ang = "Regular expression",
+ ),
+
+ Format = SIMP ( statut = "f",
+ typ = "TXM",
+ max = 1,
+ fr = "Format d'ecriture",
+ ang = "Format",
+ ),
+
+
+ ), # Fin FACT Variables
+
+) # Fin PROC VARIABLEPOOL
+
+
+#================================
+# Definition des parametres du wrapper
+#================================
+
+# Nota : les variables de type PROC doivent etre en majuscules !
+WRAPPER = PROC ( nom = "WRAPPER",
+ op = None,
+ docu = "",
+ fr = "Mise en donnee pour le fichier de configuration de OPENTURNS.",
+ ang = "Writes the configuration file for OPENTURNS.",
+
+
+ WrapperPath = SIMP ( statut = "o",
+ typ = "TXM",
+ max = 1,
+ fr = "Chemin d acces au wrapper",
+ ang = "Wrapper library path",
+ ),
+
+ FunctionName = SIMP ( statut = "o",
+ typ = "TXM",
+ max = 1,
+ fr = "Nom de la fonction dans le wrapper",
+ ang = "Function's name in wrapper",
+ ),
+
+ GradientName = SIMP ( statut = "f",
+ typ = "TXM",
+ max = 1,
+ fr = "Nom du gradient dans le wrapper",
+ ang = "Gradient's name in wrapper",
+ ),
+
+ HessianName = SIMP ( statut = "f",
+ typ = "TXM",
+ max = 1,
+ fr = "Nom du hessian dans le wrapper",
+ ang = "Hessian's name in wrapper",
+ ),
+
+ WrapCouplingMode = SIMP ( statut = "o",
+ typ = "TXM",
+ max = 1,
+ into = ( "static-link", "dynamic-link", "fork", ),
+ fr = "Mode de couplage du solver",
+ ang = "Solver coupling mode",
+ ),
+
+ Fork = BLOC ( condition = " WrapCouplingMode in ( 'fork', ) ",
+
+ Command = SIMP ( statut = "o",
+ max = 1,
+ typ = "TXM",
+ fr = "Chemin du solver",
+ ang = "solver path",
+ ),
+ ), # Fin BLOC Fork
+
+ State = SIMP ( statut = "f",
+ typ = "TXM",
+ max = 1,
+ into = ( "shared", "specific" ),
+ fr = "Partage de l'etat interne entre les fonctions",
+ ang = "Internal state sharing",
+ ),
+
+ InDataTransfer = SIMP ( statut = "o",
+ typ = "TXM",
+ max = 1,
+ into = ( "files", "arguments", ),
+ fr = "Mode de transfert des donnees d'entree",
+ ang = "Input transfering mode",
+ ),
+
+ OutDataTransfer = SIMP ( statut = "o",
+ typ = "TXM",
+ max = 1,
+ into = ( "files", "arguments", ),
+ fr = "Mode de transfert des donnees de sortie",
+ ang = "Output transfering mode",
+ ),
+
+
+
+
+ Files = FACT ( statut = "f",
+ min = 1,
+ max = "**",
+
+ Id = SIMP ( statut = "o",
+ typ = "TXM",
+ max = 1,
+ fr = "Identificateur du fichier",
+ ang = "File id",
+ ),
+
+ Type = SIMP ( statut = "o",
+ typ = "TXM",
+ max = 1,
+ into = ( "in", "out", ),
+ fr = "Fichier d entree ou de sortie du solveur ?",
+ ang = "Input or Output file ?",
+ ),
+
+ Name = SIMP ( statut = "f",
+ typ = "TXM",
+ max = 1,
+ fr = "Nom du fichier",
+ ang = "File name",
+ ),
+
+ Path = SIMP ( statut = "o",
+ typ = "TXM",
+ max = 1,
+ fr = "Chemin du fichier",
+ ang = "Path file ",
+ ),
+
+ Subst = SIMP ( statut = "f",
+ typ = "TXM",
+ max = "**",
+ fr = "Liste de variables",
+ ang = "List",
+ ),
+
+ ), # Fin FACT Files
+
+) # Fin PROC WRAPPER
--- /dev/null
+# -*- coding: utf-8 -*-
+
+# --------------------------------------------------
+# debut entete
+# --------------------------------------------------
+
+import Accas
+from Accas import *
+
+class variable(ASSD ) : pass
+
+
+#CONTEXT.debug = 1
+JdC = JDC_CATA ( code = 'OPENTURNS_WRAPPER',
+ execmodul = None,
+ regles = ( AU_MOINS_UN ( 'WRAPPER' ), ),
+ ) # Fin JDC_CATA
+
+# --------------------------------------------------
+# fin entete
+# --------------------------------------------------
+
+
+#================================
+# 2. Definition des variables
+#================================
+
+
+
+VARIABLE = OPER ( nom = "VARIABLE",
+ sd_prod = variable,
+ op = None,
+ fr = "Definitions des lois marginales utilisees par les variables d'entree",
+
+
+ Type = SIMP ( statut = "o",
+ typ = "TXM",
+ max = 1,
+ into = ( "in", "out", ),
+ defaut = "in",
+ fr = "variable d'entree ou de sortie du solver",
+ ang = "Input or Output variable",
+ ),
+
+ Unit = SIMP ( statut = "f",
+ typ = "TXM",
+ max = 1,
+ fr = "Unite",
+ ang = "Unit",
+ ),
+
+ Comment = SIMP ( statut = "f",
+ typ = "TXM",
+ max = 1,
+ fr = "Commentaire",
+ ang = "Comment",
+ ),
+
+ Regexp = SIMP ( statut = "f",
+ typ = "TXM",
+ max = 1,
+ fr = "Expression reguliere",
+ ang = "Regular expression",
+ ),
+
+ Format = SIMP ( statut = "f",
+ typ = "TXM",
+ max = 1,
+ fr = "Format d'ecriture",
+ ang = "Format",
+ ),
+
+
+ ) # Fin FACT Variables
+#
+
+
+#================================
+# Definition des parametres du wrapper
+#================================
+
+# Nota : les variables de type PROC doivent etre en majuscules !
+WRAPPER = PROC ( nom = "WRAPPER",
+ op = None,
+ docu = "",
+ fr = "Mise en donnee pour le fichier de configuration de OPENTURNS.",
+ ang = "Writes the configuration file for OPENTURNS.",
+
+
+ WrapperPath = SIMP ( statut = "o",
+ typ = "TXM",
+ max = 1,
+ fr = "Chemin d acces au wrapper",
+ ang = "Wrapper library path",
+ ),
+
+ FunctionName = SIMP ( statut = "o",
+ typ = "TXM",
+ max = 1,
+ fr = "Nom de la fonction dans le wrapper",
+ ang = "Function's name in wrapper",
+ ),
+
+ GradientName = SIMP ( statut = "f",
+ typ = "TXM",
+ max = 1,
+ fr = "Nom du gradient dans le wrapper",
+ ang = "Gradient's name in wrapper",
+ ),
+
+ HessianName = SIMP ( statut = "f",
+ typ = "TXM",
+ max = 1,
+ fr = "Nom du hessian dans le wrapper",
+ ang = "Hessian's name in wrapper",
+ ),
+
+ WrapCouplingMode = SIMP ( statut = "o",
+ typ = "TXM",
+ max = 1,
+ into = ( "static-link", "dynamic-link", "fork", ),
+ defaut = "fork",
+ fr = "Mode de couplage du solver",
+ ang = "Solver coupling mode",
+ ),
+
+ Fork = BLOC ( condition = " WrapCouplingMode in ( 'fork', ) ",
+
+ Command = SIMP ( statut = "o",
+ max = 1,
+ typ = "TXM",
+ fr = "Chemin du solver",
+ ang = "solver path",
+ ),
+ ), # Fin BLOC Fork
+
+ State = SIMP ( statut = "f",
+ typ = "TXM",
+ max = 1,
+ into = ( "shared", "specific" ),
+ fr = "Partage de l'etat interne entre les fonctions",
+ ang = "Internal state sharing",
+ ),
+
+ InDataTransfer = SIMP ( statut = "o",
+ typ = "TXM",
+ max = 1,
+ into = ( "files", "arguments", ),
+ fr = "Mode de transfert des donnees d'entree",
+ ang = "Input transfering mode",
+ ),
+
+ OutDataTransfer = SIMP ( statut = "o",
+ typ = "TXM",
+ max = 1,
+ into = ( "files", "arguments", ),
+ fr = "Mode de transfert des donnees de sortie",
+ ang = "Output transfering mode",
+ ),
+
+
+
+
+ Files = FACT ( statut = "f",
+ min = 1,
+ max = "**",
+
+ Id = SIMP ( statut = "o",
+ typ = "TXM",
+ max = 1,
+ fr = "Identificateur du fichier",
+ ang = "File id",
+ ),
+
+ Type = SIMP ( statut = "o",
+ typ = "TXM",
+ max = 1,
+ into = ( "in", "out", ),
+ fr = "Fichier d entree ou de sortie du solveur ?",
+ ang = "Input or Output file ?",
+ ),
+
+ Name = SIMP ( statut = "f",
+ typ = "TXM",
+ max = 1,
+ fr = "Nom du fichier",
+ ang = "File name",
+ ),
+
+ Path = SIMP ( statut = "o",
+ typ = "TXM",
+ max = 1,
+ fr = "Chemin du fichier",
+ ang = "Path file ",
+ ),
+
+ Subst = SIMP ( statut = "f",
+ typ = "TXM",
+ max = "**",
+ fr = "Liste de variables",
+ ang = "List",
+ ),
+
+ ), # Fin FACT Files
+
+) # Fin PROC WRAPPER
--- /dev/null
+# Choix des catalogues
+import os
+#rep_cata=os.path.dirname(os.path.abspath(__file__))
+rep_cata=os.getcwd()
+
+catalogues = (
+# (code,version,catalogue,formatIn,formatOut)
+ #('OPENTURNS_WRAPPER','V1',os.path.join(rep_cata,'OpenTURNS_Cata_Wrapper_V1.py'),'openturns_wrapper','wrapper'),
+ ('OPENTURNS_WRAPPER','V2',os.path.join(rep_cata,'OpenTURNS_Cata_Wrapper_V2.py'),'openturns_wrapper','wrapper'),
+ #('OPENTURNS','Wrapper',os.path.join(rep_cata,'OpenTURNS_Cata_Wrapper_V1.py'),'openturns'),
+)
+
--- /dev/null
+# -*- coding: utf-8 -*-
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+#
+#
+# ======================================================================
+"""
+ Ce module sert pour charger les paramètres de configuration d'EFICAS
+"""
+# Modules Python
+print "passage dans la surcharge de configuration pour OTW"
+import os, sys, string, types, re
+import traceback
+from PyQt4.QtGui import *
+
+# Modules Eficas
+from Editeur import utils
+
+class CONFIG:
+
+ #-----------------------------------
+ def __init__(self,appli,repIni):
+ #-----------------------------------
+
+ # Classe de base permettant de lire, afficher
+ # et sauvegarder les fichiers utilisateurs
+ # On a deux directories : la directory generale (Repertoire d instal + Nom du code
+ # Par exemple : ~/Install_Eficas/EficasV1_14/Openturns_Wrapper
+ # et la directorie de l utilisateur
+ # HOME/.Eficas_Openturns
+ # Le fichier prefs.py va etre lu dans la directory generale puis surcharge eventuellement
+ # par celui de l utilisateur
+ # le fichier de catalogue va etre lu dans la directory de l utilisateur s il exite
+ # dans le fichier general sinon
+ self.appli = appli
+ self.code = appli.code
+ self.salome = appli.salome
+ self.repIni = repIni
+ self.fic_prefs ="prefs.py"
+
+ if self.appli:
+ self.parent=appli.top
+ else: self.parent=None
+
+
+ self.labels=("OpenTURNS_path","rep_user","INSTALLDIR","path_doc","exec_acrobat","rep_cata","initialdir","savedir")
+
+ # Valeurs par defaut
+ self.rep_user = os.path.join(os.environ['HOME'],'.Eficas_Openturns')
+ self.initialdir = self.rep_user
+ self.path_doc = self.rep_user
+ self.savedir = self.rep_user
+ self.exec_acrobat = self.rep_user
+
+ #Lecture des fichiers utilisateurs
+ self.lecture_fichier_ini_standard()
+ self.lecture_fichier_ini_utilisateur()
+ self.lecture_catalogues()
+ print self.initialdir
+
+ #--------------------------------------
+ def lecture_fichier_ini_standard(self):
+ #--------------------------------------
+ # Verifie l'existence du fichier "standard"
+ # appelle la lecture de ce fichier
+ self.fic_ini = os.path.join(self.repIni,self.fic_prefs)
+ if not os.path.isfile(self.fic_ini):
+ QMessageBox.critical( None, "Import du fichier de Configuration",
+ "Erreur à la lecture du fichier de configuration "+self.fic_ini+".py" )
+ sys.exit(0)
+ import prefs
+ for k in self.labels :
+ try :
+ valeur=getattr(prefs,k)
+ setattr(self,k,valeur)
+ except :
+ pass
+
+
+ #--------------------------------------
+ def lecture_fichier_ini_utilisateur(self):
+ #--------------------------------------
+ # Surcharge les paramètres standards par les paramètres utilisateur s'ils existent
+ self.fic_ini_utilisateur = os.path.join(self.rep_user,self.fic_prefs)
+ #if not os.path.isfile(self.fic_ini_utilisateur+".py"):
+ if not os.path.isfile(self.fic_ini_utilisateur):
+ return
+ from utils import read_file
+ txt = utils.read_file(self.fic_ini_utilisateur)
+ from styles import style
+ d=locals()
+ try:
+ exec txt in d
+ except :
+ l=traceback.format_exception(sys.exc_info()[0],sys.exc_info()[1],sys.exc_info()[2])
+ QMessageBox.critical( None, "Import du fichier de Configuration",
+ "Erreur à la lecture du fichier de configuration " + self.fic_ini_utilisateur )
+ sys.exit(0)
+ for k in self.labels :
+ try :
+ setattr(self,k,d[k])
+ except :
+ pass
+
+
+
+ #--------------------------------------
+ def lecture_catalogues(self):
+ #--------------------------------------
+ rep_mat=" " # Compatbilite Aster
+ fic_cata ="catalogues_openturns.ini"
+ fic_ini = os.path.join(self.repIni,fic_cata)
+ fic_user= os.path.join(self.rep_user,fic_cata)
+ if os.path.isfile(fic_user):
+ fichier = fic_user
+ else :
+ fichier = fic_ini
+ if not os.path.isfile(fic_ini) :
+ QMessageBox.critical( None, "Erreur a l'import du fichier des Catalogues",
+ "Le fichier de configuration des catalogues "+fic_ini+" n a pas été trouvé" )
+ sys.exit(0)
+
+ from utils import read_file
+ txt = utils.read_file(fichier)
+ d=locals()
+ try:
+ exec txt in d
+ self.catalogues=d["catalogues"]
+ except :
+ l=traceback.format_exception(sys.exc_info()[0],sys.exc_info()[1],sys.exc_info()[2])
+ QMessageBox.critical( None, "Import du fichier de Configuration",
+ "Erreur à la lecture du fichier de configuration " + fichier )
+ sys.exit(0)
+
+
+
+ #--------------------------------------
+ def save_params(self):
+ #--------------------------------------
+ # sauvegarde
+ # les nouveaux paramètres dans le fichier de configuration utilisateur
+ #
+ print "a ecrire PNPNPN"
+# l_param=('exec_acrobat', 'repIni','catalogues','rep_travail','rep_mat','path_doc')
+# texte=""
+# for clef in l_param :
+# if hasattr(self,clef):
+# valeur=getattr(self,clef)
+# texte= texte + clef+" = " + repr(valeur) +"\n"
+#
+#
+# # recuperation des repertoires materiaux
+# try :
+# for item in self.catalogues :
+# try :
+# (code,version,cata,format,defaut)=item
+# except :
+# (code,version,cata,format)=item
+# codeSansPoint=re.sub("\.","",version)
+# chaine="rep_mat_"+codeSansPoint
+# if hasattr(self,chaine):
+# valeur=getattr(self,chaine)
+# texte= texte + chaine+" = '" + str(valeur) +"'\n"
+# except :
+# pass
+#
+# f=open(self.fic_ini_utilisateur,'w+')
+# f.write(texte)
+# f.close()
+#
+
+
+def make_config(appli,rep):
+ return CONFIG(appli,rep)
+
+def make_config_style(appli,rep):
+ return None
+
+
--- /dev/null
+# -*- coding: utf-8 -*-
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+#
+#
+# ======================================================================
+
+import os, sys
+# Les variables pouvant positionnees sont :
+# "CODE_PATH_SURCHARGE","OpenTURNS_path","rep_user","INSTALLDIR","path_doc","exec_acrobat","rep_cata"
+print "import des prefs de OPENTURNS_WRAPPER"
+
+code = "OPENTURNS_WRAPPER"
+
+# REPINI sert à localiser le fichier
+# initialdir sert comme directory initial des QFileDialog
+# positionnee a repin au debut mise a jour dans configuration
+REPINI=os.path.dirname(os.path.abspath(__file__))
+initialdir=REPINI
+
+# INSTALLDIR sert à localiser l'installation d'Eficas
+INSTALLDIR=os.path.join(REPINI,'..')
+
+
+# Codage des strings qui accepte les accents (en remplacement de 'ascii')
+# lang indique la langue utilisée pour les chaines d'aide : fr ou ang
+lang='fr'
+encoding='iso-8859-1'
+
+# Acces a la documentation
+rep_cata = INSTALLDIR
+path_doc = os.path.join(rep_cata,'Doc')
+exec_acrobat = "/usr/bin/xpdf"
+
+# OpenTURNS Python module
+OpenTURNS_path="/opt/OpenTURNS/install/lib/python2.4/site-packages"
+
+# Choix des catalogues
+sys.path[:0]=[INSTALLDIR]
+sys.path.append( OpenTURNS_path )
+
+
--- /dev/null
+# -*- coding: utf-8 -*-
+#@ MODIF properties Accas DATE 10/10/2002 AUTEUR gcbhhhh M.ADMINISTRATEUR
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# RESPONSABLE D6BHHHH J-P.LEFEBVRE
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# ======================================================================
+# IDENTIFICATION DU GESTIONNAIRE DE COMMANDE ACCAS A PARTIR
+# DE LA VERSION DU CODE_ASTER ASSOCIE
+#----------------------------------------------------------------------
+version = "7.1.0"
+date = "23/04/2003"
--- /dev/null
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+#
+#
+# ======================================================================
+
+"""
+ Ce module sert à lancer EFICAS configuré pour Openturns
+"""
+# Modules Python
+
+# Modules Eficas
+import prefs
+prefs.code="OPENTURNS_WRAPPER"
+from InterfaceQT4 import eficas_go
+
+eficas_go.lance_eficas(code=prefs.code)
--- /dev/null
+# -*- coding: utf-8 -*-
+"""
+ Ce module sert à construire les distributions d'EFICAS pour Openturns
+ en fonction du tag CVS courant
+ Les distributions sont :
+ - un tar.gz pour UNIX ne contenant pas mxTextTools
+ L'utilisation de ce module est la suivante :
+ 1- Se mettre dans un répertoire de travail
+ 2- Configurer son environnement pour utiliser le référentiel CVS EFICAS
+ 3- Exporter les sources d'EficasV1 par la commande :
+ cvs export -r TAG -d Eficas_export EficasV1
+ ou TAG est le tag CVS de la version que l'on veut distribuer (par exemple V1_1p1)
+ 5- Aller dans le répertoire Eficas_export
+ 6- Executer le script sdist.py
+ python sdist.py
+ Ce qui a pour effet de creer un repertoire dist contenant la distribution
+ et de la copier dans le répertoire indiqué par dir_download s'il est accessible
+
+"""
+import os,shutil,glob,sys
+import types
+
+nom_distrib="QTEficasOpenturns_V1_0"
+path_distrib=os.path.join("dist",nom_distrib)
+path_TextTools="/home/eficas/pkg/mxTools/egenix2.0.2pourWindows/mx/TextTools"
+dir_download= "/home/eficas/WWW/telechargement/eficas"
+
+def main():
+ if os.path.isdir('dist'):shutil.rmtree('dist')
+
+ copyfiles('.',path_distrib,['LICENSE.TERMS','INSTALL','NEWS'])
+
+ copyfiles('../Editeur',os.path.join(path_distrib,'Editeur'),['*.py','faqs.txt'])
+ copyfiles('../InterfaceTK',os.path.join(path_distrib,'InterfaceTK'),['*.py','faqs.txt'])
+ copyfiles('../InterfaceQT',os.path.join(path_distrib,'InterfaceQT'),['*.py','faqs.txt'])
+ copyfiles('../Ui',os.path.join(path_distrib,'Ui'),['*.ui','makefile'])
+ copyfiles('../Openturns',os.path.join(path_distrib,'Openturns'),['*.py','*.ini'])
+ copyfiles('../Ihm',os.path.join(path_distrib,'Ihm'),['*.py'])
+ copyfiles('../Extensions',os.path.join(path_distrib,'Extensions'),['*.py'])
+ copyfiles('../Misc',os.path.join(path_distrib,'Misc'),['*.py'])
+ copyfiles('../Accas',os.path.join(path_distrib,'Accas'),['*.py'])
+ copyfiles('../Accas',os.path.join(path_distrib,'Noyau'),['*.py'])
+ copyfiles('../Accas',os.path.join(path_distrib,'Validation'),['*.py'])
+ # AIDE
+ copyfiles('../AIDE',os.path.join(path_distrib,'AIDE'),['*.py'])
+ copyfiles('../AIDE/fichiers',os.path.join(path_distrib,'AIDE','fichiers'),['*'])
+ copyfiles('.',os.path.join(path_distrib,'AIDE','fichiers'),['INSTALL','NEWS'])
+ copyfiles('../Editeur',os.path.join(path_distrib,'AIDE','fichiers'),['faqs.txt'])
+ # ______________________
+
+ copyfiles('../convert',os.path.join(path_distrib,'convert'),['*.py'])
+ copyfiles('../convert/Parserv5',os.path.join(path_distrib,'convert','Parserv5'),['*.py'])
+ copyfiles('../generator',os.path.join(path_distrib,'generator'),['*.py'])
+ copyfiles('../Editeur/icons',os.path.join(path_distrib,'Editeur','icons'),['*.gif'])
+ copyfiles('../Editeur/icons',os.path.join(path_distrib,'Editeur','icons'),['*.png'])
+ copyfiles('../Editeur/Patrons/',os.path.join(path_distrib,'Editeur','Patrons'),['*.com*'])
+ copyfiles('../Editeur/Patrons/OPENTURNS',os.path.join(path_distrib,'Editeur','Patrons','OPENTURNS'),['*.com*'])
+
+ copyfiles('../Noyau',os.path.join(path_distrib,'Noyau'),['*.py'])
+ copyfiles('../Validation',os.path.join(path_distrib,'Validation'),['*.py'])
+
+
+ tarball= maketarball('dist',nom_distrib,nom_distrib)
+ try:
+ shutil.copy(tarball,dir_download)
+ except:
+ print "Repertoire de download inconnu : ",dir_download
+
+
+
+def make_dir(dir_cible):
+ if type(dir_cible) is not types.StringType:
+ raise "make_dir : dir_cible doit etre une string (%s)" % `dir_cible`
+ head,tail=os.path.split(dir_cible)
+ tails=[tail]
+ while head and tail and not os.path.isdir(head):
+ head,tail=os.path.split(head)
+ tails.insert(0, tail)
+
+ for d in tails:
+ head = os.path.join(head, d)
+ if not os.path.isdir(head):os.mkdir(head)
+
+
+def copyfiles(dir_origin,dir_cible,listfiles):
+ if not os.path.isdir(dir_cible):make_dir(dir_cible)
+ for glob_files in listfiles:
+ for file in glob.glob(os.path.join(dir_origin,glob_files)):
+ shutil.copy(file,dir_cible)
+
+
+def maketarball(dir_trav,dir_cible,nom_tar):
+ prev=os.getcwd()
+ print prev
+ os.chdir(dir_trav)
+ os.system("tar -cf "+nom_tar+".tar "+dir_cible)
+ os.system("gzip -f9 "+nom_tar+".tar ")
+ os.chdir(prev)
+ return os.path.join(dir_trav,nom_tar+".tar.gz")
+
+
+main()
+
--- /dev/null
+# Necessaire pour compatibilite avec Aster
Certains tests doivent etre exécutés séparément à cause d'un problème d'import de catalogue.
En particulier, les tests d'ihm (testihm*.py) entrent dans cette catégorie.
+
+Par ordre de complexité :
+
+ - testelem7
+ - testelem
+
+ - testcomm7
+ - testcomm9
+ - testcomm
+
+ - testastest
+ - testastest9
+
+ - testihm9
+ - testihm
+ - testihm7
+
+Les tests suffixés 7 ou 9 sont spécifiques d'une version d'ASTER
+
# REPINI sert à localiser le fichier editeur.ini
# Obligatoire
REPINI=os.path.dirname(os.path.abspath(__file__))
+repIni=REPINI
# INSTALLDIR sert à localiser l'installation d'Eficas
# Obligatoire
# Par défaut on utilise les modules de INSTALLDIR
# Peut valoir None (defaut)
CODE_PATH = None
-#CODE_PATH = os.path.join(REPINI,'../../Superv')
# la variable code donne le nom du code a selectionner
code="ASTER"
-# ICONDIR sert à localiser le répertoire contenant les icones
-# Par défaut on utilise le répertoire icons dans Editeur
-ICONDIR=os.path.join(INSTALLDIR,'Editeur','icons')
-
# lang indique la langue utilisée pour les chaines d'aide : fr ou ang
lang='fr'
# Codage des strings qui accepte les accents (en remplacement de 'ascii')
encoding='iso-8859-1'
+
+EditeurDir=INSTALLDIR+"/Editeur"
+sys.path[:0]=[INSTALLDIR]
+sys.path[:0]=[INSTALLDIR+"/Aster"]
+
+ICONDIR=os.path.join(INSTALLDIR,'Editeur','icons')
+
+# Preference
+if os.name == 'nt':
+ userprefs = os.sep.join( [ os.environ['HOMEDRIVE'], os.environ['HOMEPATH'], 'Eficas_install', 'prefs.py' ])
+else :
+ userprefs=os.path.expanduser("~/.Eficas_install/prefs.py")
+
+if os.path.isfile(userprefs):
+ try:
+ execfile(userprefs)
+ except:
+ pass
+
+
+#-------------------------------------------------------------------
+# Partie pour TK
+#-------------------------------------------------------------------
+
labels= ('Fichier','Edition','Jeu de commandes',
-# 'Catalogue','Browsers',
'Options',
'Aide',
+ 'Traduction',
)
appli_composants=['readercata','bureau',
-# 'browser',
'options',
]
#('Paramètres Eficas','affichage_fichier_ini'),
]
),
+ ('Traduction',[
+ ('Traduction v7 en v8','TraduitFichier7'),
+ ('Traduction v8 en v9','TraduitFichier8','<Control-t>','Ctrl+T'),
+ ]
+ ),
('Aide',[
('Aide EFICAS','aideEFICAS','<Control-a>','Ctrl+A'),
]
),
]
}
-
-if os.name == 'nt':
- userprefs = os.sep.join( [ os.environ['HOMEDRIVE'], os.environ['HOMEPATH'], 'Eficas_install', 'prefs.py' ])
-else :
- userprefs=os.path.expanduser("~/Eficas_install/prefs.py")
-if os.path.isfile(userprefs):
- try:
- execfile(userprefs)
- except:
- pass
-
-sys.path[:0]=[INSTALLDIR]
LISTIMP=DEFI_LIST_REEL( DEBUT=0.,
INTERVALLE=_F( JUSQU_A = 1., NOMBRE = 500))
-RESUA1=REST_BASE_PHYS( RESU_GENE=TRAN_GE1,
+RESUA1=REST_GENE_PHYS( RESU_GENE=TRAN_GE1,
LIST_INST=LISTIMP,
INTERPOL='LIN',
NOM_CHAM='DEPL',
#--------------------------------------------------------------
# RESTITUTION GLOBALE DU CHAMP DE DEPLACEMENT RELATIF A CHAQUE INSTANT
# DE LA LISTE L_RECU
-RGSCR=REST_BASE_PHYS(
+RGSCR=REST_GENE_PHYS(
RESU_GENE=GSCR,
INTERPOL='LIN',
LIST_INST=L_RECU,
# RESTITUTION GRANDEURS ABSOLUES
#-------------------------------
-RGSCA=REST_BASE_PHYS(
+RGSCA=REST_GENE_PHYS(
RESU_GENE=GSCA,
INTERPOL='LIN',
LIST_INST=L_RECU,
# DEPLACEMENTS
-RGSCR2=REST_BASE_PHYS(
+RGSCR2=REST_GENE_PHYS(
RESU_GENE=GSCA,
INTERPOL='LIN',
LIST_INST=L_RECU,
def test016(self):
"""Test du validateur ET : pas de doublon ET valeur paire """
cata=SIMP(statut='o',typ='I',min=1,max=6,validators=[NoRepeat(),PairVal()])
- liste=( ((2,),1),(None,0),((1,3,5),0),
+ liste=( (2,1),(None,0),((1,3,5),0),
((2,4,6),1),
((1,3,5),0),
((2,4,4),0),
(("aaaa","aaaaa","axyzaa","bbbbaaa","zzz"),OK),
(("aaaa","aaaa","axyz","bbbb","zzz"),
"""Mot-clé simple : mcs
- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- ! Mot-clé mcs invalide : aaaa est un doublon !
- ! Critere de validite: pas de présence de doublon dans la liste !
- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ ! Mot-clé mcs invalide : aaaa est un doublon !
+ ! Critere de validite: : pas de présence de doublon dans la liste !
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Fin Mot-clé simple : mcs
"""),
(("aaaa","axyz","bbbb","zzz"),OK),
(("aaa",Variable('x',"bbb")),OK),
(("aaa",Variable('x',"aaa")),
"""Mot-clé simple : mcs
- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- ! Mot-clé mcs invalide : aaa est un doublon !
- ! Critere de validite: pas de présence de doublon dans la liste !
- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ ! Mot-clé mcs invalide : aaa est un doublon !
+ ! Critere de validite: : pas de présence de doublon dans la liste !
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Fin Mot-clé simple : mcs
"""),
(Variable('x',("aaa","bbb")),OK),
(Variable('x',("aaa","bbb","bbb")),
"""Mot-clé simple : mcs
- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- ! Mot-clé mcs invalide : bbb est un doublon !
- ! Critere de validite: pas de présence de doublon dans la liste !
- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ ! Mot-clé mcs invalide : bbb est un doublon !
+ ! Critere de validite: : pas de présence de doublon dans la liste !
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Fin Mot-clé simple : mcs
"""),
)
(("TUTU","TATA","CCCC"),OK),
(("TUTU","TATA","CCCC","TUTU","TATA","CCCC"),
"""Mot-clé simple : mcs
- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- ! Mot-clé mcs invalide : TUTU est un doublon !
- ! Critere de validite: pas de présence de doublon dans la liste !
- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ ! Mot-clé mcs invalide : TUTU est un doublon !
+ ! Critere de validite: : pas de présence de doublon dans la liste !
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Fin Mot-clé simple : mcs
"""),
(("TUTU","TATA","CCCC","TUTU","TATA","CCCC","TUTU","TATA","CCCC"),
"""Mot-clé simple : mcs
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! Mot-clé mcs invalide : (1, 3, 5) contient des valeurs non paires !
- ! Critere de validite: pas de présence de doublon dans la liste !
+ ! Critere de validite: : pas de présence de doublon dans la liste !
! et valeur paire !
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Fin Mot-clé simple : mcs
((2,4,6),OK),
((2,4,4),
"""Mot-clé simple : mcs
- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- ! Mot-clé mcs invalide : 4 est un doublon !
- ! Critere de validite: pas de présence de doublon dans la liste !
- ! et valeur paire !
- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ ! Mot-clé mcs invalide : 4 est un doublon !
+ ! Critere de validite: : pas de présence de doublon dans la liste !
+ ! et valeur paire !
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Fin Mot-clé simple : mcs
"""),
)
((i,1,i,i),OK),
((1,1,i,i),
"""Mot-clé simple : mcs
- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- ! Mot-clé mcs invalide : 1 est un doublon !
- ! Critere de validite: pas de présence de doublon dans la liste !
- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ ! Mot-clé mcs invalide : 1 est un doublon !
+ ! Critere de validite: : pas de présence de doublon dans la liste !
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Fin Mot-clé simple : mcs
""" ),
)
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! Mot-clé mcs invalide : (<concept entier>, 5, 7, <concept entier>) ne contient !
! pas les elements obligatoires : [6] !
- ! Critere de validite: pas de présence de doublon dans la liste !
+ ! Critere de validite: : pas de présence de doublon dans la liste !
! et valeur (5, 6, 7) obligatoire !
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Fin Mot-clé simple : mcs
! pas les elements obligatoires : [6] !
! Critere de validite: valeur (5, 6, 7) obligatoire !
! et liste croissant !
- ! et pas de présence de doublon dans la liste !
+ ! et : pas de présence de doublon dans la liste !
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Fin Mot-clé simple : mcs
""" ),
! par valeurs croissantes !
! Critere de validite: valeur (5, 6, 7) obligatoire !
! et liste croissant !
- ! et pas de présence de doublon dans la liste !
+ ! et : pas de présence de doublon dans la liste !
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Fin Mot-clé simple : mcs
""" ),
! Mot-clé mcs invalide : 7 est un doublon !
! Critere de validite: valeur (5, 6, 7) obligatoire !
! et liste croissant !
- ! et pas de présence de doublon dans la liste !
+ ! et : pas de présence de doublon dans la liste !
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Fin Mot-clé simple : mcs
""" ),
"IMPR_FICO_HOMARD":"IMPR_FICO_HOMARD a ete integre dans MACR_ADPA_MAIL",
# STA9.2
"POST_RCCM_SITUATION_NUME_PASSAGE":"Utilisation de NUME_PASSAGE pour le type TUYAUTERIE impossible en 9.2. On ne traite pour le moment que les chemins de passage simples.",
+ "POST_RCCM_SITUATION_NB_CYCL_SEISME":"POST_RCCM : maintenant les SITUATIONS sismiques ont leur propre mot clef facteur SEISME, attention, traduction incomplete",
"DEFI_MATERIAU_BAZANT_FD" : "le materiau BAZANT_FD a ete supprime",
"DEFI_MATERIAU_APPUI_ELAS" : "le materiau APPUI_ELAS a ete supprime",
"DEFI_MATERIAU_PORO_JOINT" : "le materiau PORO_JOINT a ete supprime",
"CALC_G_OPTION=G_LAGR" : "l'OPTION G_LAGR de CALC_G a ete supprimee",
"CALC_G_OPTION=G_LAGR_GLOB" : "l'OPTION G_LAGR_GLOB de CALC_G a ete supprimee",
"CALC_MATR_ELEM_THETA" : "l'OPTION RIGI_MECA_LAGR de CALC_MATR_ELEM a ete supprimee",
+ "TEST_FICHIER_NB_CHIFFRE" : "le fonctionnement de TEST_FICHIER a change entre la V8 et la V9, consultez la doc, en particulier pour entrer la bonne valeur de NB_VALE",
+ "DYNA_NON_LINE_PILOTAGE" : "le PILOTAGE n'est pas actif dans DYNA_NON_LINE ",
+ "DYNA_NON_LINE_RECH_LINEAIRE" : "la RECH_LINEAIRE n'est pas active dans DYNA_NON_LINE ",
}
def EcritErreur(listeGena,ligne=None) :
if bool == None : bool = 0
return bool
+#-------------
+class nexistepas :
+#--------------
+ def __init__(self,list_arg):
+ self.genea=list_arg
+
+ def cherche_mot(self,niveau,commande):
+ if commande == None : return 0
+ if niveau == len(self.genea) : return 1
+ texte=self.genea[niveau]
+ for c in commande.childNodes :
+ if c.name == texte :
+ niveau = niveau+1
+ return self.cherche_mot(niveau,c)
+ return None
+
+ def verif(self,commande):
+ bool=self.cherche_mot(0,commande)
+ if bool : return 0
+ return 1
+
#-------------------------------
class MCsousMCFaPourValeur :
#------------------------------
bool=1
return bool
-dictionnaire_regle={"existe":existe,"existeMCFParmi":existeMCFParmi,"existeMCsousMCF":existeMCsousMCF,"nexistepasMCsousMCF":nexistepasMCsousMCF,"MCsousMCFaPourValeur":MCsousMCFaPourValeur,"MCaPourValeur":MCaPourValeur}
+dictionnaire_regle={"existe":existe,"nexistepas":nexistepas,"existeMCFParmi":existeMCFParmi,"existeMCsousMCF":existeMCsousMCF,"nexistepasMCsousMCF":nexistepasMCsousMCF,"MCsousMCFaPourValeur":MCsousMCFaPourValeur,"MCaPourValeur":MCaPourValeur}
SansRegle=pasDeRegle()
import calcG
-atraiter=( "DEFI_MAILLAGE","CALC_VECT_ELEM","DYNA_NON_LINE","STAT_NON_LINE","FACT_LDLT","FACT_GRAD","RESO_LDLT","RESO_GRAD","DYNA_TRAN_MODAL","NORM_MODE","MACRO_MODE_MECA","POST_RCCM","THER_NON_LINE","THER_LINEAIRE","THER_NON_LINE_MO","DEFI_CABLE_BP","GENE_VARI_ALEA","DEFI_MATERIAU","IMPR_MATRICE","CALC_G","CALC_MATR_ELEM")
+atraiter=( "DEFI_MAILLAGE","CALC_VECT_ELEM","DYNA_TRAN_EXPLI","DYNA_NON_LINE","STAT_NON_LINE","FACT_LDLT","FACT_GRAD","RESO_LDLT","RESO_GRAD","DYNA_TRAN_MODAL","NORM_MODE","MACRO_MODE_MECA","POST_RCCM","THER_NON_LINE","THER_LINEAIRE","THER_NON_LINE_MO","DEFI_CABLE_BP","GENE_VARI_ALEA","DEFI_MATERIAU","IMPR_MATRICE","CALC_G","CALC_MATR_ELEM","MACR_ADAP_MAIL","MACR_INFO_MAIL","REST_BASE_PHYS","COMB_SISM_MODAL","TEST_FICHIER","MACR_ELEM_DYNA","CREA_CHAMP","AFFE_CHAR_MECA","AFE_CHAR_MECA_F")
def traduc(infile,outfile,flog=None):
parseKeywords(root)
####################### traitement erreurs ########################
- GenereErreurPourCommande(jdc,("POST_RCCM"))
+ GenereErreurPourCommande(jdc,("POST_RCCM","DEFI_MATERIAU","TEST_FICHIER","DYNA_NON_LINE"))
####################### traitement Sous-Structuration #######################
renameMotCleInFact(jdc,"DEFI_MAILLAGE","DEFI_SUPER_MAILLE","MACR_ELEM_STAT","MACR_ELEM")
renameMotCleInFact(jdc,"CALC_VECT_ELEM","SOUS_STRUC","MAILLE","SUPER_MAILLE")
#########################################################################
+ ####################### traitement MACR_ELEM_DYNA #######################
+ removeMotCle(jdc,"MACR_ELEM_DYNA","OPTION")
+ #########################################################################
+
####################### traitement Resolution lineaire ######################
renameMotCle(jdc,"RESO_LDLT","MATR_FACT","MATR")
renameMotCle(jdc,"RESO_GRAD","MATR_ASSE","MATR")
removeMotCle(jdc,"DYNA_TRAN_MODAL","NB_MODE_DIAG")
#########################################################################
- ####################### traitement MASS_INER dans NORM_MODE ##########
- removeMotCle(jdc,"NORM_MODE","MASSE_INER")
- removeMotCleInFact(jdc,"MACRO_MODE_MECA","NORM_MODE","MASSE_INER")
+ ############# traitement MASS_INER dans NORM_MODE/MACRO_MODE_MECA ##########
+ removeMotCle(jdc,"NORM_MODE","MASS_INER")
+ removeMotCleInFact(jdc,"MACRO_MODE_MECA","NORM_MODE","MASS_INER")
#########################################################################
####################### traitement POST_RCCM ############################
removeMotCleInFactSiRegleAvecErreur(jdc,"POST_RCCM","SITUATION","NUME_PASSAGE",((("TYPE_RESU_MECA","TUYAUTERIE",jdc),"MCaPourValeur"),))
+ chercheOperInsereFacteurSiRegle(jdc,"POST_RCCM","SEISME", ((("SITUATION","NB_CYCL_SEISME"),"existeMCsousMCF"),))
+ moveMotCleFromFactToFact(jdc,"POST_RCCM","SITUATION","NB_CYCL_SEISME","SEISME")
+# AjouteMotClefDansFacteurSiRegle(jdc,"POST_RCCM","SITUATION", "transferez_au_bloc_SEISME_CHAR_ETAT_NB_OCCUR,NUME_SITU,NUME_GROUP_et_eventuellement_NOM_SITU_et_NUME_RESU_THER",((("SITUATION","NB_CYCL_SEISME"),"existeMCsousMCF"),))
+ AjouteMotClefDansFacteurSiRegle(jdc,"POST_RCCM","SITUATION","supprimez_a_la_main_ce_bloc",((("SITUATION","NB_CYCL_SEISME"),"existeMCsousMCF"),))
+# removeMotCleInFactSiRegleAvecErreur(jdc,"POST_RCCM","SITUATION","NB_CYCL_SEISME",((("SITUATION","NB_CYCL_SEISME"),"existeMCsousMCF"),))
+ removeMotCleInFactSiRegle(jdc,"POST_RCCM","SITUATION","NB_CYCL_SEISME",((("SITUATION","NB_CYCL_SEISME"),"existeMCsousMCF"),))
+ removeMotCleInFact(jdc,"POST_RCCM","CHAR_MECA","TYPE_CHAR",)
+ removeMotCleInFact(jdc,"POST_RCCM","RESU_MECA","TYPE_CHAR",)
#########################################################################
####################### traitement THER_NON_LINE ############################
removeMotCleAvecErreur(jdc,"DEFI_MATERIAU","APPUI_ELAS")
removeMotCleAvecErreur(jdc,"DEFI_MATERIAU","ZIRC_EPRI")
removeMotCleAvecErreur(jdc,"DEFI_MATERIAU","ZIRC_CYRA2")
+ # BARCELONE
+ moveMotCleFromFactToFact(jdc,"DEFI_MATERIAU","CAM_CLAY","MU","BARCELONE")
+ moveMotCleFromFactToFact(jdc,"DEFI_MATERIAU","CAM_CLAY","PORO","BARCELONE")
+ moveMotCleFromFactToFact(jdc,"DEFI_MATERIAU","CAM_CLAY","LAMBDA","BARCELONE")
+ moveMotCleFromFactToFact(jdc,"DEFI_MATERIAU","CAM_CLAY","KAPPA","BARCELONE")
+ moveMotCleFromFactToFact(jdc,"DEFI_MATERIAU","CAM_CLAY","M","BARCELONE")
+ moveMotCleFromFactToFact(jdc,"DEFI_MATERIAU","CAM_CLAY","PRES_CRIT","BARCELONE")
+ moveMotCleFromFactToFact(jdc,"DEFI_MATERIAU","CAM_CLAY","PA","BARCELONE")
+ renameMotCleInFact(jdc,"DEFI_MATERIAU","CAM_CLAY","PA","KCAM")
+ # CAM_CLAY
+ AjouteMotClefDansFacteur(jdc,"DEFI_MATERIAU","CAM_CLAY","MU=xxx",)
+ AjouteMotClefDansFacteurSiRegle(jdc,"DEFI_MATERIAU","CAM_CLAY","PTRAC=XXX",((("CAM_CLAY","KCAM"),"existeMCsousMCF"),))
+ # VENDOCHAB
+ renameMotCleInFact(jdc,"DEFI_MATERIAU","VENDOCHAB","S_VP","S")
+ renameMotCleInFact(jdc,"DEFI_MATERIAU","VENDOCHAB","N_VP","N")
+ renameMotCleInFact(jdc,"DEFI_MATERIAU","VENDOCHAB","M_VP","UN_SUR_M", erreur=1)
+ renameMotCleInFact(jdc,"DEFI_MATERIAU","VENDOCHAB","K_VP","UN_SUR_K")
+ renameMotCleInFact(jdc,"DEFI_MATERIAU","VENDOCHAB","SEDVP1","ALPHA_D")
+ renameMotCleInFact(jdc,"DEFI_MATERIAU","VENDOCHAB","SEDVP2","BETA_D")
+ renameMotCleInFact(jdc,"DEFI_MATERIAU","VENDOCHAB_FO","S_VP","S")
+ renameMotCleInFact(jdc,"DEFI_MATERIAU","VENDOCHAB_FO","N_VP","N")
+ renameMotCleInFact(jdc,"DEFI_MATERIAU","VENDOCHAB_FO","M_VP","UN_SUR_M", erreur=1)
+ renameMotCleInFact(jdc,"DEFI_MATERIAU","VENDOCHAB_FO","K_VP","UN_SUR_K")
+ renameMotCleInFact(jdc,"DEFI_MATERIAU","VENDOCHAB_FO","SEDVP1","ALPHA_D")
+ renameMotCleInFact(jdc,"DEFI_MATERIAU","VENDOCHAB_FO","SEDVP2","BETA_D")
+ # GLRC
+ renameCommandeSiRegle(jdc,"DEFI_MATERIAU","DEFI_GLRC", ((("GLRC_DAMAGE","GLRC_ACIER",),"existeMCFParmi"),))
#########################################################################
####################### traitement IMPR_MATRICE ######################
removeCommandeSiRegleAvecErreur(jdc,"IMPR_MATRICE",((("MATR_ASSE","FORMAT","RESULTAT",jdc),"MCsousMCFaPourValeur"),))
#########################################################################
+ ####################### traitement MACR_ADAP/INFO_MAIL ######################
+ dadap_mail={"V8_11":"V9_5", "V8_N":"V9_N", "V8_N_PERSO":"V9_N_PERSO"}
+ ChangementValeur(jdc,"MACR_ADAP_MAIL","VERSION_HOMARD",dadap_mail)
+ ChangementValeur(jdc,"MACR_INFO_MAIL","VERSION_HOMARD",dadap_mail)
+ #########################################################################
+
+ ####################### traitement REST_BASE_PHYS ######################
+ renameCommandeSiRegle(jdc,"REST_BASE_PHYS","REST_SOUS_STRUC", ((("RESULTAT","SQUELETTE","SOUS_STRUC","BASE_MODALE","CYCLIQUE","SECTEUR"),"existeMCFParmi"),))
+ renameCommandeSiRegle(jdc,"REST_BASE_PHYS","REST_COND_TRAN", ((("MACR_ELEM_DYNA","RESU_PHYS"),"existeMCFParmi"),))
+ renameCommande(jdc,"REST_BASE_PHYS","REST_GENE_PHYS", )
+ #########################################################################
####################### traitement CALC_G ######################
removeMotCleSiRegleAvecErreur(jdc,"CALC_G","OPTION",((("OPTION","G_LAGR",jdc),"MCaPourValeur"),))
removeMotCle(jdc,"CALC_G","DIRE_THETA_LAGR")
#########################################################################
+ ####################### traitement COMB_SISM_MODAL ######################
+ AjouteMotClefDansFacteurSiRegle(jdc,"COMB_SISM_MODAL","EXCIT","MULTI_APPUI='DECORRELE'", ((("EXCIT","MONO_APPUI"),"nexistepasMCsousMCF"),))
+ #########################################################################
+
+ ####################### traitement TEST_FICHIER ######################
+ renameMotCleAvecErreur(jdc,"TEST_FICHIER","NB_CHIFFRE","NB_VALE")
+ removeMotCle(jdc,"TEST_FICHIER","EPSILON")
+ #########################################################################
+
####################### traitement CALC_MATR_ELEM ######################
removeMotCleSiRegle(jdc,"CALC_MATR_ELEM","OPTION",((("OPTION","RIGI_MECA_LAGR",jdc),"MCaPourValeur"),))
removeMotCleAvecErreur(jdc,"CALC_MATR_ELEM","PROPAGATION")
removeMotCle(jdc,"CALC_MATR_ELEM","THETA")
#########################################################################
+ ####################### traitement ITER_INTE_PAS ######################
+ removeMotCleInFactSiRegle(jdc,"STAT_NON_LINE","COMP_INCR","ITER_INTE_PAS",((("COMP_INCR","DEFORMATION","SIMO_MIEHE",jdc),"MCsousMCFaPourValeur"),))
+ removeMotCleInFactSiRegle(jdc,"DYNA_NON_LINE","COMP_INCR","ITER_INTE_PAS",((("COMP_INCR","DEFORMATION","SIMO_MIEHE",jdc),"MCsousMCFaPourValeur"),))
+ #########################################################################
+
+ ################## traitement RECH_LINEAIRE et PILOTAGE dans DYNA_NON_LINE #################
+ removeMotCleAvecErreur(jdc,"DYNA_NON_LINE","RECH_LINEAIRE")
+ removeMotCleAvecErreur(jdc,"DYNA_NON_LINE","PILOTAGE")
+ #########################################################################
+
+ ####################### traitement DYNA_TRAN_EXPLI ######################
+ renameOper(jdc,"DYNA_TRAN_EXPLI","DYNA_NON_LINE")
+ AjouteMotClefDansFacteur(jdc,"DYNA_NON_LINE","TCHAMWA","FORMULATION='ACCELERATION'")
+ AjouteMotClefDansFacteur(jdc,"DYNA_NON_LINE","DIFF_CENT","FORMULATION='ACCELERATION'")
+ #########################################################################
+
+ ####################### traitement SCHEMA_TEMPS dans DYNA_NON_LINE ######################
+ AjouteMotClefDansFacteur(jdc,"DYNA_NON_LINE","NEWMARK","FORMULATION='DEPLACEMENT'")
+ AjouteMotClefDansFacteur(jdc,"DYNA_NON_LINE","HHT","FORMULATION='DEPLACEMENT'")
+ AjouteMotClefDansFacteur(jdc,"DYNA_NON_LINE","TETA_METHODE","FORMULATION='DEPLACEMENT'")
+ renameMotCleInFact(jdc,"DYNA_NON_LINE","NEWMARK","ALPHA","BETA",)
+ renameMotCleInFact(jdc,"DYNA_NON_LINE","NEWMARK","DELTA","GAMMA",)
+ renameMotCleInFact(jdc,"DYNA_NON_LINE","TETA_METHODE","TETA","THETA",)
+ AjouteMotClefDansFacteurSiRegle(jdc,"DYNA_NON_LINE","NEWMARK","SCHEMA='NEWMARK'",((("NEWMARK",),"existeMCFParmi"),))
+ AjouteMotClefDansFacteurSiRegle(jdc,"DYNA_NON_LINE","TETA_METHODE","SCHEMA='THETA_METHODE'",((("TETA_METHODE",),"existeMCFParmi"),))
+ AjouteMotClefDansFacteurSiRegle(jdc,"DYNA_NON_LINE","HHT","SCHEMA='HHT'",((("HHT",),"existeMCFParmi"),))
+ AjouteMotClefDansFacteurSiRegle(jdc,"DYNA_NON_LINE","TCHAMWA","SCHEMA='TCHAMWA'",((("TCHAMWA",),"existeMCFParmi"),))
+ AjouteMotClefDansFacteurSiRegle(jdc,"DYNA_NON_LINE","DIFF_CENT","SCHEMA='DIFF_CENT'",((("DIFF_CENT",),"existeMCFParmi"),))
+ renameMotCle(jdc,"DYNA_NON_LINE","NEWMARK","SCHEMA_TEMPS")
+ renameMotCle(jdc,"DYNA_NON_LINE","TETA_METHODE","SCHEMA_TEMPS")
+ renameMotCle(jdc,"DYNA_NON_LINE","HHT","SCHEMA_TEMPS")
+ renameMotCle(jdc,"DYNA_NON_LINE","DIFF_CENT","SCHEMA_TEMPS")
+ renameMotCle(jdc,"DYNA_NON_LINE","TCHAMWA","SCHEMA_TEMPS")
+ removeMotCleInFact(jdc,"DYNA_NON_LINE","INCREMENT","EVOLUTION")
+ moveMotClefInOperToFact(jdc,"DYNA_NON_LINE","STOP_CFL","SCHEMA_TEMPS")
+ #########################################################################
+
####################### traitement CONTACT ######################
removeMotCleInFact(jdc,"DEFI_MATERIAU","DIS_CONTACT","KT_ULTM")
removeMotCleInFact(jdc,"DEFI_MATERIAU","DIS_CONTACT","EFFO_N_INIT")
ChangementValeurDsMCF(jdc,"STAT_NON_LINE","COMP_INCR","RELATION",dGrilles)
ChangementValeurDsMCF(jdc,"DYNA_NON_LINE","COMP_INCR","RELATION",dGrilles)
+ renameCommandeSiRegle(jdc,"AFFE_CHAR_MECA_F","AFFE_CHAR_MECA",((("CONTACT",),"existeMCFParmi"),))
removeMotCleInFact(jdc,"AFFE_CHAR_MECA","CONTACT","RECHERCHE")
+ removeMotCleInFact(jdc,"AFFE_CHAR_MECA","CONTACT","PROJECTION")
removeMotCleInFact(jdc,"AFFE_CHAR_MECA","CONTACT","VECT_Y")
removeMotCleInFact(jdc,"AFFE_CHAR_MECA","CONTACT","VECT_ORIE_POU")
+ removeMotCleInFact(jdc,"AFFE_CHAR_MECA","CONTACT","MODL_AXIS")
+ dAppariement={"MAIT_ESCL_SYME":"MAIT_ESCL"}
+ ChangementValeurDsMCF(jdc,"AFFE_CHAR_MECA","CONTACT","APPARIEMENT",dAppariement)
- renameCommandeSiRegle(jdc,"AFFE_CHAR_MECA_F","AFFE_CHAR_MECA",((("CONTACT",),"existeMCFParmi"),))
- #########################################################################
-
- ####################### traitement CAM_CLAY ######################
- AjouteMotClefDansFacteur(jdc,"DEFI_MATERIAU","CAM_CLAY","MU=xxx",)
#########################################################################
- ####################### traitement GLRC ######################
- renameCommandeSiRegle(jdc,"DEFI_MATERIAU","DEFI_GLRC", ((("GLRC_DAMAGE","GLRC_ACIER",),"existeMCFParmi"),))
+ ####################### traitement CREA_CHAMP ######################
+ chercheOperInsereFacteurSiRegle(jdc,"CREA_CHAMP","PRECISION=1.E-3,", ((("PRECISION",),"nexistepas"),(("CRITERE",),"existe"),),0)
#########################################################################
f=open(outfile,'w')
+++ /dev/null
-# -*- coding: utf-8 -*-
-
-# Form implementation generated from reading ui file 'OptionsEditeur.ui'
-#
-# Created: Tue Jun 10 18:23:53 2008
-# by: The PyQt User Interface Compiler (pyuic) 3.16
-#
-# WARNING! All changes made in this file will be lost!
-
-
-from qt import *
-
-
-class desOptions(QDialog):
- def __init__(self,parent = None,name = None,modal = 0,fl = 0):
- QDialog.__init__(self,parent,name,modal,fl)
-
- if not name:
- self.setName("desOptions")
-
-
-
- self.groupBox1 = QGroupBox(self,"groupBox1")
- self.groupBox1.setGeometry(QRect(11,11,548,191))
-
- self.textLabel1_3 = QLabel(self.groupBox1,"textLabel1_3")
- self.textLabel1_3.setGeometry(QRect(30,60,280,20))
-
- self.textLabel1_2_2 = QLabel(self.groupBox1,"textLabel1_2_2")
- self.textLabel1_2_2.setGeometry(QRect(30,120,280,20))
-
- self.CBVersions = QComboBox(0,self.groupBox1,"CBVersions")
- self.CBVersions.setGeometry(QRect(30,20,90,30))
-
- self.LERepMat = QLineEdit(self.groupBox1,"LERepMat")
- self.LERepMat.setGeometry(QRect(30,140,501,31))
-
- self.LERepCata = QLineEdit(self.groupBox1,"LERepCata")
- self.LERepCata.setGeometry(QRect(30,80,501,31))
-
- self.Bok = QPushButton(self.groupBox1,"Bok")
- self.Bok.setGeometry(QRect(440,20,90,31))
- self.Bok.setAutoDefault(0)
-
- self.groupBox2 = QGroupBox(self,"groupBox2")
- self.groupBox2.setGeometry(QRect(11,208,548,90))
-
- self.LEVersionAjout = QLineEdit(self.groupBox2,"LEVersionAjout")
- self.LEVersionAjout.setGeometry(QRect(120,31,101,30))
-
- self.LEVersionSup = QLineEdit(self.groupBox2,"LEVersionSup")
- self.LEVersionSup.setGeometry(QRect(410,30,101,30))
-
- self.PBSup = QPushButton(self.groupBox2,"PBSup")
- self.PBSup.setGeometry(QRect(300,20,101,41))
-
- self.PBajout = QPushButton(self.groupBox2,"PBajout")
- self.PBajout.setGeometry(QRect(10,20,101,41))
-
- self.PBQuit = QPushButton(self,"PBQuit")
- self.PBQuit.setGeometry(QRect(400,420,151,31))
- self.PBQuit.setMinimumSize(QSize(0,30))
-
- self.groupBox3 = QGroupBox(self,"groupBox3")
- self.groupBox3.setGeometry(QRect(10,310,548,90))
-
- self.LERepDoc = QLineEdit(self.groupBox3,"LERepDoc")
- self.LERepDoc.setGeometry(QRect(20,50,520,31))
-
- self.textLabel1 = QLabel(self.groupBox3,"textLabel1")
- self.textLabel1.setGeometry(QRect(20,20,280,30))
-
- self.Bdefaut = QCheckBox(self,"Bdefaut")
- self.Bdefaut.setGeometry(QRect(10,430,340,20))
- Bdefaut_font = QFont(self.Bdefaut.font())
- Bdefaut_font.setPointSize(12)
- self.Bdefaut.setFont(Bdefaut_font)
-
- self.languageChange()
-
- self.resize(QSize(570,474).expandedTo(self.minimumSizeHint()))
- self.clearWState(Qt.WState_Polished)
-
- self.connect(self.CBVersions,SIGNAL("activated(int)"),self.VersionChoisie)
- self.connect(self.Bdefaut,SIGNAL("clicked()"),self.BdefautChecked)
- self.connect(self.LEVersionAjout,SIGNAL("returnPressed()"),self.AjoutVersion)
- self.connect(self.LERepDoc,SIGNAL("returnPressed()"),self.ChangePathDoc)
- self.connect(self.Bok,SIGNAL("clicked()"),self.BokClicked)
- self.connect(self.LEVersionSup,SIGNAL("returnPressed()"),self.SupVersion)
- self.connect(self.PBajout,SIGNAL("clicked()"),self.AjoutVersion)
- self.connect(self.PBSup,SIGNAL("clicked()"),self.SupVersion)
- self.connect(self.PBQuit,SIGNAL("clicked()"),self.close)
- self.connect(self.LERepDoc,SIGNAL("textChanged(const QString&)"),self.ChangePathDoc)
-
-
- def languageChange(self):
- self.setCaption(self.__tr("Options Aster"))
- self.groupBox1.setTitle(self.__tr("Configurer une Version"))
- self.textLabel1_3.setText(self.__trUtf8("\x52\xc3\xa9\x70\x65\x72\x74\x6f\x69\x72\x65\x20\x64\x27\x61\x63\x63\xc3\xa8\x73\x20\x61\x75\x20\x63\x61\x74\x61\x6c\x6f\x67\x75\x65\x20\x3a"))
- self.textLabel1_2_2.setText(self.__trUtf8("\x52\xc3\xa9\x70\x65\x72\x74\x6f\x69\x72\x65\x20\x64\x27\x61\x63\x63\xc3\xa8\x73\x20\x61\x75\x78\x20\x6d\x61\x74\xc3\xa9\x72\x69\x61\x75\x78\x20\x3a"))
- self.LERepMat.setText(QString.null)
- self.LERepCata.setText(QString.null)
- self.Bok.setText(self.__tr("Valider"))
- self.groupBox2.setTitle(self.__trUtf8("\x47\xc3\xa9\x72\x65\x72\x20\x6c\x65\x73\x20\x76\x65\x72\x73\x69\x6f\x6e\x73"))
- self.PBSup.setText(self.__tr("Supprimer\n"
-"Version :"))
- self.PBajout.setText(self.__tr("Ajouter\n"
-"Version :"))
- self.PBQuit.setText(self.__tr("Quitter"))
- self.groupBox3.setTitle(self.__tr("Doc"))
- self.LERepDoc.setText(QString.null)
- self.textLabel1.setText(self.__trUtf8("\x52\x65\x70\x65\x72\x74\x6f\x69\x72\x65\x20\x64\x27\x61\x63\x63\x65\x73\x20\xc3\xa0\x20\x6c\x61\x20\x64\x6f\x63\x75\x6d\x65\x6e\x74\x61\x74\x69\x6f\x6e\x20\x3a"))
- self.Bdefaut.setText(self.__tr("Reinitialiser avec les valeurs par defaut"))
-
-
- def VersionChoisie(self):
- print "desOptions.VersionChoisie(): Not implemented yet"
-
- def BdefautChecked(self):
- print "desOptions.BdefautChecked(): Not implemented yet"
-
- def AjoutVersion(self):
- print "desOptions.AjoutVersion(): Not implemented yet"
-
- def SupVersion(self):
- print "desOptions.SupVersion(): Not implemented yet"
-
- def ChangePathDoc(self):
- print "desOptions.ChangePathDoc(): Not implemented yet"
-
- def BokClicked(self):
- print "desOptions.BokClicked(): Not implemented yet"
-
- def __tr(self,s,c = None):
- return qApp.translate("desOptions",s,c)
-
- def __trUtf8(self,s,c = None):
- return qApp.translate("desOptions",s,c,QApplication.UnicodeUTF8)
+++ /dev/null
-# -*- coding: utf-8 -*-
-
-# Form implementation generated from reading ui file 'OptionsPdf.ui'
-#
-# Created: lun avr 7 09:36:07 2008
-# by: The PyQt User Interface Compiler (pyuic) 3.13
-#
-# WARNING! All changes made in this file will be lost!
-
-
-from qt import *
-
-
-class desPdf(QDialog):
- def __init__(self,parent = None,name = None,modal = 0,fl = 0):
- QDialog.__init__(self,parent,name,modal,fl)
-
- if not name:
- self.setName("desPdf")
-
-
-
- self.textLabel1_2 = QLabel(self,"textLabel1_2")
- self.textLabel1_2.setGeometry(QRect(20,10,280,20))
-
- self.BCancel = QPushButton(self,"BCancel")
- self.BCancel.setGeometry(QRect(450,90,70,31))
-
- self.LERepPdf = QLineEdit(self,"LERepPdf")
- self.LERepPdf.setGeometry(QRect(20,40,501,31))
-
- self.Bok = QPushButton(self,"Bok")
- self.Bok.setGeometry(QRect(350,90,70,31))
-
- self.languageChange()
-
- self.resize(QSize(538,142).expandedTo(self.minimumSizeHint()))
- self.clearWState(Qt.WState_Polished)
-
- self.connect(self.BCancel,SIGNAL("clicked()"),self.reject)
- self.connect(self.LERepPdf,SIGNAL("returnPressed()"),self.LeRepPdfPressed)
- self.connect(self.Bok,SIGNAL("clicked()"),self.BokClicked)
-
- self.setTabOrder(self.LERepPdf,self.Bok)
- self.setTabOrder(self.Bok,self.BCancel)
-
-
- def languageChange(self):
- self.setCaption(self.__tr("desPdf"))
- self.textLabel1_2.setText(self.__tr("Lecteur Pdf"))
- self.BCancel.setText(self.__tr("Cancel"))
- self.LERepPdf.setText(self.__tr("acroread"))
- self.Bok.setText(self.__tr("Ok"))
-
-
- def LeRepPdfPressed(self):
- print "desPdf.LeRepPdfPressed(): Not implemented yet"
-
- def BokClicked(self):
- print "desPdf.BokClicked(): Not implemented yet"
-
- def __tr(self,s,c = None):
- return qApp.translate("desPdf",s,c)
+++ /dev/null
-# -*- coding: utf-8 -*-
-
-# Form implementation generated from reading ui file 'aideQT.ui'
-#
-# Created: mar mar 25 10:05:07 2008
-# by: The PyQt User Interface Compiler (pyuic) 3.13
-#
-# WARNING! All changes made in this file will be lost!
-
-
-from qt import *
-
-
-class Aide(QWidget):
- def __init__(self,parent = None,name = None,fl = 0):
- QWidget.__init__(self,parent,name,fl)
-
- if not name:
- self.setName("Aide")
-
-
- AideLayout = QGridLayout(self,1,1,11,6,"AideLayout")
-
- layout2 = QHBoxLayout(None,0,6,"layout2")
-
- self.PBIndex = QPushButton(self,"PBIndex")
- self.PBIndex.setMinimumSize(QSize(0,30))
- layout2.addWidget(self.PBIndex)
-
- self.PBBack = QPushButton(self,"PBBack")
- self.PBBack.setEnabled(1)
- self.PBBack.setMinimumSize(QSize(0,30))
- layout2.addWidget(self.PBBack)
-
- self.PBForward = QPushButton(self,"PBForward")
- self.PBForward.setEnabled(1)
- self.PBForward.setMinimumSize(QSize(0,30))
- layout2.addWidget(self.PBForward)
-
- AideLayout.addLayout(layout2,1,0)
-
- self.TB1 = QTextBrowser(self,"TB1")
-
- AideLayout.addMultiCellWidget(self.TB1,0,0,0,1)
- spacer1 = QSpacerItem(311,20,QSizePolicy.Expanding,QSizePolicy.Minimum)
- AideLayout.addItem(spacer1,1,1)
-
- self.languageChange()
-
- self.resize(QSize(602,480).expandedTo(self.minimumSizeHint()))
- self.clearWState(Qt.WState_Polished)
-
- self.connect(self.PBBack,SIGNAL("clicked()"),self.TB1.backward)
- self.connect(self.PBForward,SIGNAL("clicked()"),self.TB1.forward)
- self.connect(self.PBIndex,SIGNAL("clicked()"),self.TB1.home)
-
-
- def languageChange(self):
- self.setCaption(self.__tr("Aide"))
- self.PBIndex.setText(self.__tr("Index"))
- self.PBBack.setText(self.__tr("Back"))
- self.PBForward.setText(self.__tr("Forward"))
-
-
- def PBIndexPushed(self):
- print "Aide.PBIndexPushed(): Not implemented yet"
-
- def PBBackPushed(self):
- print "Aide.PBBackPushed(): Not implemented yet"
-
- def PBForwardPushed(self):
- print "Aide.PBForwardPushed(): Not implemented yet"
-
- def SlotSourceChanged(self):
- print "Aide.SlotSourceChanged(): Not implemented yet"
-
- def __tr(self,s,c = None):
- return qApp.translate("Aide",s,c)
+++ /dev/null
-# -*- coding: utf-8 -*-
-
-# Form implementation generated from reading ui file 'desChoixCata.ui'
-#
-# Created: mar mar 25 10:05:07 2008
-# by: The PyQt User Interface Compiler (pyuic) 3.13
-#
-# WARNING! All changes made in this file will be lost!
-
-
-from qt import *
-
-
-class DChoixCata(QDialog):
- def __init__(self,parent = None,name = None,modal = 0,fl = 0):
- QDialog.__init__(self,parent,name,modal,fl)
-
- if not name:
- self.setName("DChoixCata")
-
- self.setSizeGripEnabled(1)
-
- DChoixCataLayout = QGridLayout(self,1,1,11,6,"DChoixCataLayout")
-
- self.frame3 = QFrame(self,"frame3")
- self.frame3.setFrameShape(QFrame.StyledPanel)
- self.frame3.setFrameShadow(QFrame.Raised)
-
- self.buttonCancel = QPushButton(self.frame3,"buttonCancel")
- self.buttonCancel.setGeometry(QRect(380,6,90,30))
- self.buttonCancel.setAutoDefault(1)
-
- self.buttonOk = QPushButton(self.frame3,"buttonOk")
- self.buttonOk.setGeometry(QRect(40,6,90,30))
- self.buttonOk.setAutoDefault(1)
- self.buttonOk.setDefault(1)
-
- DChoixCataLayout.addMultiCellWidget(self.frame3,2,2,0,1)
-
- self.TLNb = QLabel(self,"TLNb")
- self.TLNb.setMinimumSize(QSize(30,0))
-
- DChoixCataLayout.addWidget(self.TLNb,0,0)
-
- self.CBChoixCata = QComboBox(0,self,"CBChoixCata")
- self.CBChoixCata.setEnabled(1)
-
- DChoixCataLayout.addWidget(self.CBChoixCata,1,1)
-
- self.textLabel1_2 = QLabel(self,"textLabel1_2")
- self.textLabel1_2.setMinimumSize(QSize(380,60))
-
- DChoixCataLayout.addWidget(self.textLabel1_2,1,0)
-
- self.languageChange()
-
- self.resize(QSize(547,172).expandedTo(self.minimumSizeHint()))
- self.clearWState(Qt.WState_Polished)
-
- self.connect(self.buttonOk,SIGNAL("clicked()"),self.BOkPressed)
- self.connect(self.buttonCancel,SIGNAL("clicked()"),self.BCancelPressed)
- self.connect(self.CBChoixCata,SIGNAL("activated(const QString&)"),self.CataChoisi)
-
-
- def languageChange(self):
- self.setCaption(self.__tr("Choix d'une version du code Aster"))
- self.buttonCancel.setText(self.__tr("&Cancel"))
- self.buttonCancel.setAccel(QString.null)
- self.buttonOk.setText(self.__tr("&OK"))
- self.buttonOk.setAccel(QString.null)
- self.TLNb.setText(self.__tr("2"))
- self.textLabel1_2.setText(self.__tr("<font size=\"+1\">Veuillez choisir celle avec laquelle vous souhaitez travailler</font>"))
-
-
- def CataChoisi(self):
- print "DChoixCata.CataChoisi(): Not implemented yet"
-
- def BOkPressed(self):
- print "DChoixCata.BOkPressed(): Not implemented yet"
-
- def BCancelPressed(self):
- print "DChoixCata.BCancelPressed(): Not implemented yet"
-
- def __tr(self,s,c = None):
- return qApp.translate("DChoixCata",s,c)
<rect>
<x>0</x>
<y>0</y>
- <width>547</width>
+ <width>523</width>
<height>172</height>
</rect>
</property>
<string>2</string>
</property>
</widget>
- <widget class="QComboBox" row="1" column="1">
- <property name="name">
- <cstring>CBChoixCata</cstring>
- </property>
- <property name="enabled">
- <bool>true</bool>
- </property>
- </widget>
<widget class="QLabel" row="1" column="0">
<property name="name">
<cstring>textLabel1_2</cstring>
</property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>2</hsizetype>
+ <vsizetype>5</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
<property name="minimumSize">
<size>
- <width>380</width>
+ <width>30</width>
<height>60</height>
</size>
</property>
<string><font size="+1">Veuillez choisir celle avec laquelle vous souhaitez travailler</font></string>
</property>
</widget>
+ <widget class="QComboBox" row="1" column="1">
+ <property name="name">
+ <cstring>CBChoixCata</cstring>
+ </property>
+ <property name="enabled">
+ <bool>true</bool>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>0</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ </widget>
</grid>
</widget>
<connections>
+++ /dev/null
-# -*- coding: utf-8 -*-
-
-# Form implementation generated from reading ui file 'desCommande.ui'
-#
-# Created: ven mai 16 13:30:38 2008
-# by: The PyQt User Interface Compiler (pyuic) 3.13
-#
-# WARNING! All changes made in this file will be lost!
-
-
-from qt import *
-
-
-class DComm(QWidget):
- def __init__(self,parent = None,name = None,fl = 0):
- QWidget.__init__(self,parent,name,fl)
-
- if not name:
- self.setName("DComm")
-
- self.setMinimumSize(QSize(505,0))
-
- DCommLayout = QGridLayout(self,1,1,11,6,"DCommLayout")
-
- self.Commentaire = QLabel(self,"Commentaire")
- self.Commentaire.setFrameShape(QLabel.NoFrame)
- self.Commentaire.setFrameShadow(QLabel.Plain)
-
- DCommLayout.addMultiCellWidget(self.Commentaire,1,1,0,2)
-
- self.bOk = QPushButton(self,"bOk")
- self.bOk.setMinimumSize(QSize(0,30))
- self.bOk.setAutoDefault(1)
- self.bOk.setDefault(1)
-
- DCommLayout.addWidget(self.bOk,2,1)
-
- self.bSup = QPushButton(self,"bSup")
- self.bSup.setMinimumSize(QSize(0,30))
- self.bSup.setAutoDefault(1)
-
- DCommLayout.addWidget(self.bSup,2,0)
-
- self.bHelp = QPushButton(self,"bHelp")
- self.bHelp.setMinimumSize(QSize(0,30))
- self.bHelp.setAutoDefault(1)
-
- DCommLayout.addWidget(self.bHelp,2,2)
-
- self.TWChoix = QTabWidget(self,"TWChoix")
-
- self.MotClef = QWidget(self.TWChoix,"MotClef")
-
- self.textLabel1 = QLabel(self.MotClef,"textLabel1")
- self.textLabel1.setGeometry(QRect(11,11,226,18))
- self.textLabel1.setMinimumSize(QSize(0,0))
-
- self.LBMCPermis = QListBox(self.MotClef,"LBMCPermis")
- self.LBMCPermis.setGeometry(QRect(11,35,226,342))
- self.LBMCPermis.setMinimumSize(QSize(0,0))
-
- self.textLabel1_2 = QLabel(self.MotClef,"textLabel1_2")
- self.textLabel1_2.setGeometry(QRect(243,11,225,18))
-
- self.LBRegles = QListBox(self.MotClef,"LBRegles")
- self.LBRegles.setGeometry(QRect(243,35,225,342))
- self.TWChoix.insertTab(self.MotClef,QString(""))
-
- self.Concept = QWidget(self.TWChoix,"Concept")
- ConceptLayout = QGridLayout(self.Concept,1,1,11,6,"ConceptLayout")
-
- self.groupBox1 = QGroupBox(self.Concept,"groupBox1")
-
- self.textLabel1_3 = QLabel(self.groupBox1,"textLabel1_3")
- self.textLabel1_3.setGeometry(QRect(80,50,130,31))
-
- self.textLabel1_3_2 = QLabel(self.groupBox1,"textLabel1_3_2")
- self.textLabel1_3_2.setGeometry(QRect(80,170,150,31))
-
- self.LENomConcept = QLineEdit(self.groupBox1,"LENomConcept")
- self.LENomConcept.setGeometry(QRect(80,110,310,30))
-
- self.textLabel3 = QLabel(self.groupBox1,"textLabel3")
- self.textLabel3.setGeometry(QRect(10,200,290,31))
-
- self.typeConcept = QLabel(self.groupBox1,"typeConcept")
- self.typeConcept.setGeometry(QRect(310,200,130,31))
-
- ConceptLayout.addWidget(self.groupBox1,0,0)
- self.TWChoix.insertTab(self.Concept,QString(""))
-
- self.Commande = QWidget(self.TWChoix,"Commande")
- CommandeLayout = QGridLayout(self.Commande,1,1,11,6,"CommandeLayout")
-
- self.buttonGroup1 = QButtonGroup(self.Commande,"buttonGroup1")
-
- self.RBalpha = QRadioButton(self.buttonGroup1,"RBalpha")
- self.RBalpha.setGeometry(QRect(20,20,120,20))
- self.RBalpha.setChecked(1)
-
- self.RBGroupe = QRadioButton(self.buttonGroup1,"RBGroupe")
- self.RBGroupe.setGeometry(QRect(20,40,110,20))
-
- CommandeLayout.addMultiCellWidget(self.buttonGroup1,0,1,3,3)
-
- self.LBNouvCommande = QListBox(self.Commande,"LBNouvCommande")
-
- CommandeLayout.addMultiCellWidget(self.LBNouvCommande,2,2,0,3)
-
- self.textLabel1_4 = QLabel(self.Commande,"textLabel1_4")
- self.textLabel1_4.setMaximumSize(QSize(32767,20))
-
- CommandeLayout.addMultiCellWidget(self.textLabel1_4,0,0,0,2)
-
- self.textLabel4 = QLabel(self.Commande,"textLabel4")
-
- CommandeLayout.addMultiCellWidget(self.textLabel4,3,3,0,3)
-
- self.textLabel6 = QLabel(self.Commande,"textLabel6")
- self.textLabel6.setMinimumSize(QSize(40,40))
-
- CommandeLayout.addWidget(self.textLabel6,1,0)
-
- self.LEFiltre = QLineEdit(self.Commande,"LEFiltre")
- self.LEFiltre.setMinimumSize(QSize(0,40))
-
- CommandeLayout.addWidget(self.LEFiltre,1,1)
-
- self.BNext = QToolButton(self.Commande,"BNext")
- self.BNext.setMinimumSize(QSize(70,40))
- self.BNext.setIconSet(QIconSet())
-
- CommandeLayout.addWidget(self.BNext,1,2)
- self.TWChoix.insertTab(self.Commande,QString(""))
-
- DCommLayout.addMultiCellWidget(self.TWChoix,0,0,0,2)
-
- self.languageChange()
-
- self.resize(QSize(505,483).expandedTo(self.minimumSizeHint()))
- self.clearWState(Qt.WState_Polished)
-
- self.connect(self.LBNouvCommande,SIGNAL("doubleClicked(QListBoxItem*)"),self.LBNouvCommandeClicked)
- self.connect(self.LEFiltre,SIGNAL("textChanged(const QString&)"),self.LEFiltreTextChanged)
- self.connect(self.LEFiltre,SIGNAL("returnPressed()"),self.LEfiltreReturnPressed)
- self.connect(self.bSup,SIGNAL("pressed()"),self.BSupPressed)
- self.connect(self.bOk,SIGNAL("clicked()"),self.BOkPressed)
- self.connect(self.LENomConcept,SIGNAL("returnPressed()"),self.LENomConceptReturnPressed)
- self.connect(self.RBGroupe,SIGNAL("clicked()"),self.BuildTabCommand)
- self.connect(self.RBalpha,SIGNAL("clicked()"),self.BuildTabCommand)
- self.connect(self.bHelp,SIGNAL("clicked()"),self.ViewDoc)
- self.connect(self.BNext,SIGNAL("pressed()"),self.BNextPressed)
-
- self.setTabOrder(self.LEFiltre,self.LBRegles)
- self.setTabOrder(self.LBRegles,self.LENomConcept)
- self.setTabOrder(self.LENomConcept,self.TWChoix)
- self.setTabOrder(self.TWChoix,self.LBMCPermis)
- self.setTabOrder(self.LBMCPermis,self.RBalpha)
- self.setTabOrder(self.RBalpha,self.LBNouvCommande)
- self.setTabOrder(self.LBNouvCommande,self.bOk)
- self.setTabOrder(self.bOk,self.bSup)
- self.setTabOrder(self.bSup,self.bHelp)
-
-
- def languageChange(self):
- self.setCaption(self.__tr("DComm"))
- self.Commentaire.setText(QString.null)
- self.bOk.setText(self.__tr("&Valider"))
- self.bOk.setAccel(self.__tr("Shift+A, Alt+A, Alt+A, Alt+A"))
- QToolTip.add(self.bOk,self.__tr("validation de la saisie"))
- self.bSup.setText(self.__tr("&Supprimer"))
- self.bSup.setAccel(self.__tr("Alt+S"))
- QToolTip.add(self.bSup,self.__tr("suppression du mot clef"))
- self.bHelp.setText(self.__tr("&Documentation"))
- self.bHelp.setAccel(self.__tr("Alt+D"))
- QToolTip.add(self.bHelp,self.__tr("affichage documentation aster"))
- self.textLabel1.setText(self.__tr("<h3><p align=\"center\"><u><b>Mots Clefs Permis</b></u></p></h3>"))
- self.textLabel1_2.setText(self.__trUtf8("\x3c\x68\x33\x3e\x3c\x70\x20\x61\x6c\x69\x67\x6e\x3d\x22\x63\x65\x6e\x74\x65\x72\x22\x3e\x3c\x75\x3e\x3c\x62\x3e\x52\xc3\xa8\x67\x6c\x65\x73\x3c\x2f\x62\x3e\x3c\x2f\x75\x3e\x3c\x2f\x70\x3e\x3c\x2f\x68\x33\x3e"))
- self.TWChoix.changeTab(self.MotClef,self.__tr("Ajouter Mot-Clef"))
- self.groupBox1.setTitle(self.__tr("Concept"))
- self.textLabel1_3.setText(self.__tr("<u>Nom du concept :</u>"))
- self.textLabel1_3_2.setText(self.__tr("<u>Type du concept :</u>"))
- self.textLabel3.setText(self.__trUtf8("\x4c\x27\x6f\x70\xc3\xa9\x72\x61\x74\x65\x75\x72\x20\x72\x65\x74\x6f\x75\x72\x6e\x65\x20\x75\x6e\x20\x63\x6f\x6e\x63\x65\x70\x74\x20\x64\x65\x20\x74\x79\x70\x65\x20\x3a"))
- self.typeConcept.setText(self.__tr("TypeDuConcept"))
- self.TWChoix.changeTab(self.Concept,self.__tr("Nommer Concept"))
- self.buttonGroup1.setTitle(self.__tr("Affichage"))
- self.RBalpha.setText(self.__trUtf8("\x61\x6c\x70\x68\x61\x62\xc3\xa9\x74\x69\x71\x75\x65"))
- self.RBGroupe.setText(self.__tr("par groupe"))
- self.textLabel1_4.setText(self.__tr("<b><u>Commandes :</u></b>"))
- self.textLabel4.setText(self.__trUtf8("\x4c\x61\x20\x63\x6f\x6d\x6d\x61\x6e\x64\x65\x20\x63\x68\x6f\x69\x73\x69\x65\x20\x73\x65\x72\x61\x20\x61\x6a\x6f\x75\x74\xc3\xa9\x65\x20\x41\x50\x52\x45\x53\x20\x6c\x61\x20\x63\x6f\x6d\x6d\x61\x6e\x64\x65\x20\x63\x6f\x75\x72\x61\x6e\x74\x65"))
- self.textLabel6.setText(self.__tr("Filtre"))
- self.BNext.setText(self.__tr("Suivant"))
- QToolTip.add(self.BNext,self.__tr("affiche la prochaine occurence"))
- self.TWChoix.changeTab(self.Commande,self.__tr("Nouvelle Commande"))
-
-
- def LBNouvCommandeClicked(self):
- print "DComm.LBNouvCommandeClicked(): Not implemented yet"
-
- def LEFiltreTextChanged(self):
- print "DComm.LEFiltreTextChanged(): Not implemented yet"
-
- def LEfiltreReturnPressed(self):
- print "DComm.LEfiltreReturnPressed(): Not implemented yet"
-
- def BSupPressed(self):
- print "DComm.BSupPressed(): Not implemented yet"
-
- def LENomConceptReturnPressed(self):
- print "DComm.LENomConceptReturnPressed(): Not implemented yet"
-
- def BOkPressed(self):
- print "DComm.BOkPressed(): Not implemented yet"
-
- def BuildTabCommand(self):
- print "DComm.BuildTabCommand(): Not implemented yet"
-
- def ViewDoc(self):
- print "DComm.ViewDoc(): Not implemented yet"
-
- def BNextPressed(self):
- print "DComm.BNextPressed(): Not implemented yet"
-
- def __tr(self,s,c = None):
- return qApp.translate("DComm",s,c)
-
- def __trUtf8(self,s,c = None):
- return qApp.translate("DComm",s,c,QApplication.UnicodeUTF8)
<rect>
<x>0</x>
<y>0</y>
- <width>505</width>
+ <width>506</width>
<height>483</height>
</rect>
</property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>3</hsizetype>
+ <vsizetype>3</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
<property name="minimumSize">
<size>
- <width>505</width>
+ <width>0</width>
<height>0</height>
</size>
</property>
<property name="name">
<cstring>unnamed</cstring>
</property>
- <widget class="QLabel" row="1" column="0" rowspan="1" colspan="3">
+ <widget class="QLayoutWidget" row="2" column="0">
+ <property name="name">
+ <cstring>layout1</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QPushButton">
+ <property name="name">
+ <cstring>bSup</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>2</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>0</width>
+ <height>30</height>
+ </size>
+ </property>
+ <property name="text">
+ <string>&Supprimer</string>
+ </property>
+ <property name="accel">
+ <string>Alt+S</string>
+ </property>
+ <property name="autoDefault">
+ <bool>true</bool>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>suppression du mot clef</string>
+ </property>
+ </widget>
+ <widget class="QPushButton">
+ <property name="name">
+ <cstring>bOk</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>2</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>0</width>
+ <height>30</height>
+ </size>
+ </property>
+ <property name="text">
+ <string>&Valider</string>
+ </property>
+ <property name="accel">
+ <string>Shift+A, Alt+A, Alt+A, Alt+A</string>
+ </property>
+ <property name="autoDefault">
+ <bool>true</bool>
+ </property>
+ <property name="default">
+ <bool>true</bool>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>validation de la saisie</string>
+ </property>
+ </widget>
+ <widget class="QPushButton">
+ <property name="name">
+ <cstring>bHelp</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>2</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>0</width>
+ <height>30</height>
+ </size>
+ </property>
+ <property name="text">
+ <string>&Documentation</string>
+ </property>
+ <property name="accel">
+ <string>Alt+D</string>
+ </property>
+ <property name="autoDefault">
+ <bool>true</bool>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>affichage documentation aster</string>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ <widget class="QLabel" row="1" column="0">
<property name="name">
<cstring>Commentaire</cstring>
</property>
<string></string>
</property>
</widget>
- <widget class="QPushButton" row="2" column="1">
- <property name="name">
- <cstring>bOk</cstring>
- </property>
- <property name="minimumSize">
- <size>
- <width>0</width>
- <height>30</height>
- </size>
- </property>
- <property name="text">
- <string>&Valider</string>
- </property>
- <property name="accel">
- <string>Shift+A, Alt+A, Alt+A, Alt+A</string>
- </property>
- <property name="autoDefault">
- <bool>true</bool>
- </property>
- <property name="default">
- <bool>true</bool>
- </property>
- <property name="toolTip" stdset="0">
- <string>validation de la saisie</string>
- </property>
- </widget>
- <widget class="QPushButton" row="2" column="0">
- <property name="name">
- <cstring>bSup</cstring>
- </property>
- <property name="minimumSize">
- <size>
- <width>0</width>
- <height>30</height>
- </size>
- </property>
- <property name="text">
- <string>&Supprimer</string>
- </property>
- <property name="accel">
- <string>Alt+S</string>
- </property>
- <property name="autoDefault">
- <bool>true</bool>
- </property>
- <property name="toolTip" stdset="0">
- <string>suppression du mot clef</string>
- </property>
- </widget>
- <widget class="QPushButton" row="2" column="2">
- <property name="name">
- <cstring>bHelp</cstring>
- </property>
- <property name="minimumSize">
- <size>
- <width>0</width>
- <height>30</height>
- </size>
- </property>
- <property name="text">
- <string>&Documentation</string>
- </property>
- <property name="accel">
- <string>Alt+D</string>
- </property>
- <property name="autoDefault">
- <bool>true</bool>
- </property>
- <property name="toolTip" stdset="0">
- <string>affichage documentation aster</string>
- </property>
- </widget>
- <widget class="QTabWidget" row="0" column="0" rowspan="1" colspan="3">
+ <widget class="QTabWidget" row="0" column="0">
<property name="name">
<cstring>TWChoix</cstring>
</property>
<attribute name="title">
<string>Ajouter Mot-Clef</string>
</attribute>
- <grid>
+ <widget class="QLabel">
<property name="name">
- <cstring>unnamed</cstring>
+ <cstring>textLabel1</cstring>
</property>
- <widget class="QLabel" row="0" column="0">
+ <property name="geometry">
+ <rect>
+ <x>11</x>
+ <y>11</y>
+ <width>226</width>
+ <height>23</height>
+ </rect>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>0</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="text">
+ <string><h3><p align="center"><u><b>Mots Clefs Permis</b></u></p></h3></string>
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>textLabel1_2</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>243</x>
+ <y>11</y>
+ <width>225</width>
+ <height>23</height>
+ </rect>
+ </property>
+ <property name="text">
+ <string><h3><p align="center"><u><b>Règles</b></u></p></h3></string>
+ </property>
+ </widget>
+ <widget class="QListBox">
+ <property name="name">
+ <cstring>LBRegles</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>243</x>
+ <y>40</y>
+ <width>230</width>
+ <height>318</height>
+ </rect>
+ </property>
+ </widget>
+ <widget class="QListBox">
+ <property name="name">
+ <cstring>LBMCPermis</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>11</x>
+ <y>40</y>
+ <width>220</width>
+ <height>318</height>
+ </rect>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>0</width>
+ <height>0</height>
+ </size>
+ </property>
+ </widget>
+ </widget>
+ <widget class="QWidget">
+ <property name="name">
+ <cstring>Concept</cstring>
+ </property>
+ <attribute name="title">
+ <string>Nommer Concept</string>
+ </attribute>
+ <widget class="QGroupBox">
+ <property name="name">
+ <cstring>groupBox1</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>11</x>
+ <y>11</y>
+ <width>460</width>
+ <height>340</height>
+ </rect>
+ </property>
+ <property name="title">
+ <string>Concept</string>
+ </property>
+ <widget class="QLabel">
<property name="name">
- <cstring>textLabel1</cstring>
+ <cstring>textLabel1_3</cstring>
</property>
- <property name="minimumSize">
- <size>
- <width>0</width>
- <height>0</height>
- </size>
+ <property name="geometry">
+ <rect>
+ <x>80</x>
+ <y>50</y>
+ <width>130</width>
+ <height>31</height>
+ </rect>
</property>
<property name="text">
- <string><h3><p align="center"><u><b>Mots Clefs Permis</b></u></p></h3></string>
+ <string><u>Nom du concept :</u></string>
</property>
</widget>
- <widget class="QListBox" row="1" column="1">
+ <widget class="QLabel">
<property name="name">
- <cstring>LBRegles</cstring>
+ <cstring>textLabel1_3_2</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>80</x>
+ <y>170</y>
+ <width>150</width>
+ <height>31</height>
+ </rect>
+ </property>
+ <property name="text">
+ <string><u>Type du concept :</u></string>
</property>
</widget>
- <widget class="QListBox" row="1" column="0">
+ <widget class="QLabel">
<property name="name">
- <cstring>LBMCPermis</cstring>
+ <cstring>typeConcept</cstring>
</property>
- <property name="minimumSize">
- <size>
- <width>0</width>
- <height>0</height>
- </size>
+ <property name="geometry">
+ <rect>
+ <x>310</x>
+ <y>200</y>
+ <width>130</width>
+ <height>31</height>
+ </rect>
+ </property>
+ <property name="text">
+ <string>TypeDuConcept</string>
</property>
</widget>
- <widget class="QLabel" row="0" column="1">
+ <widget class="QLabel">
<property name="name">
- <cstring>textLabel1_2</cstring>
+ <cstring>textLabel3</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>200</y>
+ <width>290</width>
+ <height>31</height>
+ </rect>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>2</hsizetype>
+ <vsizetype>5</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
</property>
<property name="text">
- <string><h3><p align="center"><u><b>Règles</b></u></p></h3></string>
+ <string>L'opérateur retourne un concept de type :</string>
</property>
</widget>
- </grid>
- </widget>
- <widget class="QWidget">
- <property name="name">
- <cstring>Concept</cstring>
- </property>
- <attribute name="title">
- <string>Nommer Concept</string>
- </attribute>
- <grid>
- <property name="name">
- <cstring>unnamed</cstring>
- </property>
- <widget class="QGroupBox" row="0" column="0">
+ <widget class="QLineEdit">
<property name="name">
- <cstring>groupBox1</cstring>
+ <cstring>LENomConcept</cstring>
</property>
- <property name="title">
- <string>Concept</string>
+ <property name="geometry">
+ <rect>
+ <x>80</x>
+ <y>110</y>
+ <width>310</width>
+ <height>30</height>
+ </rect>
</property>
- <widget class="QLabel">
- <property name="name">
- <cstring>textLabel1_3</cstring>
- </property>
- <property name="geometry">
- <rect>
- <x>80</x>
- <y>50</y>
- <width>130</width>
- <height>31</height>
- </rect>
- </property>
- <property name="text">
- <string><u>Nom du concept :</u></string>
- </property>
- </widget>
- <widget class="QLabel">
- <property name="name">
- <cstring>textLabel1_3_2</cstring>
- </property>
- <property name="geometry">
- <rect>
- <x>80</x>
- <y>170</y>
- <width>150</width>
- <height>31</height>
- </rect>
- </property>
- <property name="text">
- <string><u>Type du concept :</u></string>
- </property>
- </widget>
- <widget class="QLineEdit">
- <property name="name">
- <cstring>LENomConcept</cstring>
- </property>
- <property name="geometry">
- <rect>
- <x>80</x>
- <y>110</y>
- <width>310</width>
- <height>30</height>
- </rect>
- </property>
- </widget>
- <widget class="QLabel">
- <property name="name">
- <cstring>textLabel3</cstring>
- </property>
- <property name="geometry">
- <rect>
- <x>10</x>
- <y>200</y>
- <width>290</width>
- <height>31</height>
- </rect>
- </property>
- <property name="text">
- <string>L'opérateur retourne un concept de type :</string>
- </property>
- </widget>
- <widget class="QLabel">
- <property name="name">
- <cstring>typeConcept</cstring>
- </property>
- <property name="geometry">
- <rect>
- <x>310</x>
- <y>200</y>
- <width>130</width>
- <height>31</height>
- </rect>
- </property>
- <property name="text">
- <string>TypeDuConcept</string>
- </property>
- </widget>
</widget>
- </grid>
+ </widget>
</widget>
<widget class="QWidget">
<property name="name">
<property name="name">
<cstring>textLabel4</cstring>
</property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>2</hsizetype>
+ <vsizetype>5</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
<property name="text">
<string>La commande choisie sera ajoutée APRES la commande courante</string>
</property>
+++ /dev/null
-# -*- coding: utf-8 -*-
-
-# Form implementation generated from reading ui file 'desCommentaire.ui'
-#
-# Created: Thu Jun 19 16:49:50 2008
-# by: The PyQt User Interface Compiler (pyuic) 3.16
-#
-# WARNING! All changes made in this file will be lost!
-
-
-from qt import *
-
-
-class DComment(QWidget):
- def __init__(self,parent = None,name = None,fl = 0):
- QWidget.__init__(self,parent,name,fl)
-
- if not name:
- self.setName("DComment")
-
- self.setMinimumSize(QSize(505,0))
-
- DCommentLayout = QGridLayout(self,1,1,11,6,"DCommentLayout")
-
- self.TWChoix = QTabWidget(self,"TWChoix")
-
- self.Valeur_Parametre = QWidget(self.TWChoix,"Valeur_Parametre")
-
- self.textCommentaire = QTextEdit(self.Valeur_Parametre,"textCommentaire")
- self.textCommentaire.setGeometry(QRect(0,0,480,390))
- self.TWChoix.insertTab(self.Valeur_Parametre,QString.fromLatin1(""))
-
- self.Commande = QWidget(self.TWChoix,"Commande")
- CommandeLayout = QGridLayout(self.Commande,1,1,11,6,"CommandeLayout")
-
- self.LBNouvCommande = QListBox(self.Commande,"LBNouvCommande")
-
- CommandeLayout.addMultiCellWidget(self.LBNouvCommande,2,2,0,3)
-
- self.buttonGroup1 = QButtonGroup(self.Commande,"buttonGroup1")
-
- self.RBGroupe = QRadioButton(self.buttonGroup1,"RBGroupe")
- self.RBGroupe.setGeometry(QRect(20,40,101,20))
-
- self.RBalpha = QRadioButton(self.buttonGroup1,"RBalpha")
- self.RBalpha.setGeometry(QRect(20,20,120,20))
- self.RBalpha.setChecked(1)
-
- CommandeLayout.addMultiCellWidget(self.buttonGroup1,0,1,3,3)
-
- self.textLabel1_4 = QLabel(self.Commande,"textLabel1_4")
-
- CommandeLayout.addMultiCellWidget(self.textLabel1_4,0,0,0,2)
-
- self.textLabel4 = QLabel(self.Commande,"textLabel4")
-
- CommandeLayout.addMultiCellWidget(self.textLabel4,3,3,0,3)
-
- self.LEFiltre = QLineEdit(self.Commande,"LEFiltre")
- self.LEFiltre.setMinimumSize(QSize(160,30))
-
- CommandeLayout.addWidget(self.LEFiltre,1,1)
-
- self.BNext = QToolButton(self.Commande,"BNext")
- self.BNext.setMinimumSize(QSize(60,30))
- self.BNext.setIconSet(QIconSet())
-
- CommandeLayout.addWidget(self.BNext,1,2)
-
- self.textLabel6 = QLabel(self.Commande,"textLabel6")
- self.textLabel6.setMinimumSize(QSize(50,30))
-
- CommandeLayout.addWidget(self.textLabel6,1,0)
- self.TWChoix.insertTab(self.Commande,QString.fromLatin1(""))
-
- DCommentLayout.addMultiCellWidget(self.TWChoix,0,0,0,2)
-
- self.bOk = QPushButton(self,"bOk")
- self.bOk.setMinimumSize(QSize(0,30))
- self.bOk.setAutoDefault(1)
- self.bOk.setDefault(1)
-
- DCommentLayout.addWidget(self.bOk,2,1)
-
- self.bSup = QPushButton(self,"bSup")
- self.bSup.setMinimumSize(QSize(0,30))
- self.bSup.setAutoDefault(1)
-
- DCommentLayout.addWidget(self.bSup,2,0)
-
- self.bHelp = QPushButton(self,"bHelp")
- self.bHelp.setMinimumSize(QSize(0,30))
- self.bHelp.setAutoDefault(1)
-
- DCommentLayout.addWidget(self.bHelp,2,2)
-
- self.Commentaire = QLabel(self,"Commentaire")
- self.Commentaire.setFrameShape(QLabel.NoFrame)
- self.Commentaire.setFrameShadow(QLabel.Plain)
-
- DCommentLayout.addMultiCellWidget(self.Commentaire,1,1,0,2)
-
- self.languageChange()
-
- self.resize(QSize(505,483).expandedTo(self.minimumSizeHint()))
- self.clearWState(Qt.WState_Polished)
-
- self.connect(self.LBNouvCommande,SIGNAL("doubleClicked(QListBoxItem*)"),self.LBNouvCommandeClicked)
- self.connect(self.LEFiltre,SIGNAL("textChanged(const QString&)"),self.LEFiltreTextChanged)
- self.connect(self.LEFiltre,SIGNAL("returnPressed()"),self.LEfiltreReturnPressed)
- self.connect(self.bSup,SIGNAL("pressed()"),self.BSupPressed)
- self.connect(self.bOk,SIGNAL("clicked()"),self.BOkPressed)
- self.connect(self.RBGroupe,SIGNAL("clicked()"),self.BuildTabCommand)
- self.connect(self.RBalpha,SIGNAL("clicked()"),self.BuildTabCommand)
- self.connect(self.bHelp,SIGNAL("clicked()"),self.ViewDoc)
- self.connect(self.BNext,SIGNAL("pressed()"),self.BNextPressed)
- self.connect(self.textCommentaire,SIGNAL("textChanged()"),self.TexteCommentaireEntre)
-
- self.setTabOrder(self.LEFiltre,self.TWChoix)
- self.setTabOrder(self.TWChoix,self.textCommentaire)
- self.setTabOrder(self.textCommentaire,self.LBNouvCommande)
- self.setTabOrder(self.LBNouvCommande,self.RBalpha)
- self.setTabOrder(self.RBalpha,self.bOk)
- self.setTabOrder(self.bOk,self.bSup)
- self.setTabOrder(self.bSup,self.bHelp)
-
-
- def languageChange(self):
- self.setCaption(self.__tr("DComm"))
- self.TWChoix.changeTab(self.Valeur_Parametre,self.__tr("Commentaire"))
- self.buttonGroup1.setTitle(self.__tr("Affichage"))
- self.RBGroupe.setText(self.__tr("par groupe"))
- self.RBalpha.setText(self.__trUtf8("\x61\x6c\x70\x68\x61\x62\xc3\xa9\x74\x69\x71\x75\x65"))
- self.textLabel1_4.setText(self.__tr("<b><u>Commandes :</u></b>"))
- self.textLabel4.setText(self.__trUtf8("\x4c\x61\x20\x63\x6f\x6d\x6d\x61\x6e\x64\x65\x20\x63\x68\x6f\x69\x73\x69\x65\x20\x73\x65\x72\x61\x20\x61\x6a\x6f\x75\x74\xc3\xa9\x65\x20\x41\x50\x52\x45\x53\x20\x6c\x61\x20\x63\x6f\x6d\x6d\x61\x6e\x64\x65\x20\x63\x6f\x75\x72\x61\x6e\x74\x65"))
- self.BNext.setText(self.__tr("Suivant"))
- QToolTip.add(self.BNext,self.__tr("affiche la prochaine occurence"))
- self.textLabel6.setText(self.__tr("Filtre"))
- self.TWChoix.changeTab(self.Commande,self.__tr("Nouvelle Commande"))
- self.bOk.setText(self.__tr("&Valider"))
- self.bOk.setAccel(QKeySequence(self.__tr("Shift+A, Alt+A, Alt+A, Alt+A")))
- QToolTip.add(self.bOk,self.__tr("validation de la saisie"))
- self.bSup.setText(self.__tr("&Supprimer"))
- self.bSup.setAccel(QKeySequence(self.__tr("Alt+S")))
- QToolTip.add(self.bSup,self.__tr("suppression du mot clef"))
- self.bHelp.setText(self.__tr("&Documentation"))
- self.bHelp.setAccel(QKeySequence(self.__tr("Alt+D")))
- QToolTip.add(self.bHelp,self.__tr("affichage documentation aster"))
- self.Commentaire.setText(QString.null)
-
-
- def LBNouvCommandeClicked(self):
- print "DComment.LBNouvCommandeClicked(): Not implemented yet"
-
- def LEFiltreTextChanged(self):
- print "DComment.LEFiltreTextChanged(): Not implemented yet"
-
- def LEfiltreReturnPressed(self):
- print "DComment.LEfiltreReturnPressed(): Not implemented yet"
-
- def BSupPressed(self):
- print "DComment.BSupPressed(): Not implemented yet"
-
- def LENomConceptReturnPressed(self):
- print "DComment.LENomConceptReturnPressed(): Not implemented yet"
-
- def BOkPressed(self):
- print "DComment.BOkPressed(): Not implemented yet"
-
- def BuildTabCommand(self):
- print "DComment.BuildTabCommand(): Not implemented yet"
-
- def ViewDoc(self):
- print "DComment.ViewDoc(): Not implemented yet"
-
- def BNextPressed(self):
- print "DComment.BNextPressed(): Not implemented yet"
-
- def textCommentaireChanged(self):
- print "DComment.textCommentaireChanged(): Not implemented yet"
-
- def __tr(self,s,c = None):
- return qApp.translate("DComment",s,c)
-
- def __trUtf8(self,s,c = None):
- return qApp.translate("DComment",s,c,QApplication.UnicodeUTF8)
<rect>
<x>0</x>
<y>0</y>
- <width>505</width>
+ <width>478</width>
<height>483</height>
</rect>
</property>
<property name="minimumSize">
<size>
- <width>505</width>
+ <width>0</width>
<height>0</height>
</size>
</property>
<property name="name">
<cstring>unnamed</cstring>
</property>
- <widget class="QTabWidget" row="0" column="0" rowspan="1" colspan="3">
+ <widget class="QLayoutWidget" row="2" column="0">
+ <property name="name">
+ <cstring>layout3</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QPushButton">
+ <property name="name">
+ <cstring>bSup</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>3</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>0</width>
+ <height>30</height>
+ </size>
+ </property>
+ <property name="text">
+ <string>&Supprimer</string>
+ </property>
+ <property name="accel">
+ <string>Alt+S</string>
+ </property>
+ <property name="autoDefault">
+ <bool>true</bool>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>suppression du mot cle30</string>
+ </property>
+ </widget>
+ <widget class="QPushButton">
+ <property name="name">
+ <cstring>bOk</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>3</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>0</width>
+ <height>30</height>
+ </size>
+ </property>
+ <property name="text">
+ <string>&Valider</string>
+ </property>
+ <property name="accel">
+ <string>Shift+A, Alt+A, Alt+A, Alt+A</string>
+ </property>
+ <property name="autoDefault">
+ <bool>true</bool>
+ </property>
+ <property name="default">
+ <bool>true</bool>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>validation de la saisie</string>
+ </property>
+ </widget>
+ <widget class="QPushButton">
+ <property name="name">
+ <cstring>bHelp</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>3</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>0</width>
+ <height>30</height>
+ </size>
+ </property>
+ <property name="text">
+ <string>&Documentation</string>
+ </property>
+ <property name="accel">
+ <string>Alt+D</string>
+ </property>
+ <property name="autoDefault">
+ <bool>true</bool>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>affichage documentation aster</string>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ <widget class="QLabel" row="1" column="0">
+ <property name="name">
+ <cstring>Commentaire</cstring>
+ </property>
+ <property name="frameShape">
+ <enum>NoFrame</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>Plain</enum>
+ </property>
+ <property name="text">
+ <string></string>
+ </property>
+ </widget>
+ <widget class="QTabWidget" row="0" column="0">
<property name="name">
<cstring>TWChoix</cstring>
</property>
</property>
<property name="geometry">
<rect>
- <x>0</x>
- <y>0</y>
- <width>480</width>
- <height>390</height>
+ <x>11</x>
+ <y>11</y>
+ <width>425</width>
+ <height>347</height>
</rect>
</property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>3</hsizetype>
+ <vsizetype>3</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
</widget>
</widget>
<widget class="QWidget">
<attribute name="title">
<string>Nouvelle Commande</string>
</attribute>
- <grid>
+ <vbox>
<property name="name">
<cstring>unnamed</cstring>
</property>
- <widget class="QListBox" row="2" column="0" rowspan="1" colspan="4">
+ <widget class="QLayoutWidget">
<property name="name">
- <cstring>LBNouvCommande</cstring>
+ <cstring>layout2</cstring>
</property>
- </widget>
- <widget class="QButtonGroup" row="0" column="3" rowspan="2" colspan="1">
- <property name="name">
- <cstring>buttonGroup1</cstring>
- </property>
- <property name="title">
- <string>Affichage</string>
- </property>
- <widget class="QRadioButton">
- <property name="name">
- <cstring>RBGroupe</cstring>
- </property>
- <property name="geometry">
- <rect>
- <x>20</x>
- <y>40</y>
- <width>101</width>
- <height>20</height>
- </rect>
- </property>
- <property name="text">
- <string>par groupe</string>
- </property>
- </widget>
- <widget class="QRadioButton">
+ <hbox>
<property name="name">
- <cstring>RBalpha</cstring>
+ <cstring>unnamed</cstring>
</property>
- <property name="geometry">
- <rect>
- <x>20</x>
- <y>20</y>
- <width>120</width>
- <height>20</height>
- </rect>
- </property>
- <property name="text">
- <string>alphabétique</string>
- </property>
- <property name="checked">
- <bool>true</bool>
- </property>
- </widget>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>layout1</cstring>
+ </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QLabel" row="0" column="0" rowspan="1" colspan="3">
+ <property name="name">
+ <cstring>textLabel1_4</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>3</hsizetype>
+ <vsizetype>5</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string><b><u>Commandes :</u></b></string>
+ </property>
+ </widget>
+ <widget class="QLabel" row="1" column="0">
+ <property name="name">
+ <cstring>textLabel6</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>5</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>50</width>
+ <height>30</height>
+ </size>
+ </property>
+ <property name="text">
+ <string>Filtre</string>
+ </property>
+ </widget>
+ <widget class="QLineEdit" row="1" column="1">
+ <property name="name">
+ <cstring>LEFiltre</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>3</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>30</width>
+ <height>30</height>
+ </size>
+ </property>
+ </widget>
+ <widget class="QToolButton" row="1" column="2">
+ <property name="name">
+ <cstring>BNext</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>3</hsizetype>
+ <vsizetype>1</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>20</width>
+ <height>30</height>
+ </size>
+ </property>
+ <property name="text">
+ <string>Suivant</string>
+ </property>
+ <property name="iconSet">
+ <iconset></iconset>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>affiche la prochaine occurence</string>
+ </property>
+ </widget>
+ </grid>
+ </widget>
+ <widget class="QButtonGroup">
+ <property name="name">
+ <cstring>buttonGroup1</cstring>
+ </property>
+ <property name="title">
+ <string>Affichage</string>
+ </property>
+ <widget class="QRadioButton">
+ <property name="name">
+ <cstring>RBalpha</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>20</x>
+ <y>20</y>
+ <width>110</width>
+ <height>20</height>
+ </rect>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>3</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>alphabétique</string>
+ </property>
+ <property name="checked">
+ <bool>true</bool>
+ </property>
+ </widget>
+ <widget class="QRadioButton">
+ <property name="name">
+ <cstring>RBGroupe</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>20</x>
+ <y>40</y>
+ <width>101</width>
+ <height>20</height>
+ </rect>
+ </property>
+ <property name="text">
+ <string>par groupe</string>
+ </property>
+ </widget>
+ </widget>
+ </hbox>
</widget>
- <widget class="QLabel" row="0" column="0" rowspan="1" colspan="3">
+ <widget class="QListBox">
<property name="name">
- <cstring>textLabel1_4</cstring>
- </property>
- <property name="text">
- <string><b><u>Commandes :</u></b></string>
+ <cstring>LBNouvCommande</cstring>
</property>
</widget>
- <widget class="QLabel" row="3" column="0" rowspan="1" colspan="4">
+ <widget class="QLabel">
<property name="name">
<cstring>textLabel4</cstring>
</property>
- <property name="text">
- <string>La commande choisie sera ajoutée APRES la commande courante</string>
- </property>
- </widget>
- <widget class="QLineEdit" row="1" column="1">
- <property name="name">
- <cstring>LEFiltre</cstring>
- </property>
- <property name="minimumSize">
- <size>
- <width>160</width>
- <height>30</height>
- </size>
- </property>
- </widget>
- <widget class="QToolButton" row="1" column="2">
- <property name="name">
- <cstring>BNext</cstring>
- </property>
- <property name="minimumSize">
- <size>
- <width>60</width>
- <height>30</height>
- </size>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>2</hsizetype>
+ <vsizetype>5</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
</property>
<property name="text">
- <string>Suivant</string>
- </property>
- <property name="iconSet">
- <iconset></iconset>
- </property>
- <property name="toolTip" stdset="0">
- <string>affiche la prochaine occurence</string>
- </property>
- </widget>
- <widget class="QLabel" row="1" column="0">
- <property name="name">
- <cstring>textLabel6</cstring>
- </property>
- <property name="minimumSize">
- <size>
- <width>50</width>
- <height>30</height>
- </size>
- </property>
- <property name="text">
- <string>Filtre</string>
+ <string>La commande choisie sera ajoutée APRES la commande courante</string>
</property>
</widget>
- </grid>
+ </vbox>
</widget>
</widget>
- <widget class="QPushButton" row="2" column="1">
- <property name="name">
- <cstring>bOk</cstring>
- </property>
- <property name="minimumSize">
- <size>
- <width>0</width>
- <height>30</height>
- </size>
- </property>
- <property name="text">
- <string>&Valider</string>
- </property>
- <property name="accel">
- <string>Shift+A, Alt+A, Alt+A, Alt+A</string>
- </property>
- <property name="autoDefault">
- <bool>true</bool>
- </property>
- <property name="default">
- <bool>true</bool>
- </property>
- <property name="toolTip" stdset="0">
- <string>validation de la saisie</string>
- </property>
- </widget>
- <widget class="QPushButton" row="2" column="0">
- <property name="name">
- <cstring>bSup</cstring>
- </property>
- <property name="minimumSize">
- <size>
- <width>0</width>
- <height>30</height>
- </size>
- </property>
- <property name="text">
- <string>&Supprimer</string>
- </property>
- <property name="accel">
- <string>Alt+S</string>
- </property>
- <property name="autoDefault">
- <bool>true</bool>
- </property>
- <property name="toolTip" stdset="0">
- <string>suppression du mot clef</string>
- </property>
- </widget>
- <widget class="QPushButton" row="2" column="2">
- <property name="name">
- <cstring>bHelp</cstring>
- </property>
- <property name="minimumSize">
- <size>
- <width>0</width>
- <height>30</height>
- </size>
- </property>
- <property name="text">
- <string>&Documentation</string>
- </property>
- <property name="accel">
- <string>Alt+D</string>
- </property>
- <property name="autoDefault">
- <bool>true</bool>
- </property>
- <property name="toolTip" stdset="0">
- <string>affichage documentation aster</string>
- </property>
- </widget>
- <widget class="QLabel" row="1" column="0" rowspan="1" colspan="3">
- <property name="name">
- <cstring>Commentaire</cstring>
- </property>
- <property name="frameShape">
- <enum>NoFrame</enum>
- </property>
- <property name="frameShadow">
- <enum>Plain</enum>
- </property>
- <property name="text">
- <string></string>
- </property>
- </widget>
</grid>
</widget>
<connections>
<receiver>DComment</receiver>
<slot>BNextPressed()</slot>
</connection>
- <connection>
- <sender>textCommentaire</sender>
- <signal>textChanged()</signal>
- <receiver>DComment</receiver>
- <slot>TexteCommentaireEntre()</slot>
- </connection>
</connections>
<tabstops>
<tabstop>LEFiltre</tabstop>
+++ /dev/null
-# -*- coding: utf-8 -*-
-
-# Form implementation generated from reading ui file 'desError.ui'
-#
-# Created: mar mar 25 10:05:08 2008
-# by: The PyQt User Interface Compiler (pyuic) 3.13
-#
-# WARNING! All changes made in this file will be lost!
-
-
-from qt import *
-
-
-class DError(QWidget):
- def __init__(self,parent = None,name = None,fl = 0):
- QWidget.__init__(self,parent,name,fl)
-
- if not name:
- self.setName("DError")
-
- self.setMinimumSize(QSize(350,0))
-
- DErrorLayout = QGridLayout(self,1,1,11,6,"DErrorLayout")
-
- self.textLabel1_3 = QLabel(self,"textLabel1_3")
-
- DErrorLayout.addWidget(self.textLabel1_3,0,0)
-
- layout1 = QHBoxLayout(None,0,6,"layout1")
- spacer1_2 = QSpacerItem(171,20,QSizePolicy.Expanding,QSizePolicy.Minimum)
- layout1.addItem(spacer1_2)
-
- self.bSup = QPushButton(self,"bSup")
- self.bSup.setAutoDefault(1)
- layout1.addWidget(self.bSup)
- spacer1 = QSpacerItem(171,20,QSizePolicy.Expanding,QSizePolicy.Minimum)
- layout1.addItem(spacer1)
-
- DErrorLayout.addLayout(layout1,1,0)
-
- self.languageChange()
-
- self.resize(QSize(482,480).expandedTo(self.minimumSizeHint()))
- self.clearWState(Qt.WState_Polished)
-
- self.connect(self.bSup,SIGNAL("clicked()"),self.BSupPressed)
-
-
- def languageChange(self):
- self.setCaption(self.__tr("DInactif"))
- self.textLabel1_3.setText(self.__trUtf8("\x3c\x66\x6f\x6e\x74\x20\x73\x69\x7a\x65\x3d\x22\x2b\x34\x22\x3e\x3c\x70\x20\x61\x6c\x69\x67\x6e\x3d\x22\x63\x65\x6e\x74\x65\x72\x22\x3e\x4c\x65\x20\x6e\x6f\x65\x75\x64\x20\x73\xc3\xa9\x6c\x65\x63\x74\x69\x6f\x6e\x6e\xc3\xa9\x20\x6e\x65\x20\x63\x6f\x72\x72\x65\x73\x70\x6f\x6e\x64\x20\x70\x61\x73\x20\xc3\xa0\x20\x75\x6e\x20\x6f\x62\x6a\x65\x74\x20\x61\x63\x74\x69\x66\x2e\x3c\x2f\x70\x3e\x3c\x2f\x66\x6f\x6e\x74\x3e"))
- self.bSup.setText(self.__tr("&Supprimer"))
- self.bSup.setAccel(self.__tr("Alt+S"))
- QToolTip.add(self.bSup,self.__tr("suppression du mot clef"))
-
-
- def BSupPressed(self):
- print "DError.BSupPressed(): Not implemented yet"
-
- def ViewDoc(self):
- print "DError.ViewDoc(): Not implemented yet"
-
- def BOkPressed(self):
- print "DError.BOkPressed(): Not implemented yet"
-
- def __tr(self,s,c = None):
- return qApp.translate("DError",s,c)
-
- def __trUtf8(self,s,c = None):
- return qApp.translate("DError",s,c,QApplication.UnicodeUTF8)
<rect>
<x>0</x>
<y>0</y>
- <width>482</width>
+ <width>538</width>
<height>480</height>
</rect>
</property>
<property name="name">
<cstring>textLabel1_3</cstring>
</property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>2</hsizetype>
+ <vsizetype>5</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
<property name="text">
<string><font size="+4"><p align="center">Le noeud sélectionné ne correspond pas à un objet actif.</p></font></string>
</property>
+++ /dev/null
-# -*- coding: utf-8 -*-
-
-# Form implementation generated from reading ui file 'desFormule.ui'
-#
-# Created: ven mai 16 13:30:38 2008
-# by: The PyQt User Interface Compiler (pyuic) 3.13
-#
-# WARNING! All changes made in this file will be lost!
-
-
-from qt import *
-
-
-class DFormule(QWidget):
- def __init__(self,parent = None,name = None,fl = 0):
- QWidget.__init__(self,parent,name,fl)
-
- if not name:
- self.setName("DFormule")
-
- self.setMinimumSize(QSize(505,0))
-
- DFormuleLayout = QGridLayout(self,1,1,11,6,"DFormuleLayout")
-
- layout4 = QHBoxLayout(None,0,6,"layout4")
-
- self.bSup = QPushButton(self,"bSup")
- self.bSup.setMinimumSize(QSize(0,30))
- self.bSup.setAutoDefault(1)
- layout4.addWidget(self.bSup)
-
- self.bOk = QPushButton(self,"bOk")
- self.bOk.setMinimumSize(QSize(0,30))
- self.bOk.setAutoDefault(1)
- self.bOk.setDefault(1)
- layout4.addWidget(self.bOk)
-
- self.bHelp = QPushButton(self,"bHelp")
- self.bHelp.setMinimumSize(QSize(0,30))
- self.bHelp.setAutoDefault(1)
- layout4.addWidget(self.bHelp)
-
- DFormuleLayout.addLayout(layout4,2,0)
-
- self.Commentaire = QLabel(self,"Commentaire")
-
- DFormuleLayout.addWidget(self.Commentaire,1,0)
-
- self.TWChoix = QTabWidget(self,"TWChoix")
-
- self.Formule = QWidget(self.TWChoix,"Formule")
- FormuleLayout = QGridLayout(self.Formule,1,1,11,6,"FormuleLayout")
-
- self.textLabel1 = QLabel(self.Formule,"textLabel1")
- self.textLabel1.setMinimumSize(QSize(0,0))
-
- FormuleLayout.addWidget(self.textLabel1,0,0)
-
- self.textLabel1_3 = QLabel(self.Formule,"textLabel1_3")
-
- FormuleLayout.addMultiCellWidget(self.textLabel1_3,6,6,0,1)
-
- layout6 = QHBoxLayout(None,0,6,"layout6")
-
- self.LENomFormule = QLineEdit(self.Formule,"LENomFormule")
- self.LENomFormule.setMinimumSize(QSize(0,40))
- layout6.addWidget(self.LENomFormule)
-
- layout4_2 = QHBoxLayout(None,0,6,"layout4_2")
-
- self.textLabel1_6 = QLabel(self.Formule,"textLabel1_6")
- layout4_2.addWidget(self.textLabel1_6)
-
- self.LENomsArgs = QLineEdit(self.Formule,"LENomsArgs")
- self.LENomsArgs.setMinimumSize(QSize(230,40))
- layout4_2.addWidget(self.LENomsArgs)
-
- self.textLabel1_6_2 = QLabel(self.Formule,"textLabel1_6_2")
- layout4_2.addWidget(self.textLabel1_6_2)
- layout6.addLayout(layout4_2)
-
- FormuleLayout.addMultiCellLayout(layout6,2,2,0,1)
-
- self.textLabel2 = QLabel(self.Formule,"textLabel2")
-
- FormuleLayout.addWidget(self.textLabel2,1,1)
-
- self.textLabel1_3_2 = QLabel(self.Formule,"textLabel1_3_2")
-
- FormuleLayout.addMultiCellWidget(self.textLabel1_3_2,7,7,0,1)
-
- self.textLabel2_2 = QLabel(self.Formule,"textLabel2_2")
-
- FormuleLayout.addMultiCellWidget(self.textLabel2_2,3,3,0,1)
-
- self.textLabel1_5 = QLabel(self.Formule,"textLabel1_5")
- self.textLabel1_5.setMinimumSize(QSize(0,0))
-
- FormuleLayout.addMultiCellWidget(self.textLabel1_5,4,4,0,1)
-
- self.LECorpsFormule = QLineEdit(self.Formule,"LECorpsFormule")
- self.LECorpsFormule.setMinimumSize(QSize(0,30))
-
- FormuleLayout.addMultiCellWidget(self.LECorpsFormule,5,5,0,1)
-
- self.textLabel1_2 = QLabel(self.Formule,"textLabel1_2")
-
- FormuleLayout.addWidget(self.textLabel1_2,0,1)
- self.TWChoix.insertTab(self.Formule,QString(""))
-
- self.Commande = QWidget(self.TWChoix,"Commande")
- CommandeLayout = QGridLayout(self.Commande,1,1,11,6,"CommandeLayout")
-
- self.textLabel4 = QLabel(self.Commande,"textLabel4")
-
- CommandeLayout.addMultiCellWidget(self.textLabel4,3,3,0,3)
-
- self.buttonGroup1 = QButtonGroup(self.Commande,"buttonGroup1")
-
- LayoutWidget = QWidget(self.buttonGroup1,"layout1")
- LayoutWidget.setGeometry(QRect(20,20,113,48))
- layout1 = QVBoxLayout(LayoutWidget,11,6,"layout1")
-
- self.RBalpha = QRadioButton(LayoutWidget,"RBalpha")
- self.RBalpha.setChecked(1)
- layout1.addWidget(self.RBalpha)
-
- self.RBGroupe = QRadioButton(LayoutWidget,"RBGroupe")
- layout1.addWidget(self.RBGroupe)
-
- CommandeLayout.addMultiCellWidget(self.buttonGroup1,0,1,3,3)
-
- self.LBNouvCommande = QListBox(self.Commande,"LBNouvCommande")
-
- CommandeLayout.addMultiCellWidget(self.LBNouvCommande,2,2,0,3)
-
- self.textLabel1_4 = QLabel(self.Commande,"textLabel1_4")
-
- CommandeLayout.addMultiCellWidget(self.textLabel1_4,0,0,0,2)
-
- self.textLabel6 = QLabel(self.Commande,"textLabel6")
- self.textLabel6.setMinimumSize(QSize(40,0))
-
- CommandeLayout.addWidget(self.textLabel6,1,0)
-
- self.LEFiltre = QLineEdit(self.Commande,"LEFiltre")
- self.LEFiltre.setMinimumSize(QSize(160,40))
-
- CommandeLayout.addWidget(self.LEFiltre,1,1)
-
- self.BNext = QToolButton(self.Commande,"BNext")
- self.BNext.setMinimumSize(QSize(60,40))
- self.BNext.setIconSet(QIconSet())
-
- CommandeLayout.addWidget(self.BNext,1,2)
- self.TWChoix.insertTab(self.Commande,QString(""))
-
- DFormuleLayout.addWidget(self.TWChoix,0,0)
-
- self.languageChange()
-
- self.resize(QSize(529,493).expandedTo(self.minimumSizeHint()))
- self.clearWState(Qt.WState_Polished)
-
- self.connect(self.LBNouvCommande,SIGNAL("doubleClicked(QListBoxItem*)"),self.LBNouvCommandeClicked)
- self.connect(self.LEFiltre,SIGNAL("textChanged(const QString&)"),self.LEFiltreTextChanged)
- self.connect(self.LEFiltre,SIGNAL("returnPressed()"),self.LEfiltreReturnPressed)
- self.connect(self.bSup,SIGNAL("pressed()"),self.BSupPressed)
- self.connect(self.bOk,SIGNAL("clicked()"),self.BOkPressed)
- self.connect(self.RBalpha,SIGNAL("clicked()"),self.BuildTabCommand)
- self.connect(self.RBGroupe,SIGNAL("clicked()"),self.BuildTabCommand)
- self.connect(self.BNext,SIGNAL("clicked()"),self.BNextPressed)
- self.connect(self.LENomFormule,SIGNAL("returnPressed()"),self.NomFormuleSaisi)
- self.connect(self.LENomsArgs,SIGNAL("returnPressed()"),self.argsSaisis)
- self.connect(self.LECorpsFormule,SIGNAL("returnPressed()"),self.FormuleSaisie)
- self.connect(self.bHelp,SIGNAL("clicked()"),self.ViewDoc)
-
- self.setTabOrder(self.LEFiltre,self.LENomFormule)
- self.setTabOrder(self.LENomFormule,self.LENomsArgs)
- self.setTabOrder(self.LENomsArgs,self.LECorpsFormule)
- self.setTabOrder(self.LECorpsFormule,self.bSup)
- self.setTabOrder(self.bSup,self.bOk)
- self.setTabOrder(self.bOk,self.bHelp)
- self.setTabOrder(self.bHelp,self.TWChoix)
- self.setTabOrder(self.TWChoix,self.RBalpha)
- self.setTabOrder(self.RBalpha,self.RBGroupe)
- self.setTabOrder(self.RBGroupe,self.LBNouvCommande)
-
-
- def languageChange(self):
- self.setCaption(self.__tr("DMacro"))
- self.bSup.setText(self.__tr("&Supprimer"))
- self.bSup.setAccel(self.__tr("Alt+S"))
- QToolTip.add(self.bSup,self.__tr("suppression du mot clef"))
- self.bOk.setText(self.__tr("&Valider"))
- self.bOk.setAccel(self.__tr("Shift+A, Alt+A, Alt+A, Alt+A"))
- QToolTip.add(self.bOk,self.__tr("validation de la saisie"))
- self.bHelp.setText(self.__tr("&Documentation"))
- self.bHelp.setAccel(self.__tr("Alt+D"))
- QToolTip.add(self.bHelp,self.__tr("affichage documentation aster"))
- self.Commentaire.setText(QString.null)
- self.textLabel1.setText(self.__tr("<h3><p align=\"center\"><u><b>Nom de la formule</b></u></p></h3>"))
- self.textLabel1_3.setText(self.__trUtf8("\x52\x65\x74\x6f\x75\x72\x2d\x43\x68\x61\x72\x69\x6f\x74\x20\x70\x65\x72\x6d\x65\x74\x20\x64\x65\x20\x76\xc3\xa9\x72\x69\x66\x69\x65\x72\x20\x71\x75\x65\x20\x6c\x27\x65\x78\x70\x72\x65\x73\x73\x69\x6f\x6e\x20\x65\x73\x74\x20\x76\x61\x6c\x69\x64\x65\x2e"))
- self.textLabel1_6.setText(self.__tr("<h1><b>(</b></h1>"))
- self.textLabel1_6_2.setText(self.__tr("<h1><b>)</b></h1>"))
- self.textLabel2.setText(self.__trUtf8("\x76\x61\x72\x69\x61\x62\x6c\x65\x73\x20\x73\xc3\xa9\x70\x61\x72\xc3\xa9\x65\x73\x20\x70\x61\x72\x20\x64\x65\x73\x20\x22\x2c\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x72\x20\x65\x78\x2e\x20\x3a\x20\x78\x2c\x79\x2c\x7a"))
- self.textLabel1_3_2.setText(self.__trUtf8("\x43\x65\x20\x6e\x27\x65\x73\x74\x20\x71\x75\x27\x61\x70\x72\xc3\xa8\x73\x20\x61\x76\x6f\x69\x72\x20\x61\x70\x70\x75\x79\xc3\xa9\x20\x73\x75\x72\x20\x6c\x65\x20\x62\x6f\x75\x74\x6f\x6e\x20\x56\x61\x6c\x69\x64\x65\x72\x20\x71\x75\x65\x20\x6c\x65\x73\x20\x6e\x6f\x75\x76\x65\x6c\x6c\x65\x73\x0a\x76\x61\x6c\x65\x75\x72\x73\x20\x73\x65\x72\x6f\x6e\x74\x20\x65\x66\x66\x65\x63\x74\x69\x76\x65\x6d\x65\x6e\x74\x20\x70\x72\x69\x73\x65\x73\x20\x65\x6e\x20\x63\x6f\x6d\x70\x74\x65"))
- self.textLabel2_2.setText(self.__tr("<font size=\"+4\" face=\"Helvetica\"><b>=</b></font>"))
- self.textLabel1_5.setText(self.__tr("<h3><p align=\"center\"><u><b>Expression</b></u></p></h3>"))
- self.textLabel1_2.setText(self.__tr("<h3><p align=\"center\"><u><b>Arguments</b></u></p></h3>"))
- self.TWChoix.changeTab(self.Formule,self.__trUtf8("\x44\xc3\xa9\x66\x69\x6e\x69\x74\x69\x6f\x6e\x20\x46\x6f\x72\x6d\x75\x6c\x65"))
- self.textLabel4.setText(self.__trUtf8("\x3c\x70\x20\x61\x6c\x69\x67\x6e\x3d\x22\x6c\x65\x66\x74\x22\x3e\x4c\x61\x20\x63\x6f\x6d\x6d\x61\x6e\x64\x65\x20\x63\x68\x6f\x69\x73\x69\x65\x20\x73\x65\x72\x61\x20\x61\x6a\x6f\x75\x74\xc3\xa9\x65\x20\x41\x50\x52\x45\x53\x20\x6c\x61\x20\x63\x6f\x6d\x6d\x61\x6e\x64\x65\x20\x63\x6f\x75\x72\x61\x6e\x74\x65\x3c\x2f\x70\x3e"))
- self.buttonGroup1.setTitle(self.__tr("Affichage"))
- self.RBalpha.setText(self.__trUtf8("\x61\x6c\x70\x68\x61\x62\xc3\xa9\x74\x69\x71\x75\x65"))
- self.RBGroupe.setText(self.__tr("par groupe"))
- self.textLabel1_4.setText(self.__tr("<b><u>Commandes :</u></b>"))
- self.textLabel6.setText(self.__tr("Filtre"))
- self.BNext.setText(self.__tr("Suivant"))
- QToolTip.add(self.BNext,self.__tr("affiche la prochaine occurence"))
- self.TWChoix.changeTab(self.Commande,self.__tr("Nouvelle Commande"))
-
-
- def LBNouvCommandeClicked(self):
- print "DFormule.LBNouvCommandeClicked(): Not implemented yet"
-
- def LEFiltreTextChanged(self):
- print "DFormule.LEFiltreTextChanged(): Not implemented yet"
-
- def LEfiltreReturnPressed(self):
- print "DFormule.LEfiltreReturnPressed(): Not implemented yet"
-
- def BSupPressed(self):
- print "DFormule.BSupPressed(): Not implemented yet"
-
- def BOkPressed(self):
- print "DFormule.BOkPressed(): Not implemented yet"
-
- def BuildTabCommand(self):
- print "DFormule.BuildTabCommand(): Not implemented yet"
-
- def BNextPressed(self):
- print "DFormule.BNextPressed(): Not implemented yet"
-
- def NomFormuleSaisi(self):
- print "DFormule.NomFormuleSaisi(): Not implemented yet"
-
- def argsSaisis(self):
- print "DFormule.argsSaisis(): Not implemented yet"
-
- def FormuleSaisie(self):
- print "DFormule.FormuleSaisie(): Not implemented yet"
-
- def ViewDoc(self):
- print "DFormule.ViewDoc(): Not implemented yet"
-
- def __tr(self,s,c = None):
- return qApp.translate("DFormule",s,c)
-
- def __trUtf8(self,s,c = None):
- return qApp.translate("DFormule",s,c,QApplication.UnicodeUTF8)
<rect>
<x>0</x>
<y>0</y>
- <width>529</width>
+ <width>537</width>
<height>493</height>
</rect>
</property>
<attribute name="title">
<string>Définition Formule</string>
</attribute>
- <grid>
+ <widget class="QLabel">
<property name="name">
- <cstring>unnamed</cstring>
+ <cstring>textLabel1</cstring>
</property>
- <widget class="QLabel" row="0" column="0">
- <property name="name">
- <cstring>textLabel1</cstring>
- </property>
- <property name="minimumSize">
- <size>
- <width>0</width>
- <height>0</height>
- </size>
- </property>
- <property name="text">
- <string><h3><p align="center"><u><b>Nom de la formule</b></u></p></h3></string>
- </property>
- </widget>
- <widget class="QLabel" row="6" column="0" rowspan="1" colspan="2">
- <property name="name">
- <cstring>textLabel1_3</cstring>
- </property>
- <property name="text">
- <string>Retour-Chariot permet de vérifier que l'expression est valide.</string>
- </property>
- </widget>
- <widget class="QLayoutWidget" row="2" column="0" rowspan="1" colspan="2">
+ <property name="geometry">
+ <rect>
+ <x>11</x>
+ <y>11</y>
+ <width>242</width>
+ <height>40</height>
+ </rect>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>0</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="text">
+ <string><h3><p align="center"><u><b>Nom de la formule</b></u></p></h3></string>
+ </property>
+ </widget>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>layout6</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>11</x>
+ <y>103</y>
+ <width>489</width>
+ <height>44</height>
+ </rect>
+ </property>
+ <hbox>
<property name="name">
- <cstring>layout6</cstring>
+ <cstring>unnamed</cstring>
</property>
- <hbox>
+ <widget class="QLineEdit">
<property name="name">
- <cstring>unnamed</cstring>
+ <cstring>LENomFormule</cstring>
</property>
- <widget class="QLineEdit">
- <property name="name">
- <cstring>LENomFormule</cstring>
- </property>
- <property name="minimumSize">
- <size>
- <width>0</width>
- <height>40</height>
- </size>
- </property>
- </widget>
- <widget class="QLayoutWidget">
+ <property name="minimumSize">
+ <size>
+ <width>0</width>
+ <height>40</height>
+ </size>
+ </property>
+ </widget>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>layout4</cstring>
+ </property>
+ <hbox>
<property name="name">
- <cstring>layout4</cstring>
+ <cstring>unnamed</cstring>
</property>
- <hbox>
+ <widget class="QLabel">
<property name="name">
- <cstring>unnamed</cstring>
+ <cstring>textLabel1_6</cstring>
</property>
- <widget class="QLabel">
- <property name="name">
- <cstring>textLabel1_6</cstring>
- </property>
- <property name="text">
- <string><h1><b>(</b></h1></string>
- </property>
- </widget>
- <widget class="QLineEdit">
- <property name="name">
- <cstring>LENomsArgs</cstring>
- </property>
- <property name="minimumSize">
- <size>
- <width>230</width>
- <height>40</height>
- </size>
- </property>
- </widget>
- <widget class="QLabel">
- <property name="name">
- <cstring>textLabel1_6_2</cstring>
- </property>
- <property name="text">
- <string><h1><b>)</b></h1></string>
- </property>
- </widget>
- </hbox>
- </widget>
- </hbox>
- </widget>
- <widget class="QLabel" row="1" column="1">
- <property name="name">
- <cstring>textLabel2</cstring>
- </property>
- <property name="text">
- <string>variables séparées par des ","
+ <property name="text">
+ <string><h1><b>(</b></h1></string>
+ </property>
+ </widget>
+ <widget class="QLineEdit">
+ <property name="name">
+ <cstring>LENomsArgs</cstring>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>230</width>
+ <height>40</height>
+ </size>
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>textLabel1_6_2</cstring>
+ </property>
+ <property name="text">
+ <string><h1><b>)</b></h1></string>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ </hbox>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>textLabel2</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>259</x>
+ <y>57</y>
+ <width>241</width>
+ <height>40</height>
+ </rect>
+ </property>
+ <property name="text">
+ <string>variables séparées par des ","
par ex. : x,y,z</string>
- </property>
- </widget>
- <widget class="QLabel" row="7" column="0" rowspan="1" colspan="2">
- <property name="name">
- <cstring>textLabel1_3_2</cstring>
- </property>
- <property name="text">
- <string>Ce n'est qu'après avoir appuyé sur le bouton Valider que les nouvelles
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>textLabel2_2</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>11</x>
+ <y>153</y>
+ <width>489</width>
+ <height>39</height>
+ </rect>
+ </property>
+ <property name="text">
+ <string><font size="+4" face="Helvetica"><b>=</b></font></string>
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>textLabel1_5</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>11</x>
+ <y>198</y>
+ <width>489</width>
+ <height>40</height>
+ </rect>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>0</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="text">
+ <string><h3><p align="center"><u><b>Expression</b></u></p></h3></string>
+ </property>
+ </widget>
+ <widget class="QLineEdit">
+ <property name="name">
+ <cstring>LECorpsFormule</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>11</x>
+ <y>244</y>
+ <width>489</width>
+ <height>30</height>
+ </rect>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>0</width>
+ <height>30</height>
+ </size>
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>textLabel1_2</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>259</x>
+ <y>11</y>
+ <width>241</width>
+ <height>40</height>
+ </rect>
+ </property>
+ <property name="text">
+ <string><h3><p align="center"><u><b>Arguments</b></u></p></h3></string>
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>textLabel1_3_2</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>11</x>
+ <y>326</y>
+ <width>470</width>
+ <height>40</height>
+ </rect>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>3</hsizetype>
+ <vsizetype>5</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Ce n'est qu'après avoir appuyé sur le bouton Valider que les nouvelles
valeurs seront effectivement prises en compte</string>
- </property>
- </widget>
- <widget class="QLabel" row="3" column="0" rowspan="1" colspan="2">
- <property name="name">
- <cstring>textLabel2_2</cstring>
- </property>
- <property name="text">
- <string><font size="+4" face="Helvetica"><b>=</b></font></string>
- </property>
- </widget>
- <widget class="QLabel" row="4" column="0" rowspan="1" colspan="2">
- <property name="name">
- <cstring>textLabel1_5</cstring>
- </property>
- <property name="minimumSize">
- <size>
- <width>0</width>
- <height>0</height>
- </size>
- </property>
- <property name="text">
- <string><h3><p align="center"><u><b>Expression</b></u></p></h3></string>
- </property>
- </widget>
- <widget class="QLineEdit" row="5" column="0" rowspan="1" colspan="2">
- <property name="name">
- <cstring>LECorpsFormule</cstring>
- </property>
- <property name="minimumSize">
- <size>
- <width>0</width>
- <height>30</height>
- </size>
- </property>
- </widget>
- <widget class="QLabel" row="0" column="1">
- <property name="name">
- <cstring>textLabel1_2</cstring>
- </property>
- <property name="text">
- <string><h3><p align="center"><u><b>Arguments</b></u></p></h3></string>
- </property>
- </widget>
- </grid>
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>textLabel1_3</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>11</x>
+ <y>280</y>
+ <width>460</width>
+ <height>40</height>
+ </rect>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>2</hsizetype>
+ <vsizetype>5</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Retour-Chariot permet de vérifier que l'expression est valide.</string>
+ </property>
+ </widget>
</widget>
<widget class="QWidget">
<property name="name">
<attribute name="title">
<string>Nouvelle Commande</string>
</attribute>
- <grid>
+ <widget class="QLabel">
<property name="name">
- <cstring>unnamed</cstring>
+ <cstring>textLabel6</cstring>
</property>
- <widget class="QLabel" row="3" column="0" rowspan="1" colspan="4">
- <property name="name">
- <cstring>textLabel4</cstring>
- </property>
- <property name="text">
- <string><p align="left">La commande choisie sera ajoutée APRES la commande courante</p></string>
- </property>
- </widget>
- <widget class="QButtonGroup" row="0" column="3" rowspan="2" colspan="1">
+ <property name="geometry">
+ <rect>
+ <x>11</x>
+ <y>59</y>
+ <width>40</width>
+ <height>40</height>
+ </rect>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>40</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="text">
+ <string>Filtre</string>
+ </property>
+ </widget>
+ <widget class="QToolButton">
+ <property name="name">
+ <cstring>BNext</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>249</x>
+ <y>59</y>
+ <width>60</width>
+ <height>40</height>
+ </rect>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>60</width>
+ <height>40</height>
+ </size>
+ </property>
+ <property name="text">
+ <string>Suivant</string>
+ </property>
+ <property name="iconSet">
+ <iconset></iconset>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>affiche la prochaine occurence</string>
+ </property>
+ </widget>
+ <widget class="QListBox">
+ <property name="name">
+ <cstring>LBNouvCommande</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>11</x>
+ <y>105</y>
+ <width>490</width>
+ <height>234</height>
+ </rect>
+ </property>
+ </widget>
+ <widget class="QLineEdit">
+ <property name="name">
+ <cstring>LEFiltre</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>57</x>
+ <y>59</y>
+ <width>180</width>
+ <height>40</height>
+ </rect>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>20</width>
+ <height>40</height>
+ </size>
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>textLabel1_4</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>11</x>
+ <y>11</y>
+ <width>260</width>
+ <height>42</height>
+ </rect>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>2</hsizetype>
+ <vsizetype>2</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string><b><u>Commandes :</u></b></string>
+ </property>
+ </widget>
+ <widget class="QButtonGroup">
+ <property name="name">
+ <cstring>buttonGroup1</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>315</x>
+ <y>11</y>
+ <width>180</width>
+ <height>86</height>
+ </rect>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>3</hsizetype>
+ <vsizetype>5</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="title">
+ <string>Affichage</string>
+ </property>
+ <grid>
<property name="name">
- <cstring>buttonGroup1</cstring>
- </property>
- <property name="title">
- <string>Affichage</string>
+ <cstring>unnamed</cstring>
</property>
- <widget class="QLayoutWidget">
+ <widget class="QLayoutWidget" row="0" column="0">
<property name="name">
<cstring>layout1</cstring>
</property>
- <property name="geometry">
- <rect>
- <x>20</x>
- <y>20</y>
- <width>113</width>
- <height>48</height>
- </rect>
- </property>
<vbox>
<property name="name">
<cstring>unnamed</cstring>
</widget>
</vbox>
</widget>
- </widget>
- <widget class="QListBox" row="2" column="0" rowspan="1" colspan="4">
- <property name="name">
- <cstring>LBNouvCommande</cstring>
- </property>
- </widget>
- <widget class="QLabel" row="0" column="0" rowspan="1" colspan="3">
- <property name="name">
- <cstring>textLabel1_4</cstring>
- </property>
- <property name="text">
- <string><b><u>Commandes :</u></b></string>
- </property>
- </widget>
- <widget class="QLabel" row="1" column="0">
- <property name="name">
- <cstring>textLabel6</cstring>
- </property>
- <property name="minimumSize">
- <size>
- <width>40</width>
- <height>0</height>
- </size>
- </property>
- <property name="text">
- <string>Filtre</string>
- </property>
- </widget>
- <widget class="QLineEdit" row="1" column="1">
- <property name="name">
- <cstring>LEFiltre</cstring>
- </property>
- <property name="minimumSize">
- <size>
- <width>160</width>
- <height>40</height>
- </size>
- </property>
- </widget>
- <widget class="QToolButton" row="1" column="2">
- <property name="name">
- <cstring>BNext</cstring>
- </property>
- <property name="minimumSize">
- <size>
- <width>60</width>
- <height>40</height>
- </size>
- </property>
- <property name="text">
- <string>Suivant</string>
- </property>
- <property name="iconSet">
- <iconset></iconset>
- </property>
- <property name="toolTip" stdset="0">
- <string>affiche la prochaine occurence</string>
- </property>
- </widget>
- </grid>
+ </grid>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>textLabel4</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>340</y>
+ <width>480</width>
+ <height>21</height>
+ </rect>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>3</hsizetype>
+ <vsizetype>5</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string><p align="left">La commande choisie sera ajoutée APRES la commande courante</p></string>
+ </property>
+ </widget>
</widget>
</widget>
</grid>
+++ /dev/null
-# -*- coding: utf-8 -*-
-
-# Form implementation generated from reading ui file 'desInactif.ui'
-#
-# Created: mar mar 25 10:05:08 2008
-# by: The PyQt User Interface Compiler (pyuic) 3.13
-#
-# WARNING! All changes made in this file will be lost!
-
-
-from qt import *
-
-
-class DInactif(QWidget):
- def __init__(self,parent = None,name = None,fl = 0):
- QWidget.__init__(self,parent,name,fl)
-
- if not name:
- self.setName("DInactif")
-
- self.setMinimumSize(QSize(350,0))
-
- DInactifLayout = QGridLayout(self,1,1,11,6,"DInactifLayout")
-
- self.textLabel1_3 = QLabel(self,"textLabel1_3")
-
- DInactifLayout.addWidget(self.textLabel1_3,0,0)
-
- self.textLabel1 = QLabel(self,"textLabel1")
-
- DInactifLayout.addWidget(self.textLabel1,1,0)
-
- layout1 = QHBoxLayout(None,0,6,"layout1")
- spacer2 = QSpacerItem(171,20,QSizePolicy.Expanding,QSizePolicy.Minimum)
- layout1.addItem(spacer2)
-
- self.bSup = QPushButton(self,"bSup")
- self.bSup.setAutoDefault(1)
- layout1.addWidget(self.bSup)
- spacer1 = QSpacerItem(171,20,QSizePolicy.Expanding,QSizePolicy.Minimum)
- layout1.addItem(spacer1)
-
- DInactifLayout.addLayout(layout1,2,0)
-
- self.languageChange()
-
- self.resize(QSize(482,480).expandedTo(self.minimumSizeHint()))
- self.clearWState(Qt.WState_Polished)
-
- self.connect(self.bSup,SIGNAL("clicked()"),self.BSupPressed)
-
-
- def languageChange(self):
- self.setCaption(self.__tr("DInactif"))
- self.textLabel1_3.setText(self.__trUtf8("\x3c\x66\x6f\x6e\x74\x20\x73\x69\x7a\x65\x3d\x22\x2b\x32\x22\x3e\x3c\x70\x20\x61\x6c\x69\x67\x6e\x3d\x22\x63\x65\x6e\x74\x65\x72\x22\x3e\x4c\x65\x20\x6e\x6f\x65\x75\x64\x20\x73\xc3\xa9\x6c\x65\x63\x74\x69\x6f\x6e\x6e\xc3\xa9\x20\x6e\x65\x20\x63\x6f\x72\x72\x65\x73\x70\x6f\x6e\x64\x20\x70\x61\x73\x20\xc3\xa0\x20\x75\x6e\x20\x6f\x62\x6a\x65\x74\x20\x61\x63\x74\x69\x66\x2e\x3c\x2f\x70\x3e\x3c\x2f\x66\x6f\x6e\x74\x3e"))
- self.textLabel1.setText(self.__trUtf8("\x3c\x66\x6f\x6e\x74\x20\x73\x69\x7a\x65\x3d\x22\x2b\x32\x22\x3e\x3c\x70\x20\x61\x6c\x69\x67\x6e\x3d\x22\x63\x65\x6e\x74\x65\x72\x22\x3e\x0a\x53\x65\x75\x6c\x65\x73\x20\x6c\x65\x73\x20\x63\x6f\x6d\x6d\x61\x6e\x64\x65\x73\x20\x70\x6c\x61\x63\xc3\xa9\x65\x73\x20\x65\x6e\x74\x72\x65\x20\x3a\x0a\x0a\x44\x45\x42\x55\x54\x20\x2f\x20\x46\x49\x4e\x0a\x0a\x73\x6f\x6e\x74\x20\x61\x63\x74\x69\x76\x65\x73\x0a\x3c\x2f\x70\x3e\x3c\x2f\x66\x6f\x6e\x74\x3e"))
- self.bSup.setText(self.__tr("&Supprimer"))
- self.bSup.setAccel(self.__tr("Alt+S"))
- QToolTip.add(self.bSup,self.__tr("suppression du mot clef"))
-
-
- def BSupPressed(self):
- print "DInactif.BSupPressed(): Not implemented yet"
-
- def ViewDoc(self):
- print "DInactif.ViewDoc(): Not implemented yet"
-
- def BOkPressed(self):
- print "DInactif.BOkPressed(): Not implemented yet"
-
- def __tr(self,s,c = None):
- return qApp.translate("DInactif",s,c)
-
- def __trUtf8(self,s,c = None):
- return qApp.translate("DInactif",s,c,QApplication.UnicodeUTF8)
<rect>
<x>0</x>
<y>0</y>
- <width>482</width>
+ <width>635</width>
<height>480</height>
</rect>
</property>
<property name="name">
<cstring>textLabel1_3</cstring>
</property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>2</hsizetype>
+ <vsizetype>5</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
<property name="text">
<string><font size="+2"><p align="center">Le noeud sélectionné ne correspond pas à un objet actif.</p></font></string>
</property>
<property name="name">
<cstring>textLabel1</cstring>
</property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>2</hsizetype>
+ <vsizetype>5</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
<property name="text">
<string><font size="+2"><p align="center">
Seules les commandes placées entre :
+++ /dev/null
-# -*- coding: utf-8 -*-
-
-# Form implementation generated from reading ui file 'desInclude.ui'
-#
-# Created: ven mai 16 13:30:38 2008
-# by: The PyQt User Interface Compiler (pyuic) 3.13
-#
-# WARNING! All changes made in this file will be lost!
-
-
-from qt import *
-
-
-class DInc1(QWidget):
- def __init__(self,parent = None,name = None,fl = 0):
- QWidget.__init__(self,parent,name,fl)
-
- if not name:
- self.setName("DInc1")
-
- self.setMinimumSize(QSize(505,0))
-
- DInc1Layout = QGridLayout(self,1,1,11,6,"DInc1Layout")
-
- self.bOk = QPushButton(self,"bOk")
- self.bOk.setMinimumSize(QSize(0,30))
- self.bOk.setAutoDefault(1)
- self.bOk.setDefault(1)
-
- DInc1Layout.addWidget(self.bOk,2,1)
-
- self.bHelp = QPushButton(self,"bHelp")
- self.bHelp.setMinimumSize(QSize(0,30))
- self.bHelp.setAutoDefault(1)
-
- DInc1Layout.addWidget(self.bHelp,2,2)
-
- self.bSup = QPushButton(self,"bSup")
- self.bSup.setMinimumSize(QSize(0,30))
- self.bSup.setAutoDefault(1)
-
- DInc1Layout.addWidget(self.bSup,2,0)
-
- self.Commentaire = QLabel(self,"Commentaire")
-
- DInc1Layout.addMultiCellWidget(self.Commentaire,1,1,0,2)
-
- self.TWChoix = QTabWidget(self,"TWChoix")
-
- self.MotClef = QWidget(self.TWChoix,"MotClef")
- MotClefLayout = QGridLayout(self.MotClef,1,1,11,6,"MotClefLayout")
-
- self.LBMCPermis = QListBox(self.MotClef,"LBMCPermis")
- self.LBMCPermis.setMinimumSize(QSize(0,0))
-
- MotClefLayout.addWidget(self.LBMCPermis,1,0)
-
- self.textLabel1 = QLabel(self.MotClef,"textLabel1")
- self.textLabel1.setMinimumSize(QSize(0,0))
-
- MotClefLayout.addWidget(self.textLabel1,0,0)
-
- self.LBRegles = QListBox(self.MotClef,"LBRegles")
-
- MotClefLayout.addWidget(self.LBRegles,1,1)
-
- self.textLabel1_2 = QLabel(self.MotClef,"textLabel1_2")
-
- MotClefLayout.addWidget(self.textLabel1_2,0,1)
- self.TWChoix.insertTab(self.MotClef,QString(""))
-
- self.Commande = QWidget(self.TWChoix,"Commande")
- CommandeLayout = QGridLayout(self.Commande,1,1,11,6,"CommandeLayout")
-
- self.LBNouvCommande = QListBox(self.Commande,"LBNouvCommande")
-
- CommandeLayout.addMultiCellWidget(self.LBNouvCommande,2,2,0,3)
-
- self.buttonGroup1 = QButtonGroup(self.Commande,"buttonGroup1")
-
- self.RBGroupe = QRadioButton(self.buttonGroup1,"RBGroupe")
- self.RBGroupe.setGeometry(QRect(20,40,101,20))
-
- self.RBalpha = QRadioButton(self.buttonGroup1,"RBalpha")
- self.RBalpha.setGeometry(QRect(20,20,120,20))
- self.RBalpha.setChecked(1)
-
- CommandeLayout.addMultiCellWidget(self.buttonGroup1,0,1,3,3)
-
- self.textLabel4 = QLabel(self.Commande,"textLabel4")
-
- CommandeLayout.addMultiCellWidget(self.textLabel4,3,3,0,3)
-
- self.textLabel1_4 = QLabel(self.Commande,"textLabel1_4")
-
- CommandeLayout.addMultiCellWidget(self.textLabel1_4,0,0,0,2)
-
- self.textLabel6 = QLabel(self.Commande,"textLabel6")
- self.textLabel6.setMinimumSize(QSize(40,0))
-
- CommandeLayout.addWidget(self.textLabel6,1,0)
-
- self.LEFiltre = QLineEdit(self.Commande,"LEFiltre")
- self.LEFiltre.setMinimumSize(QSize(160,40))
-
- CommandeLayout.addWidget(self.LEFiltre,1,1)
-
- self.BNext = QToolButton(self.Commande,"BNext")
- self.BNext.setMinimumSize(QSize(60,0))
- self.BNext.setIconSet(QIconSet())
-
- CommandeLayout.addWidget(self.BNext,1,2)
- self.TWChoix.insertTab(self.Commande,QString(""))
-
- self.TabPage = QWidget(self.TWChoix,"TabPage")
-
- self.textLabel1_3 = QLabel(self.TabPage,"textLabel1_3")
- self.textLabel1_3.setGeometry(QRect(30,40,440,41))
-
- self.LENomFichier = QLineEdit(self.TabPage,"LENomFichier")
- self.LENomFichier.setGeometry(QRect(18,117,450,40))
- self.LENomFichier.setSizePolicy(QSizePolicy(0,0,0,0,self.LENomFichier.sizePolicy().hasHeightForWidth()))
- self.LENomFichier.setMinimumSize(QSize(450,40))
-
- self.BBrowse = QPushButton(self.TabPage,"BBrowse")
- self.BBrowse.setGeometry(QRect(288,306,161,41))
- self.BBrowse.setSizePolicy(QSizePolicy(0,0,0,0,self.BBrowse.sizePolicy().hasHeightForWidth()))
-
- self.BChangeFile = QPushButton(self.TabPage,"BChangeFile")
- self.BChangeFile.setGeometry(QRect(290,350,161,41))
- self.BChangeFile.setSizePolicy(QSizePolicy(0,0,0,0,self.BChangeFile.sizePolicy().hasHeightForWidth()))
- self.TWChoix.insertTab(self.TabPage,QString(""))
-
- self.TabPage_2 = QWidget(self.TWChoix,"TabPage_2")
- TabPageLayout = QGridLayout(self.TabPage_2,1,1,11,6,"TabPageLayout")
-
- self.textLabel1_5 = QLabel(self.TabPage_2,"textLabel1_5")
-
- TabPageLayout.addWidget(self.textLabel1_5,0,0)
- self.TWChoix.insertTab(self.TabPage_2,QString(""))
-
- DInc1Layout.addMultiCellWidget(self.TWChoix,0,0,0,2)
-
- self.languageChange()
-
- self.resize(QSize(521,511).expandedTo(self.minimumSizeHint()))
- self.clearWState(Qt.WState_Polished)
-
- self.connect(self.LBNouvCommande,SIGNAL("doubleClicked(QListBoxItem*)"),self.LBNouvCommandeClicked)
- self.connect(self.LEFiltre,SIGNAL("textChanged(const QString&)"),self.LEFiltreTextChanged)
- self.connect(self.LEFiltre,SIGNAL("returnPressed()"),self.LEfiltreReturnPressed)
- self.connect(self.bSup,SIGNAL("pressed()"),self.BSupPressed)
- self.connect(self.bOk,SIGNAL("clicked()"),self.BOkPressed)
- self.connect(self.RBalpha,SIGNAL("clicked()"),self.BuildTabCommand)
- self.connect(self.RBGroupe,SIGNAL("clicked()"),self.BuildTabCommand)
- self.connect(self.BNext,SIGNAL("clicked()"),self.BNextPressed)
- self.connect(self.BBrowse,SIGNAL("clicked()"),self.BBrowsePressed)
- self.connect(self.LENomFichier,SIGNAL("returnPressed()"),self.LENomFichReturnPressed)
- self.connect(self.bHelp,SIGNAL("clicked()"),self.ViewDoc)
-
- self.setTabOrder(self.LEFiltre,self.LENomFichier)
- self.setTabOrder(self.LENomFichier,self.bHelp)
- self.setTabOrder(self.bHelp,self.bSup)
- self.setTabOrder(self.bSup,self.bOk)
- self.setTabOrder(self.bOk,self.TWChoix)
- self.setTabOrder(self.TWChoix,self.LBMCPermis)
- self.setTabOrder(self.LBMCPermis,self.LBRegles)
- self.setTabOrder(self.LBRegles,self.LBNouvCommande)
- self.setTabOrder(self.LBNouvCommande,self.RBalpha)
- self.setTabOrder(self.RBalpha,self.BBrowse)
- self.setTabOrder(self.BBrowse,self.BChangeFile)
-
-
- def languageChange(self):
- self.setCaption(self.__tr("DMacro"))
- self.bOk.setText(self.__tr("&Valider"))
- self.bOk.setAccel(self.__tr("Shift+A, Alt+A, Alt+A, Alt+A"))
- QToolTip.add(self.bOk,self.__tr("validation de la saisie"))
- self.bHelp.setText(self.__tr("&Documentation"))
- self.bHelp.setAccel(self.__tr("Alt+D"))
- QToolTip.add(self.bHelp,self.__tr("affichage documentation aster"))
- self.bSup.setText(self.__tr("&Supprimer"))
- self.bSup.setAccel(self.__tr("Alt+S"))
- QToolTip.add(self.bSup,self.__tr("suppression du mot clef"))
- self.Commentaire.setText(QString.null)
- self.textLabel1.setText(self.__tr("<h3><p align=\"center\"><u><b>Mots Clefs Permis</b></u></p></h3>"))
- self.textLabel1_2.setText(self.__trUtf8("\x3c\x68\x33\x3e\x3c\x70\x20\x61\x6c\x69\x67\x6e\x3d\x22\x63\x65\x6e\x74\x65\x72\x22\x3e\x3c\x75\x3e\x3c\x62\x3e\x52\xc3\xa9\x67\x6c\x65\x73\x3c\x2f\x62\x3e\x3c\x2f\x75\x3e\x3c\x2f\x70\x3e\x3c\x2f\x68\x33\x3e"))
- self.TWChoix.changeTab(self.MotClef,self.__tr("Ajouter Mot-Clef"))
- self.buttonGroup1.setTitle(self.__tr("Affichage"))
- self.RBGroupe.setText(self.__tr("par groupe"))
- self.RBalpha.setText(self.__trUtf8("\x61\x6c\x70\x68\x61\x62\xc3\xa9\x74\x69\x71\x75\x65"))
- self.textLabel4.setText(self.__trUtf8("\x4c\x61\x20\x63\x6f\x6d\x6d\x61\x6e\x64\x65\x20\x63\x68\x6f\x69\x73\x69\x65\x20\x73\x65\x72\x61\x20\x61\x6a\x6f\x75\x74\xc3\xa9\x65\x20\x41\x50\x52\x45\x53\x20\x6c\x61\x20\x63\x6f\x6d\x6d\x61\x6e\x64\x65\x20\x63\x6f\x75\x72\x61\x6e\x74\x65"))
- self.textLabel1_4.setText(self.__tr("<b><u>Commandes :</u></b>"))
- self.textLabel6.setText(self.__tr("Filtre"))
- self.BNext.setText(self.__tr("Suivant"))
- QToolTip.add(self.BNext,self.__tr("affiche la prochaine occurence"))
- self.TWChoix.changeTab(self.Commande,self.__tr("Nouvelle Commande"))
- self.textLabel1_3.setText(self.__tr("<font size=\"+1\">La commande INCLUDE requiert un nom de Fichier :</font>"))
- self.BBrowse.setText(self.__tr("Edit"))
- self.BChangeFile.setText(self.__tr("Autre Fichier"))
- self.TWChoix.changeTab(self.TabPage,self.__tr("Fichier Include"))
- self.textLabel1_5.setText(self.__trUtf8("\x3c\x66\x6f\x6e\x74\x20\x73\x69\x7a\x65\x3d\x22\x2b\x31\x22\x3e\x3c\x70\x20\x61\x6c\x69\x67\x6e\x3d\x22\x63\x65\x6e\x74\x65\x72\x22\x3e\x4c\x61\x20\x63\x6f\x6d\x6d\x61\x6e\x64\x65\x20\x49\x4e\x43\x4c\x55\x44\x45\x20\x6e\x27\x61\x20\x70\x61\x73\x20\x64\x65\x20\x66\x69\x63\x68\x69\x65\x72\x20\x61\x73\x73\x6f\x63\x69\xc3\xa9\x2e\x0a\x49\x6c\x20\x66\x61\x75\x74\x20\x64\x27\x61\x62\x6f\x72\x64\x20\x63\x68\x6f\x69\x73\x69\x72\x20\x75\x6e\x20\x6e\x75\x6d\xc3\xa9\x72\x6f\x20\x64\x27\x75\x6e\x69\x74\xc3\xa9\x3c\x2f\x70\x3e\x3c\x2f\x66\x6f\x6e\x74\x3e"))
- self.TWChoix.changeTab(self.TabPage_2,self.__tr("Fichier Inc"))
-
-
- def LBNouvCommandeClicked(self):
- print "DInc1.LBNouvCommandeClicked(): Not implemented yet"
-
- def LEFiltreTextChanged(self):
- print "DInc1.LEFiltreTextChanged(): Not implemented yet"
-
- def LEfiltreReturnPressed(self):
- print "DInc1.LEfiltreReturnPressed(): Not implemented yet"
-
- def BSupPressed(self):
- print "DInc1.BSupPressed(): Not implemented yet"
-
- def BOkPressed(self):
- print "DInc1.BOkPressed(): Not implemented yet"
-
- def BuildTabCommand(self):
- print "DInc1.BuildTabCommand(): Not implemented yet"
-
- def BNextPressed(self):
- print "DInc1.BNextPressed(): Not implemented yet"
-
- def BBrowsePressed(self):
- print "DInc1.BBrowsePressed(): Not implemented yet"
-
- def LENomFichReturnPressed(self):
- print "DInc1.LENomFichReturnPressed(): Not implemented yet"
-
- def ViewDoc(self):
- print "DInc1.ViewDoc(): Not implemented yet"
-
- def __tr(self,s,c = None):
- return qApp.translate("DInc1",s,c)
-
- def __trUtf8(self,s,c = None):
- return qApp.translate("DInc1",s,c,QApplication.UnicodeUTF8)
<rect>
<x>0</x>
<y>0</y>
- <width>521</width>
+ <width>570</width>
<height>511</height>
</rect>
</property>
<property name="caption">
<string>DMacro</string>
</property>
- <grid>
+ <widget class="QLayoutWidget">
<property name="name">
- <cstring>unnamed</cstring>
+ <cstring>layout1</cstring>
</property>
- <widget class="QPushButton" row="2" column="1">
- <property name="name">
- <cstring>bOk</cstring>
- </property>
- <property name="minimumSize">
- <size>
- <width>0</width>
- <height>30</height>
- </size>
- </property>
- <property name="text">
- <string>&Valider</string>
- </property>
- <property name="accel">
- <string>Shift+A, Alt+A, Alt+A, Alt+A</string>
- </property>
- <property name="autoDefault">
- <bool>true</bool>
- </property>
- <property name="default">
- <bool>true</bool>
- </property>
- <property name="toolTip" stdset="0">
- <string>validation de la saisie</string>
- </property>
- </widget>
- <widget class="QPushButton" row="2" column="2">
- <property name="name">
- <cstring>bHelp</cstring>
- </property>
- <property name="minimumSize">
- <size>
- <width>0</width>
- <height>30</height>
- </size>
- </property>
- <property name="text">
- <string>&Documentation</string>
- </property>
- <property name="accel">
- <string>Alt+D</string>
- </property>
- <property name="autoDefault">
- <bool>true</bool>
- </property>
- <property name="toolTip" stdset="0">
- <string>affichage documentation aster</string>
- </property>
- </widget>
- <widget class="QPushButton" row="2" column="0">
- <property name="name">
- <cstring>bSup</cstring>
- </property>
- <property name="minimumSize">
- <size>
- <width>0</width>
- <height>30</height>
- </size>
- </property>
- <property name="text">
- <string>&Supprimer</string>
- </property>
- <property name="accel">
- <string>Alt+S</string>
- </property>
- <property name="autoDefault">
- <bool>true</bool>
- </property>
- <property name="toolTip" stdset="0">
- <string>suppression du mot clef</string>
- </property>
- </widget>
- <widget class="QLabel" row="1" column="0" rowspan="1" colspan="3">
+ <property name="geometry">
+ <rect>
+ <x>11</x>
+ <y>447</y>
+ <width>550</width>
+ <height>55</height>
+ </rect>
+ </property>
+ <grid>
<property name="name">
- <cstring>Commentaire</cstring>
+ <cstring>unnamed</cstring>
</property>
- <property name="text">
- <string></string>
- </property>
- </widget>
- <widget class="QTabWidget" row="0" column="0" rowspan="1" colspan="3">
+ <widget class="QLabel" row="0" column="0" rowspan="1" colspan="3">
+ <property name="name">
+ <cstring>Commentaire</cstring>
+ </property>
+ <property name="text">
+ <string></string>
+ </property>
+ </widget>
+ <widget class="QPushButton" row="1" column="0">
+ <property name="name">
+ <cstring>bSup</cstring>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>0</width>
+ <height>30</height>
+ </size>
+ </property>
+ <property name="text">
+ <string>&Supprimer</string>
+ </property>
+ <property name="accel">
+ <string>Alt+S</string>
+ </property>
+ <property name="autoDefault">
+ <bool>true</bool>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>suppression du mot clef</string>
+ </property>
+ </widget>
+ <widget class="QPushButton" row="1" column="2">
+ <property name="name">
+ <cstring>bHelp</cstring>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>0</width>
+ <height>30</height>
+ </size>
+ </property>
+ <property name="text">
+ <string>&Documentation</string>
+ </property>
+ <property name="accel">
+ <string>Alt+D</string>
+ </property>
+ <property name="autoDefault">
+ <bool>true</bool>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>affichage documentation aster</string>
+ </property>
+ </widget>
+ <widget class="QPushButton" row="1" column="1">
+ <property name="name">
+ <cstring>bOk</cstring>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>0</width>
+ <height>30</height>
+ </size>
+ </property>
+ <property name="text">
+ <string>&Valider</string>
+ </property>
+ <property name="accel">
+ <string>Shift+A, Alt+A, Alt+A, Alt+A</string>
+ </property>
+ <property name="autoDefault">
+ <bool>true</bool>
+ </property>
+ <property name="default">
+ <bool>true</bool>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>validation de la saisie</string>
+ </property>
+ </widget>
+ </grid>
+ </widget>
+ <widget class="QTabWidget">
+ <property name="name">
+ <cstring>TWChoix</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>10</y>
+ <width>550</width>
+ <height>430</height>
+ </rect>
+ </property>
+ <widget class="QWidget">
<property name="name">
- <cstring>TWChoix</cstring>
+ <cstring>MotClef</cstring>
</property>
- <widget class="QWidget">
+ <attribute name="title">
+ <string>Ajouter Mot-Clef</string>
+ </attribute>
+ <widget class="QLayoutWidget">
<property name="name">
- <cstring>MotClef</cstring>
+ <cstring>layout2</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>11</x>
+ <y>11</y>
+ <width>520</width>
+ <height>380</height>
+ </rect>
</property>
- <attribute name="title">
- <string>Ajouter Mot-Clef</string>
- </attribute>
<grid>
<property name="name">
<cstring>unnamed</cstring>
</property>
- <widget class="QListBox" row="1" column="0">
+ <widget class="QLabel" row="0" column="1">
<property name="name">
- <cstring>LBMCPermis</cstring>
+ <cstring>textLabel1_2</cstring>
</property>
- <property name="minimumSize">
- <size>
- <width>0</width>
- <height>0</height>
- </size>
+ <property name="text">
+ <string><h3><p align="center"><u><b>Régles</b></u></p></h3></string>
</property>
</widget>
<widget class="QLabel" row="0" column="0">
<string><h3><p align="center"><u><b>Mots Clefs Permis</b></u></p></h3></string>
</property>
</widget>
- <widget class="QListBox" row="1" column="1">
- <property name="name">
- <cstring>LBRegles</cstring>
- </property>
- </widget>
- <widget class="QLabel" row="0" column="1">
- <property name="name">
- <cstring>textLabel1_2</cstring>
- </property>
- <property name="text">
- <string><h3><p align="center"><u><b>Régles</b></u></p></h3></string>
- </property>
- </widget>
- </grid>
- </widget>
- <widget class="QWidget">
- <property name="name">
- <cstring>Commande</cstring>
- </property>
- <attribute name="title">
- <string>Nouvelle Commande</string>
- </attribute>
- <grid>
- <property name="name">
- <cstring>unnamed</cstring>
- </property>
- <widget class="QListBox" row="2" column="0" rowspan="1" colspan="4">
- <property name="name">
- <cstring>LBNouvCommande</cstring>
- </property>
- </widget>
- <widget class="QButtonGroup" row="0" column="3" rowspan="2" colspan="1">
- <property name="name">
- <cstring>buttonGroup1</cstring>
- </property>
- <property name="title">
- <string>Affichage</string>
- </property>
- <widget class="QRadioButton">
- <property name="name">
- <cstring>RBGroupe</cstring>
- </property>
- <property name="geometry">
- <rect>
- <x>20</x>
- <y>40</y>
- <width>101</width>
- <height>20</height>
- </rect>
- </property>
- <property name="text">
- <string>par groupe</string>
- </property>
- </widget>
- <widget class="QRadioButton">
- <property name="name">
- <cstring>RBalpha</cstring>
- </property>
- <property name="geometry">
- <rect>
- <x>20</x>
- <y>20</y>
- <width>120</width>
- <height>20</height>
- </rect>
- </property>
- <property name="text">
- <string>alphabétique</string>
- </property>
- <property name="checked">
- <bool>true</bool>
- </property>
- </widget>
- </widget>
- <widget class="QLabel" row="3" column="0" rowspan="1" colspan="4">
- <property name="name">
- <cstring>textLabel4</cstring>
- </property>
- <property name="text">
- <string>La commande choisie sera ajoutée APRES la commande courante</string>
- </property>
- </widget>
- <widget class="QLabel" row="0" column="0" rowspan="1" colspan="3">
- <property name="name">
- <cstring>textLabel1_4</cstring>
- </property>
- <property name="text">
- <string><b><u>Commandes :</u></b></string>
- </property>
- </widget>
- <widget class="QLabel" row="1" column="0">
+ <widget class="QListBox" row="1" column="0">
<property name="name">
- <cstring>textLabel6</cstring>
+ <cstring>LBMCPermis</cstring>
</property>
<property name="minimumSize">
<size>
- <width>40</width>
+ <width>0</width>
<height>0</height>
</size>
</property>
- <property name="text">
- <string>Filtre</string>
- </property>
</widget>
- <widget class="QLineEdit" row="1" column="1">
- <property name="name">
- <cstring>LEFiltre</cstring>
- </property>
- <property name="minimumSize">
- <size>
- <width>160</width>
- <height>40</height>
- </size>
- </property>
- </widget>
- <widget class="QToolButton" row="1" column="2">
+ <widget class="QListBox" row="1" column="1">
<property name="name">
- <cstring>BNext</cstring>
- </property>
- <property name="minimumSize">
- <size>
- <width>60</width>
- <height>0</height>
- </size>
- </property>
- <property name="text">
- <string>Suivant</string>
- </property>
- <property name="iconSet">
- <iconset></iconset>
+ <cstring>LBRegles</cstring>
</property>
- <property name="toolTip" stdset="0">
- <string>affiche la prochaine occurence</string>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>3</hsizetype>
+ <vsizetype>3</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
</property>
</widget>
</grid>
</widget>
- <widget class="QWidget">
+ </widget>
+ <widget class="QWidget">
+ <property name="name">
+ <cstring>Commande</cstring>
+ </property>
+ <attribute name="title">
+ <string>Nouvelle Commande</string>
+ </attribute>
+ <widget class="QListBox">
+ <property name="name">
+ <cstring>LBNouvCommande</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>11</x>
+ <y>97</y>
+ <width>524</width>
+ <height>266</height>
+ </rect>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>3</hsizetype>
+ <vsizetype>7</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ </widget>
+ <widget class="QButtonGroup">
<property name="name">
- <cstring>TabPage</cstring>
+ <cstring>buttonGroup1</cstring>
</property>
- <attribute name="title">
- <string>Fichier Include</string>
- </attribute>
- <widget class="QLabel">
+ <property name="geometry">
+ <rect>
+ <x>375</x>
+ <y>11</y>
+ <width>160</width>
+ <height>80</height>
+ </rect>
+ </property>
+ <property name="title">
+ <string>Affichage</string>
+ </property>
+ <widget class="QRadioButton">
<property name="name">
- <cstring>textLabel1_3</cstring>
+ <cstring>RBGroupe</cstring>
</property>
<property name="geometry">
<rect>
- <x>30</x>
+ <x>20</x>
<y>40</y>
- <width>440</width>
- <height>41</height>
+ <width>101</width>
+ <height>20</height>
</rect>
</property>
<property name="text">
- <string><font size="+1">La commande INCLUDE requiert un nom de Fichier :</font></string>
- </property>
- </widget>
- <widget class="QLineEdit">
- <property name="name">
- <cstring>LENomFichier</cstring>
- </property>
- <property name="geometry">
- <rect>
- <x>18</x>
- <y>117</y>
- <width>450</width>
- <height>40</height>
- </rect>
- </property>
- <property name="sizePolicy">
- <sizepolicy>
- <hsizetype>0</hsizetype>
- <vsizetype>0</vsizetype>
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="minimumSize">
- <size>
- <width>450</width>
- <height>40</height>
- </size>
+ <string>par groupe</string>
</property>
</widget>
- <widget class="QPushButton">
+ <widget class="QRadioButton">
<property name="name">
- <cstring>BBrowse</cstring>
+ <cstring>RBalpha</cstring>
</property>
<property name="geometry">
<rect>
- <x>288</x>
- <y>306</y>
- <width>161</width>
- <height>41</height>
+ <x>20</x>
+ <y>20</y>
+ <width>120</width>
+ <height>20</height>
</rect>
</property>
- <property name="sizePolicy">
- <sizepolicy>
- <hsizetype>0</hsizetype>
- <vsizetype>0</vsizetype>
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
<property name="text">
- <string>Edit</string>
+ <string>alphabétique</string>
+ </property>
+ <property name="checked">
+ <bool>true</bool>
</property>
</widget>
- <widget class="QPushButton">
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>textLabel4</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>11</x>
+ <y>369</y>
+ <width>524</width>
+ <height>17</height>
+ </rect>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>2</hsizetype>
+ <vsizetype>5</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>La commande choisie sera ajoutée APRES la commande courante</string>
+ </property>
+ </widget>
+ <widget class="QToolButton">
+ <property name="name">
+ <cstring>BNext</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>309</x>
+ <y>51</y>
+ <width>60</width>
+ <height>40</height>
+ </rect>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>60</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="text">
+ <string>Suivant</string>
+ </property>
+ <property name="iconSet">
+ <iconset></iconset>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>affiche la prochaine occurence</string>
+ </property>
+ </widget>
+ <widget class="QLineEdit">
+ <property name="name">
+ <cstring>LEFiltre</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>57</x>
+ <y>51</y>
+ <width>240</width>
+ <height>40</height>
+ </rect>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>3</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>20</width>
+ <height>40</height>
+ </size>
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>textLabel6</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>11</x>
+ <y>51</y>
+ <width>40</width>
+ <height>40</height>
+ </rect>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>40</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="text">
+ <string>Filtre</string>
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>textLabel1_4</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>11</x>
+ <y>11</y>
+ <width>358</width>
+ <height>34</height>
+ </rect>
+ </property>
+ <property name="text">
+ <string><b><u>Commandes :</u></b></string>
+ </property>
+ </widget>
+ </widget>
+ <widget class="QWidget">
+ <property name="name">
+ <cstring>TabPage</cstring>
+ </property>
+ <attribute name="title">
+ <string>Fichier Include</string>
+ </attribute>
+ <widget class="QPushButton">
+ <property name="name">
+ <cstring>BBrowse</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>288</x>
+ <y>306</y>
+ <width>161</width>
+ <height>41</height>
+ </rect>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>0</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Edit</string>
+ </property>
+ </widget>
+ <widget class="QPushButton">
+ <property name="name">
+ <cstring>BChangeFile</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>290</x>
+ <y>350</y>
+ <width>161</width>
+ <height>41</height>
+ </rect>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>0</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Autre Fichier</string>
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>textLabel1_3</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>30</x>
+ <y>40</y>
+ <width>440</width>
+ <height>41</height>
+ </rect>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>2</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string><font size="+1">La commande INCLUDE requiert un nom de Fichier :</font></string>
+ </property>
+ </widget>
+ <widget class="QLineEdit">
+ <property name="name">
+ <cstring>LENomFichier</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>18</x>
+ <y>117</y>
+ <width>500</width>
+ <height>40</height>
+ </rect>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>3</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>40</width>
+ <height>40</height>
+ </size>
+ </property>
+ </widget>
+ </widget>
+ <widget class="QWidget">
+ <property name="name">
+ <cstring>TabPage</cstring>
+ </property>
+ <attribute name="title">
+ <string>Fichier Inc</string>
+ </attribute>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QLabel" row="0" column="0">
<property name="name">
- <cstring>BChangeFile</cstring>
- </property>
- <property name="geometry">
- <rect>
- <x>290</x>
- <y>350</y>
- <width>161</width>
- <height>41</height>
- </rect>
+ <cstring>textLabel1_5</cstring>
</property>
<property name="sizePolicy">
<sizepolicy>
- <hsizetype>0</hsizetype>
- <vsizetype>0</vsizetype>
+ <hsizetype>3</hsizetype>
+ <vsizetype>5</vsizetype>
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
- <string>Autre Fichier</string>
+ <string><font size="+1"><p align="center">La commande INCLUDE n'a pas de fichier associé.
+Il faut d'abord choisir un numéro d'unité</p></font></string>
</property>
</widget>
- </widget>
- <widget class="QWidget">
- <property name="name">
- <cstring>TabPage</cstring>
- </property>
- <attribute name="title">
- <string>Fichier Inc</string>
- </attribute>
- <grid>
- <property name="name">
- <cstring>unnamed</cstring>
- </property>
- <widget class="QLabel" row="0" column="0">
- <property name="name">
- <cstring>textLabel1_5</cstring>
- </property>
- <property name="text">
- <string><font size="+1"><p align="center">La commande INCLUDE n'a pas de fichier associé.
-Il faut d'abord choisir un numéro d'unité</p></font></string>
- </property>
- </widget>
- </grid>
- </widget>
+ </grid>
</widget>
- </grid>
+ </widget>
</widget>
<connections>
<connection>
+++ /dev/null
-# -*- coding: utf-8 -*-
-
-# Form implementation generated from reading ui file 'desListeParam.ui'
-#
-# Created: mar mar 25 10:05:08 2008
-# by: The PyQt User Interface Compiler (pyuic) 3.13
-#
-# WARNING! All changes made in this file will be lost!
-
-
-from qt import *
-
-
-class DLisParam(QWidget):
- def __init__(self,parent = None,name = None,fl = 0):
- QWidget.__init__(self,parent,name,fl)
-
- if not name:
- self.setName("DLisParam")
-
-
- DLisParamLayout = QGridLayout(self,1,1,11,6,"DLisParamLayout")
-
- self.LBParam = QListBox(self,"LBParam")
-
- DLisParamLayout.addWidget(self.LBParam,0,0)
-
- self.languageChange()
-
- self.resize(QSize(413,394).expandedTo(self.minimumSizeHint()))
- self.clearWState(Qt.WState_Polished)
-
- self.connect(self.LBParam,SIGNAL("clicked(QListBoxItem*)"),self.LBParamItemPressed)
-
-
- def languageChange(self):
- self.setCaption(self.__trUtf8("\x53\xc3\xa9\x6c\x65\x63\x74\x69\x6f\x6e\x20\x64\x65\x20\x70\x61\x72\x61\x6d\xc3\xa9\x74\x72\x65\x73"))
-
-
- def LBParamItemPressed(self):
- print "DLisParam.LBParamItemPressed(): Not implemented yet"
-
- def __trUtf8(self,s,c = None):
- return qApp.translate("DLisParam",s,c,QApplication.UnicodeUTF8)
+++ /dev/null
-# -*- coding: utf-8 -*-
-
-# Form implementation generated from reading ui file 'desMCFact.ui'
-#
-# Created: mar mar 25 10:05:08 2008
-# by: The PyQt User Interface Compiler (pyuic) 3.13
-#
-# WARNING! All changes made in this file will be lost!
-
-
-from qt import *
-
-
-class DMCFact(QWidget):
- def __init__(self,parent = None,name = None,fl = 0):
- QWidget.__init__(self,parent,name,fl)
-
- if not name:
- self.setName("DMCFact")
-
- self.setMinimumSize(QSize(505,0))
-
- DMCFactLayout = QGridLayout(self,1,1,11,6,"DMCFactLayout")
-
- self.TWChoix = QTabWidget(self,"TWChoix")
-
- self.MotClef = QWidget(self.TWChoix,"MotClef")
- MotClefLayout = QGridLayout(self.MotClef,1,1,11,6,"MotClefLayout")
-
- self.textLabel1 = QLabel(self.MotClef,"textLabel1")
- self.textLabel1.setMinimumSize(QSize(0,0))
-
- MotClefLayout.addWidget(self.textLabel1,0,0)
-
- self.LBMCPermis = QListBox(self.MotClef,"LBMCPermis")
- self.LBMCPermis.setMinimumSize(QSize(0,0))
-
- MotClefLayout.addWidget(self.LBMCPermis,1,0)
-
- self.LBRegles = QListBox(self.MotClef,"LBRegles")
-
- MotClefLayout.addWidget(self.LBRegles,1,1)
-
- self.textLabel1_2 = QLabel(self.MotClef,"textLabel1_2")
-
- MotClefLayout.addWidget(self.textLabel1_2,0,1)
- self.TWChoix.insertTab(self.MotClef,QString(""))
-
- DMCFactLayout.addMultiCellWidget(self.TWChoix,0,0,0,2)
-
- self.bSup = QPushButton(self,"bSup")
- self.bSup.setAutoDefault(1)
-
- DMCFactLayout.addWidget(self.bSup,2,0)
-
- self.Commentaire = QLabel(self,"Commentaire")
-
- DMCFactLayout.addMultiCellWidget(self.Commentaire,1,1,0,2)
-
- self.bHelp = QPushButton(self,"bHelp")
- self.bHelp.setAutoDefault(1)
-
- DMCFactLayout.addWidget(self.bHelp,2,2)
-
- self.bOk = QPushButton(self,"bOk")
- self.bOk.setAutoDefault(1)
- self.bOk.setDefault(1)
-
- DMCFactLayout.addWidget(self.bOk,2,1)
-
- self.languageChange()
-
- self.resize(QSize(511,499).expandedTo(self.minimumSizeHint()))
- self.clearWState(Qt.WState_Polished)
-
- self.connect(self.bSup,SIGNAL("pressed()"),self.BSupPressed)
- self.connect(self.bOk,SIGNAL("clicked()"),self.BOkPressed)
- self.connect(self.bHelp,SIGNAL("clicked()"),self.ViewDoc)
-
-
- def languageChange(self):
- self.setCaption(self.__tr("DMacro"))
- self.textLabel1.setText(self.__tr("<h3><p align=\"center\"><u><b>Mots Clefs Permis</b></u></p></h3>"))
- self.textLabel1_2.setText(self.__trUtf8("\x3c\x68\x33\x3e\x3c\x70\x20\x61\x6c\x69\x67\x6e\x3d\x22\x63\x65\x6e\x74\x65\x72\x22\x3e\x3c\x75\x3e\x3c\x62\x3e\x52\xc3\xa9\x67\x6c\x65\x73\x3c\x2f\x62\x3e\x3c\x2f\x75\x3e\x3c\x2f\x70\x3e\x3c\x2f\x68\x33\x3e"))
- self.TWChoix.changeTab(self.MotClef,self.__tr("Ajouter Mot-Clef"))
- self.bSup.setText(self.__tr("&Supprimer"))
- self.bSup.setAccel(self.__tr("Alt+S"))
- QToolTip.add(self.bSup,self.__tr("suppression du mot clef"))
- self.Commentaire.setText(QString.null)
- self.bHelp.setText(self.__tr("&Documentation"))
- self.bHelp.setAccel(self.__tr("Alt+D"))
- QToolTip.add(self.bHelp,self.__tr("affichage documentation aster"))
- self.bOk.setText(self.__tr("&Valider"))
- self.bOk.setAccel(self.__tr("Shift+A, Alt+A, Alt+A, Alt+A"))
- QToolTip.add(self.bOk,self.__tr("validation de la saisie"))
-
-
- def ViewDoc(self):
- print "DMCFact.ViewDoc(): Not implemented yet"
-
- def BSupPressed(self):
- print "DMCFact.BSupPressed(): Not implemented yet"
-
- def BOkPressed(self):
- print "DMCFact.BOkPressed(): Not implemented yet"
-
- def __tr(self,s,c = None):
- return qApp.translate("DMCFact",s,c)
-
- def __trUtf8(self,s,c = None):
- return qApp.translate("DMCFact",s,c,QApplication.UnicodeUTF8)
<rect>
<x>0</x>
<y>0</y>
- <width>511</width>
+ <width>592</width>
<height>499</height>
</rect>
</property>
<property name="name">
<cstring>TWChoix</cstring>
</property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>3</hsizetype>
+ <vsizetype>7</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
<widget class="QWidget">
<property name="name">
<cstring>MotClef</cstring>
<attribute name="title">
<string>Ajouter Mot-Clef</string>
</attribute>
- <grid>
+ <widget class="QLayoutWidget">
<property name="name">
- <cstring>unnamed</cstring>
+ <cstring>layout1</cstring>
</property>
- <widget class="QLabel" row="0" column="0">
- <property name="name">
- <cstring>textLabel1</cstring>
- </property>
- <property name="minimumSize">
- <size>
- <width>0</width>
- <height>0</height>
- </size>
- </property>
- <property name="text">
- <string><h3><p align="center"><u><b>Mots Clefs Permis</b></u></p></h3></string>
- </property>
- </widget>
- <widget class="QListBox" row="1" column="0">
- <property name="name">
- <cstring>LBMCPermis</cstring>
- </property>
- <property name="minimumSize">
- <size>
- <width>0</width>
- <height>0</height>
- </size>
- </property>
- </widget>
- <widget class="QListBox" row="1" column="1">
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>40</y>
+ <width>550</width>
+ <height>330</height>
+ </rect>
+ </property>
+ <hbox>
<property name="name">
- <cstring>LBRegles</cstring>
+ <cstring>unnamed</cstring>
</property>
- </widget>
- <widget class="QLabel" row="0" column="1">
+ <widget class="QListBox">
+ <property name="name">
+ <cstring>LBMCPermis</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>3</hsizetype>
+ <vsizetype>7</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>0</width>
+ <height>0</height>
+ </size>
+ </property>
+ </widget>
+ <widget class="QListBox">
+ <property name="name">
+ <cstring>LBRegles</cstring>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>layout2</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>11</x>
+ <y>-4</y>
+ <width>560</width>
+ <height>40</height>
+ </rect>
+ </property>
+ <hbox>
<property name="name">
- <cstring>textLabel1_2</cstring>
+ <cstring>unnamed</cstring>
</property>
- <property name="text">
- <string><h3><p align="center"><u><b>Régles</b></u></p></h3></string>
- </property>
- </widget>
- </grid>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>textLabel1</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>3</hsizetype>
+ <vsizetype>5</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>0</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="text">
+ <string><h3><p align="center"><u><b>Mots Clefs Permis</b></u></p></h3></string>
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>textLabel1_2</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>3</hsizetype>
+ <vsizetype>5</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string><h3><p align="center"><u><b>Régles</b></u></p></h3></string>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
</widget>
</widget>
<widget class="QPushButton" row="2" column="0">
<property name="name">
<cstring>bSup</cstring>
</property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>3</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
<property name="text">
<string>&Supprimer</string>
</property>
<property name="name">
<cstring>bHelp</cstring>
</property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>3</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
<property name="text">
<string>&Documentation</string>
</property>
<property name="name">
<cstring>bOk</cstring>
</property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>3</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
<property name="text">
<string>&Valider</string>
</property>
+++ /dev/null
-# -*- coding: utf-8 -*-
-
-# Form implementation generated from reading ui file 'desMCListAjout.ui'
-#
-# Created: mar mar 25 10:05:08 2008
-# by: The PyQt User Interface Compiler (pyuic) 3.13
-#
-# WARNING! All changes made in this file will be lost!
-
-
-from qt import *
-
-
-class DMCListAjout(QWidget):
- def __init__(self,parent = None,name = None,fl = 0):
- QWidget.__init__(self,parent,name,fl)
-
- if not name:
- self.setName("DMCListAjout")
-
- self.setMinimumSize(QSize(350,0))
-
- DMCListAjoutLayout = QGridLayout(self,1,1,11,6,"DMCListAjoutLayout")
-
- self.textLabel1 = QLabel(self,"textLabel1")
-
- DMCListAjoutLayout.addMultiCellWidget(self.textLabel1,1,1,0,2)
-
- self.textLabel1_2 = QLabel(self,"textLabel1_2")
-
- DMCListAjoutLayout.addMultiCellWidget(self.textLabel1_2,2,2,0,2)
-
- layout9 = QHBoxLayout(None,0,6,"layout9")
- spacer4 = QSpacerItem(60,21,QSizePolicy.Expanding,QSizePolicy.Minimum)
- layout9.addItem(spacer4)
-
- self.bAjout = QPushButton(self,"bAjout")
- self.bAjout.setAutoDefault(1)
- self.bAjout.setDefault(1)
- layout9.addWidget(self.bAjout)
- spacer2 = QSpacerItem(80,21,QSizePolicy.Expanding,QSizePolicy.Minimum)
- layout9.addItem(spacer2)
-
- DMCListAjoutLayout.addMultiCellLayout(layout9,8,8,0,2)
- spacer1 = QSpacerItem(21,40,QSizePolicy.Minimum,QSizePolicy.Expanding)
- DMCListAjoutLayout.addItem(spacer1,9,1)
-
- self.textLabel1_2_2 = QLabel(self,"textLabel1_2_2")
-
- DMCListAjoutLayout.addMultiCellWidget(self.textLabel1_2_2,6,6,0,2)
- spacer5 = QSpacerItem(20,20,QSizePolicy.Minimum,QSizePolicy.Expanding)
- DMCListAjoutLayout.addItem(spacer5,7,1)
-
- self.MCFacteur = QLabel(self,"MCFacteur")
-
- DMCListAjoutLayout.addMultiCellWidget(self.MCFacteur,4,4,0,2)
- spacer6 = QSpacerItem(21,31,QSizePolicy.Minimum,QSizePolicy.Expanding)
- DMCListAjoutLayout.addItem(spacer6,5,1)
- spacer7 = QSpacerItem(21,51,QSizePolicy.Minimum,QSizePolicy.Expanding)
- DMCListAjoutLayout.addItem(spacer7,3,1)
- spacer8 = QSpacerItem(41,51,QSizePolicy.Minimum,QSizePolicy.Expanding)
- DMCListAjoutLayout.addItem(spacer8,0,1)
-
- self.bSup = QPushButton(self,"bSup")
- self.bSup.setAutoDefault(1)
-
- DMCListAjoutLayout.addWidget(self.bSup,10,0)
-
- self.bOk = QPushButton(self,"bOk")
- self.bOk.setAutoDefault(1)
- self.bOk.setDefault(1)
-
- DMCListAjoutLayout.addWidget(self.bOk,10,1)
-
- self.bHelp = QPushButton(self,"bHelp")
- self.bHelp.setAutoDefault(1)
-
- DMCListAjoutLayout.addWidget(self.bHelp,10,2)
-
- self.languageChange()
-
- self.resize(QSize(459,472).expandedTo(self.minimumSizeHint()))
- self.clearWState(Qt.WState_Polished)
-
- self.connect(self.bOk,SIGNAL("clicked()"),self.BAjoutClicked)
- self.connect(self.bAjout,SIGNAL("clicked()"),self.BAjoutClicked)
- self.connect(self.bSup,SIGNAL("clicked()"),self.BSupPressed)
- self.connect(self.bHelp,SIGNAL("clicked()"),self.ViewDoc)
-
-
- def languageChange(self):
- self.setCaption(self.__tr("Form1"))
- self.textLabel1.setText(self.__tr("<p align=\"center\"><font size=\"+1\">Pour ajouter une autre occurrence</font></p>"))
- self.textLabel1_2.setText(self.__tr("<p align=\"center\"><font size=\"+1\">du mot clef-facteur</font> </p>"))
- self.bAjout.setText(self.__tr("&Ajouter"))
- self.bAjout.setAccel(self.__tr("Alt+A"))
- QToolTip.add(self.bAjout,self.__tr("validation de la saisie"))
- self.textLabel1_2_2.setText(self.__tr("<p align=\"center\"><font size=\"+1\">cliquez ci-dessous</font> </p>"))
- self.MCFacteur.setText(self.__tr("<p align=\"center\">AFFE</p>"))
- self.bSup.setText(self.__tr("&Supprimer"))
- self.bSup.setAccel(self.__tr("Alt+S"))
- QToolTip.add(self.bSup,self.__tr("suppression du mot clef"))
- self.bOk.setText(self.__tr("&Valider"))
- self.bOk.setAccel(self.__tr("Shift+A, Alt+A, Alt+A, Alt+A"))
- QToolTip.add(self.bOk,self.__tr("validation de la saisie"))
- self.bHelp.setText(self.__tr("&Documentation"))
- self.bHelp.setAccel(self.__tr("Alt+D"))
- QToolTip.add(self.bHelp,self.__tr("affichage documentation aster"))
-
-
- def BAjoutClicked(self):
- print "DMCListAjout.BAjoutClicked(): Not implemented yet"
-
- def BSupPressed(self):
- print "DMCListAjout.BSupPressed(): Not implemented yet"
-
- def ViewDoc(self):
- print "DMCListAjout.ViewDoc(): Not implemented yet"
-
- def __tr(self,s,c = None):
- return qApp.translate("DMCListAjout",s,c)
<rect>
<x>0</x>
<y>0</y>
- <width>459</width>
+ <width>509</width>
<height>472</height>
</rect>
</property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>3</hsizetype>
+ <vsizetype>5</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
<property name="minimumSize">
<size>
- <width>350</width>
+ <width>50</width>
<height>0</height>
</size>
</property>
+++ /dev/null
-# -*- coding: utf-8 -*-
-
-# Form implementation generated from reading ui file 'desMacro.ui'
-#
-# Created: Mon Jun 2 15:35:12 2008
-# by: The PyQt User Interface Compiler (pyuic) 3.16
-#
-# WARNING! All changes made in this file will be lost!
-
-
-from qt import *
-
-
-class DMacro(QWidget):
- def __init__(self,parent = None,name = None,fl = 0):
- QWidget.__init__(self,parent,name,fl)
-
- if not name:
- self.setName("DMacro")
-
- self.setMinimumSize(QSize(505,0))
-
- DMacroLayout = QGridLayout(self,1,1,11,6,"DMacroLayout")
-
- self.Commentaire = QLabel(self,"Commentaire")
-
- DMacroLayout.addMultiCellWidget(self.Commentaire,1,1,0,2)
-
- self.TWChoix = QTabWidget(self,"TWChoix")
-
- self.MotClef = QWidget(self.TWChoix,"MotClef")
- MotClefLayout = QGridLayout(self.MotClef,1,1,11,6,"MotClefLayout")
-
- self.LBMCPermis = QListBox(self.MotClef,"LBMCPermis")
- self.LBMCPermis.setMinimumSize(QSize(0,0))
-
- MotClefLayout.addWidget(self.LBMCPermis,1,0)
-
- self.LBRegles = QListBox(self.MotClef,"LBRegles")
-
- MotClefLayout.addWidget(self.LBRegles,1,1)
-
- self.textLabel1_2 = QLabel(self.MotClef,"textLabel1_2")
-
- MotClefLayout.addWidget(self.textLabel1_2,0,1)
-
- self.textLabel1 = QLabel(self.MotClef,"textLabel1")
- self.textLabel1.setMinimumSize(QSize(0,0))
-
- MotClefLayout.addWidget(self.textLabel1,0,0)
- self.TWChoix.insertTab(self.MotClef,QString.fromLatin1(""))
-
- self.Commande = QWidget(self.TWChoix,"Commande")
- CommandeLayout = QGridLayout(self.Commande,1,1,11,6,"CommandeLayout")
-
- self.LBNouvCommande = QListBox(self.Commande,"LBNouvCommande")
-
- CommandeLayout.addMultiCellWidget(self.LBNouvCommande,2,2,0,3)
-
- self.buttonGroup1 = QButtonGroup(self.Commande,"buttonGroup1")
-
- self.RBalpha = QRadioButton(self.buttonGroup1,"RBalpha")
- self.RBalpha.setGeometry(QRect(20,20,120,20))
- self.RBalpha.setChecked(1)
-
- self.RBGroupe = QRadioButton(self.buttonGroup1,"RBGroupe")
- self.RBGroupe.setGeometry(QRect(20,40,120,20))
-
- CommandeLayout.addMultiCellWidget(self.buttonGroup1,0,1,3,3)
-
- self.textLabel1_4 = QLabel(self.Commande,"textLabel1_4")
-
- CommandeLayout.addMultiCellWidget(self.textLabel1_4,0,0,0,1)
-
- self.BNext = QToolButton(self.Commande,"BNext")
- self.BNext.setMinimumSize(QSize(60,0))
- self.BNext.setIconSet(QIconSet())
-
- CommandeLayout.addWidget(self.BNext,1,2)
-
- self.textLabel6 = QLabel(self.Commande,"textLabel6")
- self.textLabel6.setMinimumSize(QSize(40,0))
-
- CommandeLayout.addWidget(self.textLabel6,1,0)
-
- self.textLabel4 = QLabel(self.Commande,"textLabel4")
-
- CommandeLayout.addMultiCellWidget(self.textLabel4,3,3,0,3)
-
- self.LEFiltre = QLineEdit(self.Commande,"LEFiltre")
- self.LEFiltre.setMinimumSize(QSize(160,30))
-
- CommandeLayout.addWidget(self.LEFiltre,1,1)
- self.TWChoix.insertTab(self.Commande,QString.fromLatin1(""))
-
- self.TabPage = QWidget(self.TWChoix,"TabPage")
-
- self.groupBox1_2 = QGroupBox(self.TabPage,"groupBox1_2")
- self.groupBox1_2.setGeometry(QRect(0,0,520,380))
-
- self.textLabel3_2 = QLabel(self.groupBox1_2,"textLabel3_2")
- self.textLabel3_2.setGeometry(QRect(10,230,320,31))
-
- self.typeConcept = QLabel(self.groupBox1_2,"typeConcept")
- self.typeConcept.setGeometry(QRect(360,230,130,31))
-
- self.textLabel1_3_2_3 = QLabel(self.groupBox1_2,"textLabel1_3_2_3")
- self.textLabel1_3_2_3.setGeometry(QRect(20,200,160,31))
-
- self.textLabel1_3_3 = QLabel(self.groupBox1_2,"textLabel1_3_3")
- self.textLabel1_3_3.setGeometry(QRect(20,50,150,31))
-
- self.LENomConcept = QLineEdit(self.groupBox1_2,"LENomConcept")
- self.LENomConcept.setGeometry(QRect(20,80,440,30))
- self.TWChoix.insertTab(self.TabPage,QString.fromLatin1(""))
-
- DMacroLayout.addMultiCellWidget(self.TWChoix,0,0,0,2)
-
- self.bSup = QPushButton(self,"bSup")
- self.bSup.setMinimumSize(QSize(0,30))
- self.bSup.setAutoDefault(1)
-
- DMacroLayout.addWidget(self.bSup,2,0)
-
- self.bHelp = QPushButton(self,"bHelp")
- self.bHelp.setMinimumSize(QSize(0,30))
- self.bHelp.setAutoDefault(1)
-
- DMacroLayout.addWidget(self.bHelp,2,2)
-
- self.bOk = QPushButton(self,"bOk")
- self.bOk.setMinimumSize(QSize(0,30))
- self.bOk.setAutoDefault(1)
- self.bOk.setDefault(1)
-
- DMacroLayout.addWidget(self.bOk,2,1)
-
- self.languageChange()
-
- self.resize(QSize(521,499).expandedTo(self.minimumSizeHint()))
- self.clearWState(Qt.WState_Polished)
-
- self.connect(self.LBNouvCommande,SIGNAL("doubleClicked(QListBoxItem*)"),self.LBNouvCommandeClicked)
- self.connect(self.LEFiltre,SIGNAL("textChanged(const QString&)"),self.LEFiltreTextChanged)
- self.connect(self.LEFiltre,SIGNAL("returnPressed()"),self.LEfiltreReturnPressed)
- self.connect(self.bSup,SIGNAL("pressed()"),self.BSupPressed)
- self.connect(self.bOk,SIGNAL("clicked()"),self.BOkPressed)
- self.connect(self.RBalpha,SIGNAL("clicked()"),self.BuildTabCommand)
- self.connect(self.RBGroupe,SIGNAL("clicked()"),self.BuildTabCommand)
- self.connect(self.BNext,SIGNAL("clicked()"),self.BNextPressed)
- self.connect(self.LENomConcept,SIGNAL("returnPressed()"),self.LENomConceptReturnPressed)
- self.connect(self.bHelp,SIGNAL("clicked()"),self.ViewDoc)
-
- self.setTabOrder(self.LEFiltre,self.LENomConcept)
- self.setTabOrder(self.LENomConcept,self.TWChoix)
- self.setTabOrder(self.TWChoix,self.LBMCPermis)
- self.setTabOrder(self.LBMCPermis,self.LBRegles)
- self.setTabOrder(self.LBRegles,self.LBNouvCommande)
- self.setTabOrder(self.LBNouvCommande,self.RBalpha)
- self.setTabOrder(self.RBalpha,self.bSup)
- self.setTabOrder(self.bSup,self.bHelp)
- self.setTabOrder(self.bHelp,self.bOk)
-
-
- def languageChange(self):
- self.setCaption(self.__tr("DMacro"))
- self.Commentaire.setText(QString.null)
- self.textLabel1_2.setText(self.__trUtf8("\x3c\x68\x33\x3e\x3c\x70\x20\x61\x6c\x69\x67\x6e\x3d\x22\x63\x65\x6e\x74\x65\x72\x22\x3e\x3c\x75\x3e\x3c\x62\x3e\x52\xc3\xa9\x67\x6c\x65\x73\x3c\x2f\x62\x3e\x3c\x2f\x75\x3e\x3c\x2f\x70\x3e\x3c\x2f\x68\x33\x3e"))
- self.textLabel1.setText(self.__tr("<h3><p align=\"center\"><u><b>Mots Clefs Permis</b></u></p></h3>"))
- self.TWChoix.changeTab(self.MotClef,self.__tr("Ajouter Mot-Clef"))
- self.buttonGroup1.setTitle(self.__tr("Affichage"))
- self.RBalpha.setText(self.__trUtf8("\x61\x6c\x70\x68\x61\x62\xc3\xa9\x74\x69\x71\x75\x65"))
- self.RBGroupe.setText(self.__tr("par groupe"))
- self.textLabel1_4.setText(self.__tr("<b><u>Commandes :</u></b>"))
- self.BNext.setText(self.__tr("Suivant"))
- QToolTip.add(self.BNext,self.__tr("affiche la prochaine occurence"))
- self.textLabel6.setText(self.__tr("Filtre"))
- self.textLabel4.setText(self.__trUtf8("\x4c\x61\x20\x63\x6f\x6d\x6d\x61\x6e\x64\x65\x20\x63\x68\x6f\x69\x73\x69\x65\x20\x73\x65\x72\x61\x20\x61\x6a\x6f\x75\x74\xc3\xa9\x65\x20\x41\x50\x52\x45\x53\x20\x6c\x61\x20\x63\x6f\x6d\x6d\x61\x6e\x64\x65\x20\x63\x6f\x75\x72\x61\x6e\x74\x65"))
- self.TWChoix.changeTab(self.Commande,self.__tr("Nouvelle Commande"))
- self.groupBox1_2.setTitle(self.__tr("Concept"))
- self.textLabel3_2.setText(self.__trUtf8("\x4c\x27\x6f\x70\xc3\xa9\x72\x61\x74\x65\x75\x72\x20\x63\x6f\x75\x72\x61\x6e\x74\x20\x72\x65\x74\x6f\x75\x72\x6e\x65\x20\x75\x6e\x20\x63\x6f\x6e\x63\x65\x70\x74\x20\x64\x65\x20\x74\x79\x70\x65\x20\x3a"))
- self.typeConcept.setText(self.__tr("TypeDuConcept"))
- self.textLabel1_3_2_3.setText(self.__tr("<u>Type du concept :</u>"))
- self.textLabel1_3_3.setText(self.__tr("<u>Nom du concept :</u>"))
- self.TWChoix.changeTab(self.TabPage,self.__tr("Nommer Concept"))
- self.bSup.setText(self.__tr("&Supprimer"))
- self.bSup.setAccel(QKeySequence(self.__tr("Alt+S")))
- QToolTip.add(self.bSup,self.__tr("suppression du mot clef"))
- self.bHelp.setText(self.__tr("&Documentation"))
- self.bHelp.setAccel(QKeySequence(self.__tr("Alt+D")))
- QToolTip.add(self.bHelp,self.__tr("affichage documentation aster"))
- self.bOk.setText(self.__tr("&Valider"))
- self.bOk.setAccel(QKeySequence(self.__tr("Shift+A, Alt+A, Alt+A, Alt+A")))
- QToolTip.add(self.bOk,self.__tr("validation de la saisie"))
-
-
- def LBNouvCommandeClicked(self):
- print "DMacro.LBNouvCommandeClicked(): Not implemented yet"
-
- def LEFiltreTextChanged(self):
- print "DMacro.LEFiltreTextChanged(): Not implemented yet"
-
- def LEfiltreReturnPressed(self):
- print "DMacro.LEfiltreReturnPressed(): Not implemented yet"
-
- def BSupPressed(self):
- print "DMacro.BSupPressed(): Not implemented yet"
-
- def BOkPressed(self):
- print "DMacro.BOkPressed(): Not implemented yet"
-
- def BuildTabCommand(self):
- print "DMacro.BuildTabCommand(): Not implemented yet"
-
- def BNextPressed(self):
- print "DMacro.BNextPressed(): Not implemented yet"
-
- def LENomConceptReturnPressed(self):
- print "DMacro.LENomConceptReturnPressed(): Not implemented yet"
-
- def ViewDoc(self):
- print "DMacro.ViewDoc(): Not implemented yet"
-
- def __tr(self,s,c = None):
- return qApp.translate("DMacro",s,c)
-
- def __trUtf8(self,s,c = None):
- return qApp.translate("DMacro",s,c,QApplication.UnicodeUTF8)
<rect>
<x>0</x>
<y>0</y>
- <width>521</width>
+ <width>529</width>
<height>499</height>
</rect>
</property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>3</hsizetype>
+ <vsizetype>5</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
<property name="minimumSize">
<size>
- <width>505</width>
+ <width>50</width>
<height>0</height>
</size>
</property>
+++ /dev/null
-# -*- coding: utf-8 -*-
-
-# Form implementation generated from reading ui file 'desParam.ui'
-#
-# Created: ven mai 16 13:30:38 2008
-# by: The PyQt User Interface Compiler (pyuic) 3.13
-#
-# WARNING! All changes made in this file will be lost!
-
-
-from qt import *
-
-
-class DParam(QWidget):
- def __init__(self,parent = None,name = None,fl = 0):
- QWidget.__init__(self,parent,name,fl)
-
- if not name:
- self.setName("DParam")
-
- self.setMinimumSize(QSize(505,0))
-
- DParamLayout = QGridLayout(self,1,1,11,6,"DParamLayout")
-
- self.Commentaire = QLabel(self,"Commentaire")
- self.Commentaire.setFrameShape(QLabel.NoFrame)
- self.Commentaire.setFrameShadow(QLabel.Plain)
-
- DParamLayout.addMultiCellWidget(self.Commentaire,1,1,0,2)
-
- self.TWChoix = QTabWidget(self,"TWChoix")
-
- self.Valeur_Parametre = QWidget(self.TWChoix,"Valeur_Parametre")
-
- self.textLabel2_2_2 = QLabel(self.Valeur_Parametre,"textLabel2_2_2")
- self.textLabel2_2_2.setGeometry(QRect(80,11,231,89))
-
- self.Commentaire_2 = QLabel(self.Valeur_Parametre,"Commentaire_2")
- self.Commentaire_2.setGeometry(QRect(11,275,459,89))
-
- self.lineEditNom = QLineEdit(self.Valeur_Parametre,"lineEditNom")
- self.lineEditNom.setGeometry(QRect(80,106,231,31))
- self.lineEditNom.setMinimumSize(QSize(231,31))
-
- self.textLabel2_2 = QLabel(self.Valeur_Parametre,"textLabel2_2")
- self.textLabel2_2.setGeometry(QRect(11,106,63,31))
-
- self.textLabel2 = QLabel(self.Valeur_Parametre,"textLabel2")
- self.textLabel2.setGeometry(QRect(11,143,63,31))
-
- self.Commentaire2 = QLabel(self.Valeur_Parametre,"Commentaire2")
- self.Commentaire2.setGeometry(QRect(11,180,459,89))
-
- self.lineEditVal = QLineEdit(self.Valeur_Parametre,"lineEditVal")
- self.lineEditVal.setGeometry(QRect(80,143,231,31))
- self.lineEditVal.setMinimumSize(QSize(231,31))
- self.TWChoix.insertTab(self.Valeur_Parametre,QString(""))
-
- self.Commande = QWidget(self.TWChoix,"Commande")
- CommandeLayout = QGridLayout(self.Commande,1,1,11,6,"CommandeLayout")
-
- self.textLabel6 = QLabel(self.Commande,"textLabel6")
- self.textLabel6.setMinimumSize(QSize(40,0))
-
- CommandeLayout.addWidget(self.textLabel6,1,0)
-
- self.LBNouvCommande = QListBox(self.Commande,"LBNouvCommande")
-
- CommandeLayout.addMultiCellWidget(self.LBNouvCommande,2,2,0,3)
-
- self.buttonGroup1 = QButtonGroup(self.Commande,"buttonGroup1")
-
- self.RBGroupe = QRadioButton(self.buttonGroup1,"RBGroupe")
- self.RBGroupe.setGeometry(QRect(20,40,101,20))
-
- self.RBalpha = QRadioButton(self.buttonGroup1,"RBalpha")
- self.RBalpha.setGeometry(QRect(20,20,120,20))
- self.RBalpha.setChecked(1)
-
- CommandeLayout.addMultiCellWidget(self.buttonGroup1,0,1,3,3)
-
- self.textLabel1_4 = QLabel(self.Commande,"textLabel1_4")
-
- CommandeLayout.addMultiCellWidget(self.textLabel1_4,0,0,0,1)
-
- self.textLabel4 = QLabel(self.Commande,"textLabel4")
-
- CommandeLayout.addMultiCellWidget(self.textLabel4,3,3,0,3)
-
- self.BNext = QToolButton(self.Commande,"BNext")
- self.BNext.setMinimumSize(QSize(60,0))
- self.BNext.setIconSet(QIconSet())
-
- CommandeLayout.addWidget(self.BNext,1,2)
-
- self.LEFiltre = QLineEdit(self.Commande,"LEFiltre")
- self.LEFiltre.setMinimumSize(QSize(160,30))
-
- CommandeLayout.addWidget(self.LEFiltre,1,1)
- self.TWChoix.insertTab(self.Commande,QString(""))
-
- DParamLayout.addMultiCellWidget(self.TWChoix,0,0,0,2)
-
- self.bOk = QPushButton(self,"bOk")
- self.bOk.setMinimumSize(QSize(0,30))
- self.bOk.setAutoDefault(1)
- self.bOk.setDefault(1)
-
- DParamLayout.addWidget(self.bOk,2,1)
-
- self.bSup = QPushButton(self,"bSup")
- self.bSup.setMinimumSize(QSize(0,30))
- self.bSup.setAutoDefault(1)
-
- DParamLayout.addWidget(self.bSup,2,0)
-
- self.bHelp = QPushButton(self,"bHelp")
- self.bHelp.setMinimumSize(QSize(0,30))
- self.bHelp.setAutoDefault(1)
-
- DParamLayout.addWidget(self.bHelp,2,2)
-
- self.languageChange()
-
- self.resize(QSize(505,483).expandedTo(self.minimumSizeHint()))
- self.clearWState(Qt.WState_Polished)
-
- self.connect(self.LBNouvCommande,SIGNAL("doubleClicked(QListBoxItem*)"),self.LBNouvCommandeClicked)
- self.connect(self.LEFiltre,SIGNAL("textChanged(const QString&)"),self.LEFiltreTextChanged)
- self.connect(self.LEFiltre,SIGNAL("returnPressed()"),self.LEfiltreReturnPressed)
- self.connect(self.bSup,SIGNAL("pressed()"),self.BSupPressed)
- self.connect(self.bOk,SIGNAL("clicked()"),self.BOkPressed)
- self.connect(self.RBGroupe,SIGNAL("clicked()"),self.BuildTabCommand)
- self.connect(self.RBalpha,SIGNAL("clicked()"),self.BuildTabCommand)
- self.connect(self.bHelp,SIGNAL("clicked()"),self.ViewDoc)
- self.connect(self.BNext,SIGNAL("pressed()"),self.BNextPressed)
- self.connect(self.lineEditVal,SIGNAL("returnPressed()"),self.BOkPressed)
-
- self.setTabOrder(self.LEFiltre,self.TWChoix)
- self.setTabOrder(self.TWChoix,self.lineEditNom)
- self.setTabOrder(self.lineEditNom,self.lineEditVal)
- self.setTabOrder(self.lineEditVal,self.LBNouvCommande)
- self.setTabOrder(self.LBNouvCommande,self.RBalpha)
- self.setTabOrder(self.RBalpha,self.bOk)
- self.setTabOrder(self.bOk,self.bSup)
- self.setTabOrder(self.bSup,self.bHelp)
-
-
- def languageChange(self):
- self.setCaption(self.__tr("DComm"))
- self.Commentaire.setText(QString.null)
- self.textLabel2_2_2.setText(self.__tr("<u><b><p align=\"center\">Parametre</p></b></u>"))
- self.Commentaire_2.setText(QString.null)
- self.textLabel2_2.setText(self.__tr("<b> Nom: </b>"))
- self.textLabel2.setText(self.__tr("<b> Valeur: </b>"))
- self.Commentaire2.setText(self.__trUtf8("\x52\x65\x74\x6f\x75\x72\x20\x43\x68\x61\x72\x69\x6f\x74\x20\x64\x61\x6e\x73\x20\x75\x6e\x65\x20\x73\x6f\x6e\x65\x20\x64\x65\x20\x73\x61\x69\x73\x69\x65\x20\x70\x65\x72\x6d\x65\x74\x20\x64\x65\x20\x76\xc3\xa9\x72\x69\x66\x69\x65\x72\x20\x6c\x61\x20\x0a\x76\x61\x6c\x69\x64\x69\x74\xc3\xa9\x20\x64\x65\x20\x6c\x61\x20\x76\x61\x6c\x65\x75\x72\x20\x73\x61\x69\x73\x69\x65\x2e\x0a\x0a\x4c\x65\x73\x20\x6e\x6f\x75\x76\x65\x6c\x6c\x65\x73\x20\x76\x61\x6c\x65\x75\x72\x73\x20\x6e\x65\x20\x73\x65\x72\x6f\x6e\x74\x20\x70\x72\x69\x73\x65\x73\x20\x20\x65\x6e\x20\x63\x6f\x6d\x70\x74\x65\x20\x71\x75\x27\x61\x70\x72\xc3\xa8\x73\x20\x61\x76\x6f\x69\x72\x20\x0a\x61\x70\x70\x75\x79\xc3\xa9\x20\x73\x75\x72\x20\x20\x6c\x65\x20\x62\x6f\x75\x74\x6f\x6e\x20\x56\x61\x6c\x69\x64\x65\x72\x2e"))
- self.TWChoix.changeTab(self.Valeur_Parametre,self.__tr("Valeur Parametre"))
- self.textLabel6.setText(self.__tr("Filtre"))
- self.buttonGroup1.setTitle(self.__tr("Affichage"))
- self.RBGroupe.setText(self.__tr("par groupe"))
- self.RBalpha.setText(self.__trUtf8("\x61\x6c\x70\x68\x61\x62\xc3\xa9\x74\x69\x71\x75\x65"))
- self.textLabel1_4.setText(self.__tr("<b><u>Commandes :</u></b>"))
- self.textLabel4.setText(self.__trUtf8("\x4c\x61\x20\x63\x6f\x6d\x6d\x61\x6e\x64\x65\x20\x63\x68\x6f\x69\x73\x69\x65\x20\x73\x65\x72\x61\x20\x61\x6a\x6f\x75\x74\xc3\xa9\x65\x20\x41\x50\x52\x45\x53\x20\x6c\x61\x20\x63\x6f\x6d\x6d\x61\x6e\x64\x65\x20\x63\x6f\x75\x72\x61\x6e\x74\x65"))
- self.BNext.setText(self.__tr("Suivant"))
- QToolTip.add(self.BNext,self.__tr("affiche la prochaine occurence"))
- self.TWChoix.changeTab(self.Commande,self.__tr("Nouvelle Commande"))
- self.bOk.setText(self.__tr("&Valider"))
- self.bOk.setAccel(self.__tr("Shift+A, Alt+A, Alt+A, Alt+A"))
- QToolTip.add(self.bOk,self.__tr("validation de la saisie"))
- self.bSup.setText(self.__tr("&Supprimer"))
- self.bSup.setAccel(self.__tr("Alt+S"))
- QToolTip.add(self.bSup,self.__tr("suppression du mot clef"))
- self.bHelp.setText(self.__tr("&Documentation"))
- self.bHelp.setAccel(self.__tr("Alt+D"))
- QToolTip.add(self.bHelp,self.__tr("affichage documentation aster"))
-
-
- def LBNouvCommandeClicked(self):
- print "DParam.LBNouvCommandeClicked(): Not implemented yet"
-
- def LEFiltreTextChanged(self):
- print "DParam.LEFiltreTextChanged(): Not implemented yet"
-
- def LEfiltreReturnPressed(self):
- print "DParam.LEfiltreReturnPressed(): Not implemented yet"
-
- def BSupPressed(self):
- print "DParam.BSupPressed(): Not implemented yet"
-
- def LENomConceptReturnPressed(self):
- print "DParam.LENomConceptReturnPressed(): Not implemented yet"
-
- def BOkPressed(self):
- print "DParam.BOkPressed(): Not implemented yet"
-
- def BuildTabCommand(self):
- print "DParam.BuildTabCommand(): Not implemented yet"
-
- def ViewDoc(self):
- print "DParam.ViewDoc(): Not implemented yet"
-
- def BNextPressed(self):
- print "DParam.BNextPressed(): Not implemented yet"
-
- def __tr(self,s,c = None):
- return qApp.translate("DParam",s,c)
-
- def __trUtf8(self,s,c = None):
- return qApp.translate("DParam",s,c,QApplication.UnicodeUTF8)
<rect>
<x>0</x>
<y>0</y>
- <width>505</width>
+ <width>517</width>
<height>483</height>
</rect>
</property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>3</hsizetype>
+ <vsizetype>5</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
<property name="minimumSize">
<size>
- <width>505</width>
+ <width>50</width>
<height>0</height>
</size>
</property>
+++ /dev/null
-# -*- coding: utf-8 -*-
-
-# Form implementation generated from reading ui file 'desPlusieursBase.ui'
-#
-# Created: lun mai 5 17:43:44 2008
-# by: The PyQt User Interface Compiler (pyuic) 3.13
-#
-# WARNING! All changes made in this file will be lost!
-
-
-from qt import *
-
-image0_data = \
- "\x89\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d" \
- "\x49\x48\x44\x52\x00\x00\x00\x14\x00\x00\x00\x14" \
- "\x08\x06\x00\x00\x00\x8d\x89\x1d\x0d\x00\x00\x00" \
- "\x8d\x49\x44\x41\x54\x38\x8d\xb5\xd3\xdb\x0d\x80" \
- "\x20\x0c\x05\xd0\x5b\xe3\x3a\x8e\xe2\x4c\x86\x99" \
- "\x18\x85\x81\xea\x87\xc6\xc4\xd2\x56\x28\xd8\x84" \
- "\x0f\x5e\x27\x17\x50\x02\x63\x6a\x2d\x73\xb9\x1f" \
- "\xc0\xb5\x69\x15\x39\x17\xc3\xa0\x7e\xf0\xae\x9c" \
- "\xca\xab\xbf\x1f\x5b\xb5\xa6\xed\xc8\x0c\x02\x83" \
- "\x34\x20\x06\x02\x00\x81\x65\xc2\x38\x28\x30\x2f" \
- "\xa9\x77\xdd\x36\xc6\xa0\x67\xa7\x78\x14\x3f\xa1" \
- "\x85\xf9\x5b\xe6\x61\x76\xc2\x20\xa6\x83\x03\x58" \
- "\x0d\x0e\x62\x7a\xc2\x01\xcc\x04\xa3\xd8\x55\x2c" \
- "\x1a\xc0\x39\x95\xab\x27\xe7\x5a\x9a\x3e\x18\x47" \
- "\xdd\xef\x30\x72\xec\xef\x5f\xaf\xb3\x4e\xcb\x01" \
- "\x65\xf7\x82\x6b\x45\x7b\x00\x00\x00\x00\x49\x45" \
- "\x4e\x44\xae\x42\x60\x82"
-image1_data = \
- "\x89\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d" \
- "\x49\x48\x44\x52\x00\x00\x00\x21\x00\x00\x00\x0e" \
- "\x08\x06\x00\x00\x00\xa1\x1e\x75\x8c\x00\x00\x00" \
- "\xc7\x49\x44\x41\x54\x38\x8d\xcd\x94\x59\x0e\xc3" \
- "\x20\x0c\x44\x71\xd5\x7b\xc7\x3d\xf9\xf4\x07\xd3" \
- "\x31\xb1\x59\xa2\x28\xaa\x25\x44\x48\xbc\x3c\xc6" \
- "\x81\x52\xfe\xc0\xe4\x42\x0c\xee\xce\xb9\x12\xe0" \
- "\x8a\x02\x39\x83\x88\x48\xf5\xdf\x02\xc9\x9c\x11" \
- "\xf8\x60\x04\x30\x01\x19\x05\x4a\xe8\x68\xc5\x6a" \
- "\xc2\x06\xc0\x6b\x4b\x10\x91\x11\xc8\x02\x87\x4f" \
- "\x3a\x52\xa5\x87\x75\x71\x23\x89\x7e\x40\x39\xc4" \
- "\x6b\x50\xd8\x86\x5b\x07\xf5\x40\x0a\x45\x00\x53" \
- "\x33\x08\x93\xcf\x86\x74\xa3\x00\x28\xd4\x92\xde" \
- "\xef\x04\x62\x6b\x55\x9d\xfe\x48\xac\x84\x2b\x1a" \
- "\x6d\xaa\xe6\x85\x01\x55\x03\x3b\x99\xc5\x00\x9f" \
- "\x70\xce\xda\x11\x1a\xab\x41\x3b\x6f\x6a\x70\xd1" \
- "\x18\xe0\x08\xe6\xfd\x8b\xc5\x1d\x5d\x00\xa0\xf6" \
- "\x14\x55\x6d\x1f\xf9\xb9\xbe\x49\x52\xaa\xbc\x37" \
- "\x21\xf8\xf8\xb6\xf6\x24\xc5\x57\xef\x89\x47\xaf" \
- "\xed\xf4\x8c\x5e\x60\xb8\xdf\xbe\xb8\x1d\x6d\xab" \
- "\x9a\xff\x99\x27\x00\x00\x00\x00\x49\x45\x4e\x44" \
- "\xae\x42\x60\x82"
-image2_data = \
- "\x89\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d" \
- "\x49\x48\x44\x52\x00\x00\x00\x21\x00\x00\x00\x0e" \
- "\x08\x06\x00\x00\x00\xa1\x1e\x75\x8c\x00\x00\x00" \
- "\xcf\x49\x44\x41\x54\x38\x8d\xd5\x94\xdb\x0e\xc3" \
- "\x20\x0c\x43\xed\xfd\xf8\xd8\x97\xbb\x0f\x34\x5b" \
- "\x48\x08\x45\xd5\x1e\xb6\x48\x88\xf4\x12\xe7\x60" \
- "\x01\xc0\x0f\x04\x6f\xd6\xe9\x9b\xba\x77\x20\x04" \
- "\x80\x92\x4a\x10\x32\xc9\x2e\xfb\xd8\xc7\xd5\xca" \
- "\xbc\xc0\x25\x40\x00\x99\xe9\x57\x84\x95\x68\xfe" \
- "\x7f\x06\xc0\xde\xd1\xde\xb3\x2b\x4a\x1e\xc4\xea" \
- "\x82\x4b\x9e\x74\x09\x71\x65\xbd\x01\xf8\x55\x27" \
- "\xf7\x8a\x72\x01\xe0\xa3\x12\x9f\x34\x5a\x01\x7c" \
- "\x54\x3b\xaf\xdc\x98\x3d\x0f\x71\x09\xd1\x5a\x33" \
- "\x1b\x47\x1f\x47\x07\x2c\x17\x49\x4a\x82\x33\x8f" \
- "\x61\x78\x20\x3a\x88\x17\xe6\x73\x06\xb1\xf0\x8b" \
- "\x07\xba\x03\xe6\x02\xc9\xb8\x31\x07\x7e\x37\xe0" \
- "\x20\x9e\x67\xe3\x38\x67\x10\x97\x7b\x17\xde\x80" \
- "\xc1\x85\xad\x38\x69\x5a\x51\xd5\x22\xc8\x2c\xe7" \
- "\x79\x12\xe2\xfe\xd8\xbe\x83\x76\x20\x92\xf5\x2b" \
- "\x18\x20\xdd\x11\xbb\x10\xe5\x65\xb5\x3a\x5a\x3b" \
- "\xba\xff\x13\x07\x13\xd6\x6f\xa6\x98\x18\x57\x06" \
- "\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82"
-
-class DPlusBase(QWidget):
- def __init__(self,parent = None,name = None,fl = 0):
- QWidget.__init__(self,parent,name,fl)
-
- self.image0 = QPixmap()
- self.image0.loadFromData(image0_data,"PNG")
- self.image1 = QPixmap()
- self.image1.loadFromData(image1_data,"PNG")
- self.image2 = QPixmap()
- self.image2.loadFromData(image2_data,"PNG")
- if not name:
- self.setName("DPlusBase")
-
- self.setMinimumSize(QSize(350,0))
- self.setIcon(self.image0)
-
- DPlusBaseLayout = QGridLayout(self,1,1,11,6,"DPlusBaseLayout")
-
- self.tabuniqueinto = QTabWidget(self,"tabuniqueinto")
-
- self.Widget8 = QWidget(self.tabuniqueinto,"Widget8")
- Widget8Layout = QGridLayout(self.Widget8,1,1,11,6,"Widget8Layout")
-
- self.textLabel1 = QLabel(self.Widget8,"textLabel1")
-
- Widget8Layout.addWidget(self.textLabel1,0,0)
-
- self.LBValeurs = QListBox(self.Widget8,"LBValeurs")
- self.LBValeurs.setMinimumSize(QSize(200,0))
-
- Widget8Layout.addMultiCellWidget(self.LBValeurs,1,9,0,0)
- spacer4 = QSpacerItem(21,231,QSizePolicy.Minimum,QSizePolicy.Expanding)
- Widget8Layout.addMultiCell(spacer4,5,9,1,2)
- spacer3_3 = QSpacerItem(31,30,QSizePolicy.Minimum,QSizePolicy.Expanding)
- Widget8Layout.addMultiCell(spacer3_3,0,0,1,2)
-
- self.BAjout1Val = QToolButton(self.Widget8,"BAjout1Val")
- self.BAjout1Val.setSizePolicy(QSizePolicy(0,0,0,0,self.BAjout1Val.sizePolicy().hasHeightForWidth()))
- self.BAjout1Val.setMinimumSize(QSize(40,30))
- self.BAjout1Val.setIconSet(QIconSet(self.image1))
-
- Widget8Layout.addMultiCellWidget(self.BAjout1Val,2,2,1,2)
- spacer5 = QSpacerItem(150,20,QSizePolicy.Expanding,QSizePolicy.Minimum)
- Widget8Layout.addMultiCell(spacer5,8,8,2,4)
-
- layout7 = QVBoxLayout(None,0,6,"layout7")
-
- self.bParam = QPushButton(self.Widget8,"bParam")
- self.bParam.setMinimumSize(QSize(0,30))
- self.bParam.setAutoDefault(1)
- layout7.addWidget(self.bParam)
-
- self.bImport = QPushButton(self.Widget8,"bImport")
- self.bImport.setMinimumSize(QSize(0,30))
- self.bImport.setAutoDefault(1)
- layout7.addWidget(self.bImport)
-
- Widget8Layout.addMultiCellLayout(layout7,7,8,5,5)
- spacer3 = QSpacerItem(31,50,QSizePolicy.Minimum,QSizePolicy.Expanding)
- Widget8Layout.addItem(spacer3,6,5)
- spacer3_2 = QSpacerItem(31,50,QSizePolicy.Minimum,QSizePolicy.Expanding)
- Widget8Layout.addItem(spacer3_2,9,5)
-
- self.BSalome = QToolButton(self.Widget8,"BSalome")
- self.BSalome.setSizePolicy(QSizePolicy(0,0,0,0,self.BSalome.sizePolicy().hasHeightForWidth()))
- self.BSalome.setMinimumSize(QSize(40,30))
- self.BSalome.setIconSet(QIconSet(self.image0))
-
- Widget8Layout.addWidget(self.BSalome,4,3)
-
- self.BView2D = QPushButton(self.Widget8,"BView2D")
- self.BView2D.setMinimumSize(QSize(120,30))
-
- Widget8Layout.addMultiCellWidget(self.BView2D,4,4,4,5)
-
- layout12 = QHBoxLayout(None,0,6,"layout12")
-
- self.textLabel1_2 = QLabel(self.Widget8,"textLabel1_2")
- layout12.addWidget(self.textLabel1_2)
- spacer6 = QSpacerItem(111,20,QSizePolicy.Expanding,QSizePolicy.Minimum)
- layout12.addItem(spacer6)
-
- Widget8Layout.addMultiCellLayout(layout12,0,1,3,5)
-
- self.LEValeur = QLineEdit(self.Widget8,"LEValeur")
- self.LEValeur.setSizePolicy(QSizePolicy(1,1,0,0,self.LEValeur.sizePolicy().hasHeightForWidth()))
- self.LEValeur.setMinimumSize(QSize(220,30))
-
- Widget8Layout.addMultiCellWidget(self.LEValeur,2,3,3,5)
-
- self.BSup1Val = QToolButton(self.Widget8,"BSup1Val")
- self.BSup1Val.setSizePolicy(QSizePolicy(0,0,0,0,self.BSup1Val.sizePolicy().hasHeightForWidth()))
- self.BSup1Val.setMinimumSize(QSize(40,30))
- self.BSup1Val.setIconSet(QIconSet(self.image2))
-
- Widget8Layout.addMultiCellWidget(self.BSup1Val,3,4,1,2)
-
- self.Commentaire = QLabel(self.Widget8,"Commentaire")
- self.Commentaire.setMinimumSize(QSize(0,60))
-
- Widget8Layout.addMultiCellWidget(self.Commentaire,5,5,3,5)
-
- layout6 = QHBoxLayout(None,0,6,"layout6")
-
- self.bSup = QPushButton(self.Widget8,"bSup")
- self.bSup.setMinimumSize(QSize(0,30))
- self.bSup.setAutoDefault(1)
- layout6.addWidget(self.bSup)
-
- self.bOk = QPushButton(self.Widget8,"bOk")
- self.bOk.setMinimumSize(QSize(0,30))
- self.bOk.setAutoDefault(1)
- self.bOk.setDefault(1)
- layout6.addWidget(self.bOk)
-
- self.bHelp = QPushButton(self.Widget8,"bHelp")
- self.bHelp.setMinimumSize(QSize(0,30))
- self.bHelp.setAutoDefault(1)
- layout6.addWidget(self.bHelp)
-
- Widget8Layout.addMultiCellLayout(layout6,10,10,0,5)
- self.tabuniqueinto.insertTab(self.Widget8,QString(""))
-
- DPlusBaseLayout.addWidget(self.tabuniqueinto,0,0)
-
- self.languageChange()
-
- self.resize(QSize(552,480).expandedTo(self.minimumSizeHint()))
- self.clearWState(Qt.WState_Polished)
-
- self.connect(self.bHelp,SIGNAL("clicked()"),self.ViewDoc)
- self.connect(self.bOk,SIGNAL("clicked()"),self.BOkPourListePressed)
- self.connect(self.bSup,SIGNAL("clicked()"),self.BSupPressed)
- self.connect(self.bParam,SIGNAL("clicked()"),self.BParametresPressed)
- self.connect(self.bImport,SIGNAL("clicked()"),self.BImportPressed)
- self.connect(self.BAjout1Val,SIGNAL("clicked()"),self.Ajout1Valeur)
- self.connect(self.BSup1Val,SIGNAL("clicked()"),self.Sup1Valeur)
- self.connect(self.LEValeur,SIGNAL("returnPressed()"),self.LEValeurPressed)
- self.connect(self.BSalome,SIGNAL("clicked()"),self.BSalomePressed)
- self.connect(self.BView2D,SIGNAL("clicked()"),self.BView2DPressed)
-
- self.setTabOrder(self.LEValeur,self.tabuniqueinto)
- self.setTabOrder(self.tabuniqueinto,self.bSup)
- self.setTabOrder(self.bSup,self.bOk)
- self.setTabOrder(self.bOk,self.bHelp)
- self.setTabOrder(self.bHelp,self.bParam)
- self.setTabOrder(self.bParam,self.bImport)
- self.setTabOrder(self.bImport,self.LBValeurs)
- self.setTabOrder(self.LBValeurs,self.BView2D)
-
-
- def languageChange(self):
- self.setCaption(self.__tr("DUnIn"))
- self.textLabel1.setText(self.__tr("<u><font size=\"+1\">Valeur(s) actuelle(s)</font></u>"))
- self.BAjout1Val.setText(QString.null)
- QToolTip.add(self.BAjout1Val,self.__trUtf8("\x61\x6a\x6f\x75\x74\x65\x20\x6c\x61\x20\x76\x61\x6c\x65\x75\x72\x20\x73\x61\x69\x73\x69\x65\x20\x73\x6f\x75\x73\x20\x6c\x20\x6f\x63\x63\x75\x72\x65\x6e\x63\x65\x20\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x6e\xc3\xa9\x65\x20\x28\x65\x6e\x20\x66\x69\x6e\x20\x64\x65\x20\x6c\x69\x73\x74\x65\x20\x73\x69\x20\x69\x6c\x20\x6e\x20\x79\x20\x61\x20\x70\x61\x73\x20\x64\x65\x20\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x29"))
- self.bParam.setText(self.__tr("&Parametres"))
- self.bParam.setAccel(self.__tr("Alt+P"))
- QToolTip.add(self.bParam,self.__tr("suppression du mot clef"))
- self.bImport.setText(self.__tr("&Importer"))
- self.bImport.setAccel(self.__tr("Alt+I"))
- QToolTip.add(self.bImport,self.__tr("suppression du mot clef"))
- self.BSalome.setText(QString.null)
- QToolTip.add(self.BSalome,self.__trUtf8("\x61\x6a\x6f\x75\x74\x65\x20\x6c\x61\x20\x76\x61\x6c\x65\x75\x72\x20\x73\x61\x69\x73\x69\x65\x20\x73\x6f\x75\x73\x20\x6c\x20\x6f\x63\x63\x75\x72\x65\x6e\x63\x65\x20\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x6e\xc3\xa9\x65\x20\x28\x65\x6e\x20\x66\x69\x6e\x20\x64\x65\x20\x6c\x69\x73\x74\x65\x20\x73\x69\x20\x69\x6c\x20\x6e\x20\x79\x20\x61\x20\x70\x61\x73\x20\x64\x65\x20\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x29"))
- self.BView2D.setText(self.__tr("Visualiser"))
- self.textLabel1_2.setText(self.__tr("<font size=\"+1\">Valeur</font>"))
- self.BSup1Val.setText(QString.null)
- QToolTip.add(self.BSup1Val,self.__tr("enleve l occurence selectionnee"))
- self.Commentaire.setText(QString.null)
- self.bSup.setText(self.__tr("&Supprimer"))
- self.bSup.setAccel(self.__tr("Alt+S"))
- QToolTip.add(self.bSup,self.__tr("suppression du mot clef"))
- self.bOk.setText(self.__tr("&Valider"))
- self.bOk.setAccel(self.__tr("Shift+A, Alt+A, Alt+A, Alt+A"))
- QToolTip.add(self.bOk,self.__tr("validation de la saisie"))
- self.bHelp.setText(self.__tr("&Documentation"))
- self.bHelp.setAccel(self.__tr("Alt+D"))
- QToolTip.add(self.bHelp,self.__tr("affichage documentation aster"))
- self.tabuniqueinto.changeTab(self.Widget8,self.__tr("Saisir Valeur"))
-
-
- def BSupPressed(self):
- print "DPlusBase.BSupPressed(): Not implemented yet"
-
- def ViewDoc(self):
- print "DPlusBase.ViewDoc(): Not implemented yet"
-
- def BOkPourListePressed(self):
- print "DPlusBase.BOkPourListePressed(): Not implemented yet"
-
- def BParametresPressed(self):
- print "DPlusBase.BParametresPressed(): Not implemented yet"
-
- def LEValeurPressed(self):
- print "DPlusBase.LEValeurPressed(): Not implemented yet"
-
- def Ajout1Valeur(self):
- print "DPlusBase.Ajout1Valeur(): Not implemented yet"
-
- def Sup1Valeur(self):
- print "DPlusBase.Sup1Valeur(): Not implemented yet"
-
- def BImportPressed(self):
- print "DPlusBase.BImportPressed(): Not implemented yet"
-
- def BSalomePressed(self):
- print "DPlusBase.BSalomePressed(): Not implemented yet"
-
- def BView2DPressed(self):
- print "DPlusBase.BView2DPressed(): Not implemented yet"
-
- def __tr(self,s,c = None):
- return qApp.translate("DPlusBase",s,c)
-
- def __trUtf8(self,s,c = None):
- return qApp.translate("DPlusBase",s,c,QApplication.UnicodeUTF8)
<rect>
<x>0</x>
<y>0</y>
- <width>552</width>
+ <width>581</width>
<height>480</height>
</rect>
</property>
<property name="minimumSize">
<size>
- <width>350</width>
+ <width>50</width>
<height>0</height>
</size>
</property>
+++ /dev/null
-# -*- coding: utf-8 -*-
-
-# Form implementation generated from reading ui file 'desPlusieursInto.ui'
-#
-# Created: ven avr 4 11:27:09 2008
-# by: The PyQt User Interface Compiler (pyuic) 3.13
-#
-# WARNING! All changes made in this file will be lost!
-
-
-from qt import *
-
-image0_data = \
- "\x89\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d" \
- "\x49\x48\x44\x52\x00\x00\x00\x21\x00\x00\x00\x0e" \
- "\x08\x06\x00\x00\x00\xa1\x1e\x75\x8c\x00\x00\x00" \
- "\xcf\x49\x44\x41\x54\x38\x8d\xd5\x94\xdb\x0e\xc3" \
- "\x20\x0c\x43\xed\xfd\xf8\xd8\x97\xbb\x0f\x34\x5b" \
- "\x48\x08\x45\xd5\x1e\xb6\x48\x88\xf4\x12\xe7\x60" \
- "\x01\xc0\x0f\x04\x6f\xd6\xe9\x9b\xba\x77\x20\x04" \
- "\x80\x92\x4a\x10\x32\xc9\x2e\xfb\xd8\xc7\xd5\xca" \
- "\xbc\xc0\x25\x40\x00\x99\xe9\x57\x84\x95\x68\xfe" \
- "\x7f\x06\xc0\xde\xd1\xde\xb3\x2b\x4a\x1e\xc4\xea" \
- "\x82\x4b\x9e\x74\x09\x71\x65\xbd\x01\xf8\x55\x27" \
- "\xf7\x8a\x72\x01\xe0\xa3\x12\x9f\x34\x5a\x01\x7c" \
- "\x54\x3b\xaf\xdc\x98\x3d\x0f\x71\x09\xd1\x5a\x33" \
- "\x1b\x47\x1f\x47\x07\x2c\x17\x49\x4a\x82\x33\x8f" \
- "\x61\x78\x20\x3a\x88\x17\xe6\x73\x06\xb1\xf0\x8b" \
- "\x07\xba\x03\xe6\x02\xc9\xb8\x31\x07\x7e\x37\xe0" \
- "\x20\x9e\x67\xe3\x38\x67\x10\x97\x7b\x17\xde\x80" \
- "\xc1\x85\xad\x38\x69\x5a\x51\xd5\x22\xc8\x2c\xe7" \
- "\x79\x12\xe2\xfe\xd8\xbe\x83\x76\x20\x92\xf5\x2b" \
- "\x18\x20\xdd\x11\xbb\x10\xe5\x65\xb5\x3a\x5a\x3b" \
- "\xba\xff\x13\x07\x13\xd6\x6f\xa6\x98\x18\x57\x06" \
- "\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82"
-image1_data = \
- "\x89\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d" \
- "\x49\x48\x44\x52\x00\x00\x00\x21\x00\x00\x00\x0e" \
- "\x08\x06\x00\x00\x00\xa1\x1e\x75\x8c\x00\x00\x00" \
- "\xc7\x49\x44\x41\x54\x38\x8d\xcd\x94\x59\x0e\xc3" \
- "\x20\x0c\x44\x71\xd5\x7b\xc7\x3d\xf9\xf4\x07\xd3" \
- "\x31\xb1\x59\xa2\x28\xaa\x25\x44\x48\xbc\x3c\xc6" \
- "\x81\x52\xfe\xc0\xe4\x42\x0c\xee\xce\xb9\x12\xe0" \
- "\x8a\x02\x39\x83\x88\x48\xf5\xdf\x02\xc9\x9c\x11" \
- "\xf8\x60\x04\x30\x01\x19\x05\x4a\xe8\x68\xc5\x6a" \
- "\xc2\x06\xc0\x6b\x4b\x10\x91\x11\xc8\x02\x87\x4f" \
- "\x3a\x52\xa5\x87\x75\x71\x23\x89\x7e\x40\x39\xc4" \
- "\x6b\x50\xd8\x86\x5b\x07\xf5\x40\x0a\x45\x00\x53" \
- "\x33\x08\x93\xcf\x86\x74\xa3\x00\x28\xd4\x92\xde" \
- "\xef\x04\x62\x6b\x55\x9d\xfe\x48\xac\x84\x2b\x1a" \
- "\x6d\xaa\xe6\x85\x01\x55\x03\x3b\x99\xc5\x00\x9f" \
- "\x70\xce\xda\x11\x1a\xab\x41\x3b\x6f\x6a\x70\xd1" \
- "\x18\xe0\x08\xe6\xfd\x8b\xc5\x1d\x5d\x00\xa0\xf6" \
- "\x14\x55\x6d\x1f\xf9\xb9\xbe\x49\x52\xaa\xbc\x37" \
- "\x21\xf8\xf8\xb6\xf6\x24\xc5\x57\xef\x89\x47\xaf" \
- "\xed\xf4\x8c\x5e\x60\xb8\xdf\xbe\xb8\x1d\x6d\xab" \
- "\x9a\xff\x99\x27\x00\x00\x00\x00\x49\x45\x4e\x44" \
- "\xae\x42\x60\x82"
-
-class DPlusInto(QWidget):
- def __init__(self,parent = None,name = None,fl = 0):
- QWidget.__init__(self,parent,name,fl)
-
- self.image0 = QPixmap()
- self.image0.loadFromData(image0_data,"PNG")
- self.image1 = QPixmap()
- self.image1.loadFromData(image1_data,"PNG")
- if not name:
- self.setName("DPlusInto")
-
- self.setMinimumSize(QSize(350,0))
-
- DPlusIntoLayout = QGridLayout(self,1,1,11,6,"DPlusIntoLayout")
-
- self.tabuniqueinto = QTabWidget(self,"tabuniqueinto")
-
- self.Widget8 = QWidget(self.tabuniqueinto,"Widget8")
- Widget8Layout = QGridLayout(self.Widget8,1,1,11,6,"Widget8Layout")
-
- self.textLabel1 = QLabel(self.Widget8,"textLabel1")
-
- Widget8Layout.addMultiCellWidget(self.textLabel1,0,0,0,1)
-
- self.bSup = QPushButton(self.Widget8,"bSup")
- self.bSup.setMinimumSize(QSize(130,30))
- self.bSup.setAutoDefault(1)
-
- Widget8Layout.addWidget(self.bSup,3,0)
-
- self.bOk = QPushButton(self.Widget8,"bOk")
- self.bOk.setMinimumSize(QSize(130,30))
- self.bOk.setAutoDefault(1)
- self.bOk.setDefault(1)
-
- Widget8Layout.addMultiCellWidget(self.bOk,3,3,1,2)
-
- self.bHelp = QPushButton(self.Widget8,"bHelp")
- self.bHelp.setSizePolicy(QSizePolicy(1,0,150,0,self.bHelp.sizePolicy().hasHeightForWidth()))
- self.bHelp.setMinimumSize(QSize(130,30))
- self.bHelp.setAutoDefault(1)
-
- Widget8Layout.addWidget(self.bHelp,3,3)
-
- self.Commentaire = QLabel(self.Widget8,"Commentaire")
- self.Commentaire.setMinimumSize(QSize(0,40))
-
- Widget8Layout.addMultiCellWidget(self.Commentaire,2,2,0,3)
-
- layout8 = QHBoxLayout(None,0,6,"layout8")
-
- self.LBValeurs = QListBox(self.Widget8,"LBValeurs")
- layout8.addWidget(self.LBValeurs)
-
- layout5 = QVBoxLayout(None,0,6,"layout5")
- spacer2 = QSpacerItem(21,44,QSizePolicy.Minimum,QSizePolicy.Expanding)
- layout5.addItem(spacer2)
-
- layout2 = QVBoxLayout(None,0,6,"layout2")
-
- self.BSup1Val = QToolButton(self.Widget8,"BSup1Val")
- self.BSup1Val.setMinimumSize(QSize(40,31))
- self.BSup1Val.setMaximumSize(QSize(40,31))
- self.BSup1Val.setIconSet(QIconSet(self.image0))
- layout2.addWidget(self.BSup1Val)
-
- self.BAjout1Val = QToolButton(self.Widget8,"BAjout1Val")
- self.BAjout1Val.setMinimumSize(QSize(40,31))
- self.BAjout1Val.setMaximumSize(QSize(40,31))
- self.BAjout1Val.setIconSet(QIconSet(self.image1))
- layout2.addWidget(self.BAjout1Val)
- spacer3 = QSpacerItem(21,176,QSizePolicy.Minimum,QSizePolicy.Expanding)
- layout2.addItem(spacer3)
- layout5.addLayout(layout2)
- layout8.addLayout(layout5)
-
- self.listBoxVal = QListBox(self.Widget8,"listBoxVal")
- layout8.addWidget(self.listBoxVal)
-
- Widget8Layout.addMultiCellLayout(layout8,1,1,0,3)
-
- self.textLabel1_2 = QLabel(self.Widget8,"textLabel1_2")
-
- Widget8Layout.addMultiCellWidget(self.textLabel1_2,0,0,2,3)
- self.tabuniqueinto.insertTab(self.Widget8,QString(""))
-
- DPlusIntoLayout.addWidget(self.tabuniqueinto,0,0)
-
- self.languageChange()
-
- self.resize(QSize(482,480).expandedTo(self.minimumSizeHint()))
- self.clearWState(Qt.WState_Polished)
-
- self.connect(self.bHelp,SIGNAL("clicked()"),self.ViewDoc)
- self.connect(self.bOk,SIGNAL("clicked()"),self.BOkPourListePressed)
- self.connect(self.bSup,SIGNAL("clicked()"),self.BSupPressed)
- self.connect(self.LBValeurs,SIGNAL("doubleClicked(QListBoxItem*)"),self.Sup1Valeur)
- self.connect(self.BAjout1Val,SIGNAL("clicked()"),self.Ajout1Valeur)
- self.connect(self.BSup1Val,SIGNAL("clicked()"),self.Sup1Valeur)
-
- self.setTabOrder(self.listBoxVal,self.tabuniqueinto)
- self.setTabOrder(self.tabuniqueinto,self.bSup)
- self.setTabOrder(self.bSup,self.bOk)
- self.setTabOrder(self.bOk,self.bHelp)
- self.setTabOrder(self.bHelp,self.LBValeurs)
-
-
- def languageChange(self):
- self.setCaption(self.__tr("DUnIn"))
- self.textLabel1.setText(self.__tr("<u><font size=\"+1\">Valeur(s) actuelle(s)</font></u>"))
- self.bSup.setText(self.__tr("&Supprimer"))
- self.bSup.setAccel(self.__tr("Alt+S"))
- QToolTip.add(self.bSup,self.__tr("suppression du mot clef"))
- self.bOk.setText(self.__tr("&Valider"))
- self.bOk.setAccel(self.__tr("Shift+A, Alt+A, Alt+A, Alt+A"))
- QToolTip.add(self.bOk,self.__tr("validation de la saisie"))
- self.bHelp.setText(self.__tr("&Documentation"))
- self.bHelp.setAccel(self.__tr("Alt+D"))
- QToolTip.add(self.bHelp,self.__tr("affichage documentation aster"))
- self.Commentaire.setText(QString.null)
- self.BSup1Val.setText(QString.null)
- QToolTip.add(self.BSup1Val,self.__tr("enleve l occurence selectionnee"))
- self.BAjout1Val.setText(QString.null)
- QToolTip.add(self.BAjout1Val,self.__trUtf8("\x61\x6a\x6f\x75\x74\x65\x20\x6c\x61\x20\x76\x61\x6c\x65\x75\x72\x20\x73\x61\x69\x73\x69\x65\x20\x73\x6f\x75\x73\x20\x6c\x20\x6f\x63\x63\x75\x72\x65\x6e\x63\x65\x20\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x6e\xc3\xa9\x65\x20\x28\x65\x6e\x20\x66\x69\x6e\x20\x64\x65\x20\x6c\x69\x73\x74\x65\x20\x73\x69\x20\x69\x6c\x20\x6e\x20\x79\x20\x61\x20\x70\x61\x73\x20\x64\x65\x20\x73\x65\x6c\x65\x63\x74\x69\x6f\x6e\x29"))
- self.textLabel1_2.setText(self.__tr("<u><font size=\"+1\">Valeur(s) possibles(s)</font></u>"))
- self.tabuniqueinto.changeTab(self.Widget8,self.__tr("Saisir Valeur"))
-
-
- def BSupPressed(self):
- print "DPlusInto.BSupPressed(): Not implemented yet"
-
- def ViewDoc(self):
- print "DPlusInto.ViewDoc(): Not implemented yet"
-
- def BOkPourListePressed(self):
- print "DPlusInto.BOkPourListePressed(): Not implemented yet"
-
- def Ajout1Valeur(self):
- print "DPlusInto.Ajout1Valeur(): Not implemented yet"
-
- def Sup1Valeur(self):
- print "DPlusInto.Sup1Valeur(): Not implemented yet"
-
- def __tr(self,s,c = None):
- return qApp.translate("DPlusInto",s,c)
-
- def __trUtf8(self,s,c = None):
- return qApp.translate("DPlusInto",s,c,QApplication.UnicodeUTF8)
<rect>
<x>0</x>
<y>0</y>
- <width>482</width>
+ <width>528</width>
<height>480</height>
</rect>
</property>
<property name="minimumSize">
<size>
- <width>350</width>
+ <width>50</width>
<height>0</height>
</size>
</property>
<attribute name="title">
<string>Saisir Valeur</string>
</attribute>
- <grid>
+ <widget class="QLabel">
<property name="name">
- <cstring>unnamed</cstring>
- </property>
- <widget class="QLabel" row="0" column="0" rowspan="1" colspan="2">
- <property name="name">
- <cstring>textLabel1</cstring>
- </property>
- <property name="text">
- <string><u><font size="+1">Valeur(s) actuelle(s)</font></u></string>
- </property>
- </widget>
- <widget class="QPushButton" row="3" column="0">
- <property name="name">
- <cstring>bSup</cstring>
- </property>
- <property name="minimumSize">
- <size>
- <width>130</width>
- <height>30</height>
- </size>
- </property>
- <property name="text">
- <string>&Supprimer</string>
- </property>
- <property name="accel">
- <string>Alt+S</string>
- </property>
- <property name="autoDefault">
- <bool>true</bool>
- </property>
- <property name="toolTip" stdset="0">
- <string>suppression du mot clef</string>
- </property>
- </widget>
- <widget class="QPushButton" row="3" column="1" rowspan="1" colspan="2">
- <property name="name">
- <cstring>bOk</cstring>
- </property>
- <property name="minimumSize">
- <size>
- <width>130</width>
- <height>30</height>
- </size>
- </property>
- <property name="text">
- <string>&Valider</string>
- </property>
- <property name="accel">
- <string>Shift+A, Alt+A, Alt+A, Alt+A</string>
- </property>
- <property name="autoDefault">
- <bool>true</bool>
- </property>
- <property name="default">
- <bool>true</bool>
- </property>
- <property name="toolTip" stdset="0">
- <string>validation de la saisie</string>
- </property>
- </widget>
- <widget class="QPushButton" row="3" column="3">
- <property name="name">
- <cstring>bHelp</cstring>
- </property>
- <property name="sizePolicy">
- <sizepolicy>
- <hsizetype>1</hsizetype>
- <vsizetype>0</vsizetype>
- <horstretch>150</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="minimumSize">
- <size>
- <width>130</width>
- <height>30</height>
- </size>
- </property>
- <property name="text">
- <string>&Documentation</string>
- </property>
- <property name="accel">
- <string>Alt+D</string>
- </property>
- <property name="autoDefault">
- <bool>true</bool>
- </property>
- <property name="toolTip" stdset="0">
- <string>affichage documentation aster</string>
- </property>
- </widget>
- <widget class="QLabel" row="2" column="0" rowspan="1" colspan="4">
- <property name="name">
- <cstring>Commentaire</cstring>
- </property>
- <property name="minimumSize">
- <size>
- <width>0</width>
- <height>40</height>
- </size>
- </property>
- <property name="text">
- <string></string>
- </property>
- </widget>
- <widget class="QLayoutWidget" row="1" column="0" rowspan="1" colspan="4">
- <property name="name">
- <cstring>layout8</cstring>
- </property>
- <hbox>
- <property name="name">
- <cstring>unnamed</cstring>
- </property>
- <widget class="QListBox">
- <property name="name">
- <cstring>LBValeurs</cstring>
- </property>
- </widget>
- <widget class="QLayoutWidget">
- <property name="name">
- <cstring>layout5</cstring>
- </property>
- <vbox>
- <property name="name">
- <cstring>unnamed</cstring>
- </property>
- <spacer>
- <property name="name">
- <cstring>spacer2</cstring>
- </property>
- <property name="orientation">
- <enum>Vertical</enum>
- </property>
- <property name="sizeType">
- <enum>Expanding</enum>
- </property>
- <property name="sizeHint">
- <size>
- <width>21</width>
- <height>44</height>
- </size>
- </property>
- </spacer>
- <widget class="QLayoutWidget">
- <property name="name">
- <cstring>layout2</cstring>
- </property>
- <vbox>
- <property name="name">
- <cstring>unnamed</cstring>
- </property>
- <widget class="QToolButton">
- <property name="name">
- <cstring>BSup1Val</cstring>
- </property>
- <property name="minimumSize">
- <size>
- <width>40</width>
- <height>31</height>
- </size>
- </property>
- <property name="maximumSize">
- <size>
- <width>40</width>
- <height>31</height>
- </size>
- </property>
- <property name="text">
- <string></string>
- </property>
- <property name="iconSet">
- <iconset>image0</iconset>
- </property>
- <property name="toolTip" stdset="0">
- <string>enleve l occurence selectionnee</string>
- </property>
- </widget>
- <widget class="QToolButton">
- <property name="name">
- <cstring>BAjout1Val</cstring>
- </property>
- <property name="minimumSize">
- <size>
- <width>40</width>
- <height>31</height>
- </size>
- </property>
- <property name="maximumSize">
- <size>
- <width>40</width>
- <height>31</height>
- </size>
- </property>
- <property name="text">
- <string></string>
- </property>
- <property name="iconSet">
- <iconset>image1</iconset>
- </property>
- <property name="toolTip" stdset="0">
- <string>ajoute la valeur saisie sous l occurence selectionnée (en fin de liste si il n y a pas de selection)</string>
- </property>
- </widget>
- <spacer>
- <property name="name">
- <cstring>spacer3</cstring>
- </property>
- <property name="orientation">
- <enum>Vertical</enum>
- </property>
- <property name="sizeType">
- <enum>Expanding</enum>
- </property>
- <property name="sizeHint">
- <size>
- <width>21</width>
- <height>176</height>
- </size>
- </property>
- </spacer>
- </vbox>
- </widget>
- </vbox>
- </widget>
- <widget class="QListBox">
- <property name="name">
- <cstring>listBoxVal</cstring>
- </property>
- </widget>
- </hbox>
- </widget>
- <widget class="QLabel" row="0" column="2" rowspan="1" colspan="2">
- <property name="name">
- <cstring>textLabel1_2</cstring>
- </property>
- <property name="text">
- <string><u><font size="+1">Valeur(s) possibles(s)</font></u></string>
- </property>
- </widget>
- </grid>
+ <cstring>textLabel1</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>11</x>
+ <y>11</y>
+ <width>198</width>
+ <height>23</height>
+ </rect>
+ </property>
+ <property name="text">
+ <string><u><font size="+1">Valeur(s) actuelle(s)</font></u></string>
+ </property>
+ </widget>
+ <widget class="QPushButton">
+ <property name="name">
+ <cstring>bSup</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>11</x>
+ <y>384</y>
+ <width>130</width>
+ <height>30</height>
+ </rect>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>130</width>
+ <height>30</height>
+ </size>
+ </property>
+ <property name="text">
+ <string>&Supprimer</string>
+ </property>
+ <property name="accel">
+ <string>Alt+S</string>
+ </property>
+ <property name="autoDefault">
+ <bool>true</bool>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>suppression du mot clef</string>
+ </property>
+ </widget>
+ <widget class="QPushButton">
+ <property name="name">
+ <cstring>bOk</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>147</x>
+ <y>384</y>
+ <width>130</width>
+ <height>30</height>
+ </rect>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>130</width>
+ <height>30</height>
+ </size>
+ </property>
+ <property name="text">
+ <string>&Valider</string>
+ </property>
+ <property name="accel">
+ <string>Shift+A, Alt+A, Alt+A, Alt+A</string>
+ </property>
+ <property name="autoDefault">
+ <bool>true</bool>
+ </property>
+ <property name="default">
+ <bool>true</bool>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>validation de la saisie</string>
+ </property>
+ </widget>
+ <widget class="QPushButton">
+ <property name="name">
+ <cstring>bHelp</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>283</x>
+ <y>384</y>
+ <width>208</width>
+ <height>30</height>
+ </rect>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>1</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>150</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>130</width>
+ <height>30</height>
+ </size>
+ </property>
+ <property name="text">
+ <string>&Documentation</string>
+ </property>
+ <property name="accel">
+ <string>Alt+D</string>
+ </property>
+ <property name="autoDefault">
+ <bool>true</bool>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>affichage documentation aster</string>
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>Commentaire</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>11</x>
+ <y>338</y>
+ <width>480</width>
+ <height>40</height>
+ </rect>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>0</width>
+ <height>40</height>
+ </size>
+ </property>
+ <property name="text">
+ <string></string>
+ </property>
+ </widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>textLabel1_2</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>215</x>
+ <y>11</y>
+ <width>276</width>
+ <height>23</height>
+ </rect>
+ </property>
+ <property name="text">
+ <string><u><font size="+1">Valeur(s) possibles(s)</font></u></string>
+ </property>
+ </widget>
+ <widget class="QListBox">
+ <property name="name">
+ <cstring>LBValeurs</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>12</x>
+ <y>41</y>
+ <width>211</width>
+ <height>290</height>
+ </rect>
+ </property>
+ </widget>
+ <widget class="QListBox">
+ <property name="name">
+ <cstring>listBoxVal</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>279</x>
+ <y>41</y>
+ <width>211</width>
+ <height>290</height>
+ </rect>
+ </property>
+ </widget>
+ <spacer>
+ <property name="name">
+ <cstring>spacer2</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Vertical</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>21</width>
+ <height>37</height>
+ </size>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>240</x>
+ <y>42</y>
+ <width>21</width>
+ <height>37</height>
+ </rect>
+ </property>
+ </spacer>
+ <spacer>
+ <property name="name">
+ <cstring>spacer3</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Vertical</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>21</width>
+ <height>169</height>
+ </size>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>240</x>
+ <y>160</y>
+ <width>21</width>
+ <height>169</height>
+ </rect>
+ </property>
+ </spacer>
+ <widget class="QToolButton">
+ <property name="name">
+ <cstring>BAjout1Val</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>230</x>
+ <y>50</y>
+ <width>40</width>
+ <height>31</height>
+ </rect>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>40</width>
+ <height>31</height>
+ </size>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>40</width>
+ <height>31</height>
+ </size>
+ </property>
+ <property name="text">
+ <string></string>
+ </property>
+ <property name="iconSet">
+ <iconset>image0</iconset>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>ajoute la valeur saisie sous l occurence selectionnée (en fin de liste si il n y a pas de selection)</string>
+ </property>
+ </widget>
+ <widget class="QToolButton">
+ <property name="name">
+ <cstring>BSup1Val</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>230</x>
+ <y>90</y>
+ <width>40</width>
+ <height>31</height>
+ </rect>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>40</width>
+ <height>31</height>
+ </size>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>40</width>
+ <height>31</height>
+ </size>
+ </property>
+ <property name="text">
+ <string></string>
+ </property>
+ <property name="iconSet">
+ <iconset>image1</iconset>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>enleve l occurence selectionnee</string>
+ </property>
+ </widget>
</widget>
</widget>
</grid>
</widget>
<images>
<image name="image0">
- <data format="PNG" length="264">89504e470d0a1a0a0000000d49484452000000210000000e0806000000a11e758c000000cf49444154388dd594db0ec3200c43edfdf8d897bb0f345b480845d51eb64888f412e76001c00f046fd6e99bba77200480924a1032c92efbd8c7d5cabcc025400099e957849568fe7f06c0ded1deb32b4a1ec4ea824b9e74097165bd01f85527f78a7201e0a3129f345a017c543bafdc983d0f7109d15a331b471f47072c17494a82338f6178203a8817e67306b1f08b07ba03e602c9b831077e37e0209e67e3386710977b17de80c185ad38695a51d522c82ce77912e2fed8be83762092f52b1820dd11bb10e565b53a5a3bbaff130713d66fa6981857060000000049454e44ae426082</data>
+ <data format="PNG" length="256">89504e470d0a1a0a0000000d49484452000000210000000e0806000000a11e758c000000c749444154388dcd94590ec3200c4471d57bc73df9f407d331b159a228aa254448bc3cc68152fec0e4420ceeceb912e08a0239838848f5df02c99c11f86004300119054ae868c56ac206c06b4b109111c802874f3a52a587757123897e4039c46b50d8865b07f5400a450053330893cf8674a30028d492deef04626b559dfe48ac842b1a6daae6850155033b99c5009f70ceda111aab413b6f6a70d118e008e6fd8bc51d5d00a0f614556d1ff9b9be4952aabc3721f8f8b6f624c557ef8947afedf48c5e60b8dfbeb81d6dab9aff99270000000049454e44ae426082</data>
</image>
<image name="image1">
- <data format="PNG" length="256">89504e470d0a1a0a0000000d49484452000000210000000e0806000000a11e758c000000c749444154388dcd94590ec3200c4471d57bc73df9f407d331b159a228aa254448bc3cc68152fec0e4420ceeceb912e08a0239838848f5df02c99c11f86004300119054ae868c56ac206c06b4b109111c802874f3a52a587757123897e4039c46b50d8865b07f5400a450053330893cf8674a30028d492deef04626b559dfe48ac842b1a6daae6850155033b99c5009f70ceda111aab413b6f6a70d118e008e6fd8bc51d5d00a0f614556d1ff9b9be4952aabc3721f8f8b6f624c557ef8947afedf48c5e60b8dfbeb81d6dab9aff99270000000049454e44ae426082</data>
+ <data format="PNG" length="264">89504e470d0a1a0a0000000d49484452000000210000000e0806000000a11e758c000000cf49444154388dd594db0ec3200c43edfdf8d897bb0f345b480845d51eb64888f412e76001c00f046fd6e99bba77200480924a1032c92efbd8c7d5cabcc025400099e957849568fe7f06c0ded1deb32b4a1ec4ea824b9e74097165bd01f85527f78a7201e0a3129f345a017c543bafdc983d0f7109d15a331b471f47072c17494a82338f6178203a8817e67306b1f08b07ba03e602c9b831077e37e0209e67e3386710977b17de80c185ad38695a51d522c82ce77912e2fed8be83762092f52b1820dd11bb10e565b53a5a3bbaff130713d66fa6981857060000000049454e44ae426082</data>
</image>
</images>
<connections>
+++ /dev/null
-# -*- coding: utf-8 -*-
-
-# Form implementation generated from reading ui file 'desPoursuite.ui'
-#
-# Created: ven mai 16 13:30:38 2008
-# by: The PyQt User Interface Compiler (pyuic) 3.13
-#
-# WARNING! All changes made in this file will be lost!
-
-
-from qt import *
-
-
-class DPour(QWidget):
- def __init__(self,parent = None,name = None,fl = 0):
- QWidget.__init__(self,parent,name,fl)
-
- if not name:
- self.setName("DPour")
-
- self.setMinimumSize(QSize(505,0))
-
- DPourLayout = QGridLayout(self,1,1,11,6,"DPourLayout")
-
- self.Commentaire = QLabel(self,"Commentaire")
-
- DPourLayout.addMultiCellWidget(self.Commentaire,1,1,0,2)
-
- self.TWChoix = QTabWidget(self,"TWChoix")
-
- self.MotClef = QWidget(self.TWChoix,"MotClef")
- MotClefLayout = QGridLayout(self.MotClef,1,1,11,6,"MotClefLayout")
-
- self.textLabel1_2 = QLabel(self.MotClef,"textLabel1_2")
-
- MotClefLayout.addWidget(self.textLabel1_2,0,1)
-
- self.LBMCPermis = QListBox(self.MotClef,"LBMCPermis")
- self.LBMCPermis.setMinimumSize(QSize(0,0))
-
- MotClefLayout.addWidget(self.LBMCPermis,1,0)
-
- self.LBRegles = QListBox(self.MotClef,"LBRegles")
-
- MotClefLayout.addWidget(self.LBRegles,1,1)
-
- self.textLabel1 = QLabel(self.MotClef,"textLabel1")
- self.textLabel1.setMinimumSize(QSize(0,0))
-
- MotClefLayout.addWidget(self.textLabel1,0,0)
- self.TWChoix.insertTab(self.MotClef,QString(""))
-
- self.Commande = QWidget(self.TWChoix,"Commande")
- CommandeLayout = QGridLayout(self.Commande,1,1,11,6,"CommandeLayout")
-
- self.LBNouvCommande = QListBox(self.Commande,"LBNouvCommande")
-
- CommandeLayout.addMultiCellWidget(self.LBNouvCommande,2,2,0,3)
-
- self.textLabel1_4 = QLabel(self.Commande,"textLabel1_4")
-
- CommandeLayout.addMultiCellWidget(self.textLabel1_4,0,0,0,1)
-
- self.buttonGroup1 = QButtonGroup(self.Commande,"buttonGroup1")
-
- self.RBGroupe = QRadioButton(self.buttonGroup1,"RBGroupe")
- self.RBGroupe.setGeometry(QRect(20,40,101,20))
-
- self.RBalpha = QRadioButton(self.buttonGroup1,"RBalpha")
- self.RBalpha.setGeometry(QRect(20,20,120,20))
- self.RBalpha.setChecked(1)
-
- CommandeLayout.addMultiCellWidget(self.buttonGroup1,0,1,3,3)
-
- self.textLabel4 = QLabel(self.Commande,"textLabel4")
-
- CommandeLayout.addMultiCellWidget(self.textLabel4,3,3,0,3)
-
- self.BNext = QToolButton(self.Commande,"BNext")
- self.BNext.setMinimumSize(QSize(60,0))
- self.BNext.setIconSet(QIconSet())
-
- CommandeLayout.addWidget(self.BNext,1,2)
-
- self.textLabel6 = QLabel(self.Commande,"textLabel6")
- self.textLabel6.setMinimumSize(QSize(40,0))
-
- CommandeLayout.addWidget(self.textLabel6,1,0)
-
- self.LEFiltre = QLineEdit(self.Commande,"LEFiltre")
- self.LEFiltre.setMinimumSize(QSize(160,30))
-
- CommandeLayout.addWidget(self.LEFiltre,1,1)
- self.TWChoix.insertTab(self.Commande,QString(""))
-
- self.TabPage = QWidget(self.TWChoix,"TabPage")
-
- LayoutWidget = QWidget(self.TabPage,"layout4")
- LayoutWidget.setGeometry(QRect(10,31,472,90))
- layout4 = QVBoxLayout(LayoutWidget,11,6,"layout4")
-
- self.textLabel1_3 = QLabel(LayoutWidget,"textLabel1_3")
- layout4.addWidget(self.textLabel1_3)
-
- self.LENomFichier = QLineEdit(LayoutWidget,"LENomFichier")
- self.LENomFichier.setMinimumSize(QSize(470,40))
- layout4.addWidget(self.LENomFichier)
-
- LayoutWidget_2 = QWidget(self.TabPage,"layout5")
- LayoutWidget_2.setGeometry(QRect(8,131,481,250))
- layout5 = QGridLayout(LayoutWidget_2,1,1,11,6,"layout5")
-
- layout3 = QHBoxLayout(None,0,6,"layout3")
- spacer3 = QSpacerItem(331,20,QSizePolicy.Expanding,QSizePolicy.Minimum)
- layout3.addItem(spacer3)
-
- self.BBrowse = QPushButton(LayoutWidget_2,"BBrowse")
- self.BBrowse.setSizePolicy(QSizePolicy(0,0,0,0,self.BBrowse.sizePolicy().hasHeightForWidth()))
- self.BBrowse.setMinimumSize(QSize(140,50))
- layout3.addWidget(self.BBrowse)
-
- layout5.addLayout(layout3,1,0)
- spacer1 = QSpacerItem(21,190,QSizePolicy.Minimum,QSizePolicy.Expanding)
- layout5.addItem(spacer1,0,0)
- self.TWChoix.insertTab(self.TabPage,QString(""))
-
- DPourLayout.addMultiCellWidget(self.TWChoix,0,0,0,2)
-
- self.bSup = QPushButton(self,"bSup")
- self.bSup.setMinimumSize(QSize(0,30))
- self.bSup.setAutoDefault(1)
-
- DPourLayout.addWidget(self.bSup,2,0)
-
- self.bOk = QPushButton(self,"bOk")
- self.bOk.setMinimumSize(QSize(0,30))
- self.bOk.setAutoDefault(1)
- self.bOk.setDefault(1)
-
- DPourLayout.addWidget(self.bOk,2,1)
-
- self.bHelp = QPushButton(self,"bHelp")
- self.bHelp.setMinimumSize(QSize(0,30))
- self.bHelp.setAutoDefault(1)
-
- DPourLayout.addWidget(self.bHelp,2,2)
-
- self.languageChange()
-
- self.resize(QSize(521,499).expandedTo(self.minimumSizeHint()))
- self.clearWState(Qt.WState_Polished)
-
- self.connect(self.LBNouvCommande,SIGNAL("doubleClicked(QListBoxItem*)"),self.LBNouvCommandeClicked)
- self.connect(self.LEFiltre,SIGNAL("textChanged(const QString&)"),self.LEFiltreTextChanged)
- self.connect(self.LEFiltre,SIGNAL("returnPressed()"),self.LEfiltreReturnPressed)
- self.connect(self.bSup,SIGNAL("pressed()"),self.BSupPressed)
- self.connect(self.bOk,SIGNAL("clicked()"),self.BOkPressed)
- self.connect(self.RBalpha,SIGNAL("clicked()"),self.BuildTabCommand)
- self.connect(self.RBGroupe,SIGNAL("clicked()"),self.BuildTabCommand)
- self.connect(self.BNext,SIGNAL("clicked()"),self.BNextPressed)
- self.connect(self.BBrowse,SIGNAL("clicked()"),self.BBrowsePressed)
- self.connect(self.LENomFichier,SIGNAL("returnPressed()"),self.LENomFichReturnPressed)
-
- self.setTabOrder(self.LEFiltre,self.LENomFichier)
- self.setTabOrder(self.LENomFichier,self.TWChoix)
- self.setTabOrder(self.TWChoix,self.LBMCPermis)
- self.setTabOrder(self.LBMCPermis,self.LBRegles)
- self.setTabOrder(self.LBRegles,self.LBNouvCommande)
- self.setTabOrder(self.LBNouvCommande,self.RBalpha)
- self.setTabOrder(self.RBalpha,self.BBrowse)
- self.setTabOrder(self.BBrowse,self.bSup)
- self.setTabOrder(self.bSup,self.bOk)
- self.setTabOrder(self.bOk,self.bHelp)
-
-
- def languageChange(self):
- self.setCaption(self.__tr("DMacro"))
- self.Commentaire.setText(QString.null)
- self.textLabel1_2.setText(self.__trUtf8("\x3c\x68\x33\x3e\x3c\x70\x20\x61\x6c\x69\x67\x6e\x3d\x22\x63\x65\x6e\x74\x65\x72\x22\x3e\x3c\x75\x3e\x3c\x62\x3e\x52\xc3\xa9\x67\x6c\x65\x73\x3c\x2f\x62\x3e\x3c\x2f\x75\x3e\x3c\x2f\x70\x3e\x3c\x2f\x68\x33\x3e"))
- self.textLabel1.setText(self.__tr("<h3><p align=\"center\"><u><b>Mots Clefs Permis</b></u></p></h3>"))
- self.TWChoix.changeTab(self.MotClef,self.__tr("Ajouter Mot-Clef"))
- self.textLabel1_4.setText(self.__tr("<b><u>Commandes :</u></b>"))
- self.buttonGroup1.setTitle(self.__tr("Affichage"))
- self.RBGroupe.setText(self.__tr("par groupe"))
- self.RBalpha.setText(self.__trUtf8("\x61\x6c\x70\x68\x61\x62\xc3\xa9\x74\x69\x71\x75\x65"))
- self.textLabel4.setText(self.__trUtf8("\x4c\x61\x20\x63\x6f\x6d\x6d\x61\x6e\x64\x65\x20\x63\x68\x6f\x69\x73\x69\x65\x20\x73\x65\x72\x61\x20\x61\x6a\x6f\x75\x74\xc3\xa9\x65\x20\x41\x50\x52\x45\x53\x20\x6c\x61\x20\x63\x6f\x6d\x6d\x61\x6e\x64\x65\x20\x63\x6f\x75\x72\x61\x6e\x74\x65"))
- self.BNext.setText(self.__tr("Suivant"))
- QToolTip.add(self.BNext,self.__tr("affiche la prochaine occurence"))
- self.textLabel6.setText(self.__tr("Filtre"))
- self.TWChoix.changeTab(self.Commande,self.__tr("Nouvelle Commande"))
- self.textLabel1_3.setText(self.__tr("<font size=\"+1\">La commande POURSUITE requiert un nom de Fichier :</font>"))
- self.BBrowse.setText(self.__tr("Edit"))
- self.TWChoix.changeTab(self.TabPage,self.__tr("Fichier Poursuite"))
- self.bSup.setText(self.__tr("&Supprimer"))
- self.bSup.setAccel(self.__tr("Alt+S"))
- QToolTip.add(self.bSup,self.__tr("suppression du mot clef"))
- self.bOk.setText(self.__tr("&Valider"))
- self.bOk.setAccel(self.__tr("Shift+A, Alt+A, Alt+A, Alt+A"))
- QToolTip.add(self.bOk,self.__tr("validation de la saisie"))
- self.bHelp.setText(self.__tr("&Documentation"))
- self.bHelp.setAccel(self.__tr("Alt+D"))
- QToolTip.add(self.bHelp,self.__tr("affichage documentation aster"))
-
-
- def LBNouvCommandeClicked(self):
- print "DPour.LBNouvCommandeClicked(): Not implemented yet"
-
- def LEFiltreTextChanged(self):
- print "DPour.LEFiltreTextChanged(): Not implemented yet"
-
- def LEfiltreReturnPressed(self):
- print "DPour.LEfiltreReturnPressed(): Not implemented yet"
-
- def BSupPressed(self):
- print "DPour.BSupPressed(): Not implemented yet"
-
- def BOkPressed(self):
- print "DPour.BOkPressed(): Not implemented yet"
-
- def BuildTabCommand(self):
- print "DPour.BuildTabCommand(): Not implemented yet"
-
- def BNextPressed(self):
- print "DPour.BNextPressed(): Not implemented yet"
-
- def BBrowsePressed(self):
- print "DPour.BBrowsePressed(): Not implemented yet"
-
- def LENomFichReturnPressed(self):
- print "DPour.LENomFichReturnPressed(): Not implemented yet"
-
- def __tr(self,s,c = None):
- return qApp.translate("DPour",s,c)
-
- def __trUtf8(self,s,c = None):
- return qApp.translate("DPour",s,c,QApplication.UnicodeUTF8)
<rect>
<x>0</x>
<y>0</y>
- <width>521</width>
+ <width>546</width>
<height>499</height>
</rect>
</property>
<property name="minimumSize">
<size>
- <width>505</width>
+ <width>50</width>
<height>0</height>
</size>
</property>
+++ /dev/null
-# -*- coding: utf-8 -*-
-
-# Form implementation generated from reading ui file 'desRacine.ui'
-#
-# Created: Mon Jun 2 16:02:17 2008
-# by: The PyQt User Interface Compiler (pyuic) 3.16
-#
-# WARNING! All changes made in this file will be lost!
-
-
-from qt import *
-
-
-class DRac(QWidget):
- def __init__(self,parent = None,name = None,fl = 0):
- QWidget.__init__(self,parent,name,fl)
-
- if not name:
- self.setName("DRac")
-
- self.setMinimumSize(QSize(505,0))
-
- DRacLayout = QGridLayout(self,1,1,11,6,"DRacLayout")
-
- self.textLabel1_4 = QLabel(self,"textLabel1_4")
- self.textLabel1_4.setMinimumSize(QSize(291,21))
-
- DRacLayout.addMultiCellWidget(self.textLabel1_4,0,0,0,1)
-
- self.textLabel1_4_2 = QLabel(self,"textLabel1_4_2")
-
- DRacLayout.addMultiCellWidget(self.textLabel1_4_2,0,1,2,3)
-
- self.buttonGroup1 = QButtonGroup(self,"buttonGroup1")
- self.buttonGroup1.setMinimumSize(QSize(0,60))
-
- self.RBGroupe = QRadioButton(self.buttonGroup1,"RBGroupe")
- self.RBGroupe.setGeometry(QRect(10,20,90,20))
-
- self.RBalpha = QRadioButton(self.buttonGroup1,"RBalpha")
- self.RBalpha.setGeometry(QRect(110,20,120,20))
- self.RBalpha.setChecked(1)
-
- DRacLayout.addMultiCellWidget(self.buttonGroup1,1,1,0,1)
-
- self.bHelp = QPushButton(self,"bHelp")
- self.bHelp.setMinimumSize(QSize(160,30))
- self.bHelp.setAutoDefault(1)
-
- DRacLayout.addWidget(self.bHelp,3,3)
-
- self.bSup = QPushButton(self,"bSup")
- self.bSup.setMinimumSize(QSize(160,30))
- self.bSup.setAutoDefault(1)
-
- DRacLayout.addWidget(self.bSup,3,0)
-
- self.bOk = QPushButton(self,"bOk")
- self.bOk.setMinimumSize(QSize(160,30))
- self.bOk.setAutoDefault(1)
- self.bOk.setDefault(1)
-
- DRacLayout.addMultiCellWidget(self.bOk,3,3,1,2)
-
- layout2 = QGridLayout(None,1,1,0,6,"layout2")
-
- self.BNext = QToolButton(self,"BNext")
- self.BNext.setMinimumSize(QSize(60,30))
- self.BNext.setIconSet(QIconSet())
-
- layout2.addWidget(self.BNext,0,2)
-
- self.LEFiltre = QLineEdit(self,"LEFiltre")
- self.LEFiltre.setMinimumSize(QSize(0,30))
-
- layout2.addWidget(self.LEFiltre,0,1)
-
- self.LBRegles = QListBox(self,"LBRegles")
- self.LBRegles.setMinimumSize(QSize(240,350))
-
- layout2.addMultiCellWidget(self.LBRegles,0,1,3,3)
-
- self.textLabel6 = QLabel(self,"textLabel6")
- self.textLabel6.setMinimumSize(QSize(40,0))
-
- layout2.addWidget(self.textLabel6,0,0)
-
- self.LBNouvCommande = QListBox(self,"LBNouvCommande")
-
- layout2.addMultiCellWidget(self.LBNouvCommande,1,1,0,2)
-
- DRacLayout.addMultiCellLayout(layout2,2,2,0,3)
-
- self.languageChange()
-
- self.resize(QSize(509,513).expandedTo(self.minimumSizeHint()))
- self.clearWState(Qt.WState_Polished)
-
- self.connect(self.LBNouvCommande,SIGNAL("doubleClicked(QListBoxItem*)"),self.LBNouvCommandeClicked)
- self.connect(self.LEFiltre,SIGNAL("textChanged(const QString&)"),self.LEFiltreTextChanged)
- self.connect(self.LEFiltre,SIGNAL("returnPressed()"),self.LEfiltreReturnPressed)
- self.connect(self.bSup,SIGNAL("pressed()"),self.BSupPressed)
- self.connect(self.bOk,SIGNAL("clicked()"),self.BOkPressed)
- self.connect(self.RBalpha,SIGNAL("clicked()"),self.BuildTabCommand)
- self.connect(self.RBGroupe,SIGNAL("clicked()"),self.BuildTabCommand)
- self.connect(self.BNext,SIGNAL("clicked()"),self.BNextPressed)
- self.connect(self.bHelp,SIGNAL("clicked()"),self.ViewDoc)
-
- self.setTabOrder(self.LEFiltre,self.LBNouvCommande)
- self.setTabOrder(self.LBNouvCommande,self.RBalpha)
- self.setTabOrder(self.RBalpha,self.bSup)
- self.setTabOrder(self.bSup,self.bOk)
- self.setTabOrder(self.bOk,self.bHelp)
- self.setTabOrder(self.bHelp,self.LBRegles)
-
-
- def languageChange(self):
- self.setCaption(self.__tr("DMacro"))
- self.textLabel1_4.setText(self.__tr("<b><u>Commandes :</u></b>"))
- self.textLabel1_4_2.setText(self.__trUtf8("\x3c\x70\x20\x61\x6c\x69\x67\x6e\x3d\x22\x63\x65\x6e\x74\x65\x72\x22\x3e\x3c\x62\x3e\x3c\x75\x3e\x52\xc3\xa9\x67\x6c\x65\x73\x20\x3a\x3c\x2f\x75\x3e\x3c\x2f\x62\x3e\x3c\x2f\x70\x3e"))
- self.buttonGroup1.setTitle(self.__tr("Affichage"))
- self.RBGroupe.setText(self.__tr("par groupe"))
- self.RBalpha.setText(self.__trUtf8("\x61\x6c\x70\x68\x61\x62\xc3\xa9\x74\x69\x71\x75\x65"))
- self.bHelp.setText(self.__tr("&Documentation"))
- self.bHelp.setAccel(QKeySequence(self.__tr("Alt+D")))
- QToolTip.add(self.bHelp,self.__tr("affichage documentation aster"))
- self.bSup.setText(self.__tr("&Supprimer"))
- self.bSup.setAccel(QKeySequence(self.__tr("Alt+S")))
- QToolTip.add(self.bSup,self.__tr("suppression du mot clef"))
- self.bOk.setText(self.__tr("&Valider"))
- self.bOk.setAccel(QKeySequence(self.__tr("Shift+A, Alt+A, Alt+A, Alt+A")))
- QToolTip.add(self.bOk,self.__tr("validation de la saisie"))
- self.BNext.setText(self.__tr("Suivant"))
- QToolTip.add(self.BNext,self.__tr("affiche la prochaine occurence"))
- self.textLabel6.setText(self.__tr("Filtre"))
-
-
- def LBNouvCommandeClicked(self):
- print "DRac.LBNouvCommandeClicked(): Not implemented yet"
-
- def LEFiltreTextChanged(self):
- print "DRac.LEFiltreTextChanged(): Not implemented yet"
-
- def LEfiltreReturnPressed(self):
- print "DRac.LEfiltreReturnPressed(): Not implemented yet"
-
- def BSupPressed(self):
- print "DRac.BSupPressed(): Not implemented yet"
-
- def BOkPressed(self):
- print "DRac.BOkPressed(): Not implemented yet"
-
- def BuildTabCommand(self):
- print "DRac.BuildTabCommand(): Not implemented yet"
-
- def BNextPressed(self):
- print "DRac.BNextPressed(): Not implemented yet"
-
- def ViewDoc(self):
- print "DRac.ViewDoc(): Not implemented yet"
-
- def __tr(self,s,c = None):
- return qApp.translate("DRac",s,c)
-
- def __trUtf8(self,s,c = None):
- return qApp.translate("DRac",s,c,QApplication.UnicodeUTF8)
<rect>
<x>0</x>
<y>0</y>
- <width>509</width>
+ <width>523</width>
<height>513</height>
</rect>
</property>
- <property name="minimumSize">
- <size>
- <width>505</width>
- <height>0</height>
- </size>
- </property>
<property name="caption">
<string>DMacro</string>
</property>
<property name="name">
<cstring>textLabel1_4</cstring>
</property>
- <property name="minimumSize">
- <size>
- <width>291</width>
- <height>21</height>
- </size>
- </property>
<property name="text">
<string><b><u>Commandes :</u></b></string>
</property>
<property name="name">
<cstring>buttonGroup1</cstring>
</property>
- <property name="minimumSize">
- <size>
- <width>0</width>
- <height>60</height>
- </size>
- </property>
<property name="title">
<string>Affichage</string>
</property>
<widget class="QRadioButton">
<property name="name">
- <cstring>RBGroupe</cstring>
+ <cstring>RBalpha</cstring>
</property>
<property name="geometry">
<rect>
- <x>10</x>
+ <x>120</x>
<y>20</y>
- <width>90</width>
+ <width>120</width>
<height>20</height>
</rect>
</property>
<property name="text">
- <string>par groupe</string>
+ <string>alphabétique</string>
+ </property>
+ <property name="checked">
+ <bool>true</bool>
</property>
</widget>
<widget class="QRadioButton">
<property name="name">
- <cstring>RBalpha</cstring>
+ <cstring>RBGroupe</cstring>
</property>
<property name="geometry">
<rect>
- <x>110</x>
+ <x>10</x>
<y>20</y>
- <width>120</width>
+ <width>100</width>
<height>20</height>
</rect>
</property>
<property name="text">
- <string>alphabétique</string>
- </property>
- <property name="checked">
- <bool>true</bool>
+ <string>par groupe</string>
</property>
</widget>
</widget>
<property name="name">
<cstring>bHelp</cstring>
</property>
- <property name="minimumSize">
- <size>
- <width>160</width>
- <height>30</height>
- </size>
- </property>
<property name="text">
<string>&Documentation</string>
</property>
<property name="name">
<cstring>bSup</cstring>
</property>
- <property name="minimumSize">
- <size>
- <width>160</width>
- <height>30</height>
- </size>
- </property>
<property name="text">
<string>&Supprimer</string>
</property>
<property name="name">
<cstring>bOk</cstring>
</property>
- <property name="minimumSize">
- <size>
- <width>160</width>
- <height>30</height>
- </size>
- </property>
<property name="text">
<string>&Valider</string>
</property>
<property name="name">
<cstring>BNext</cstring>
</property>
- <property name="minimumSize">
- <size>
- <width>60</width>
- <height>30</height>
- </size>
- </property>
<property name="text">
<string>Suivant</string>
</property>
<property name="name">
<cstring>LEFiltre</cstring>
</property>
- <property name="minimumSize">
- <size>
- <width>0</width>
- <height>30</height>
- </size>
- </property>
</widget>
<widget class="QListBox" row="0" column="3" rowspan="2" colspan="1">
<property name="name">
<cstring>LBRegles</cstring>
</property>
- <property name="minimumSize">
- <size>
- <width>240</width>
- <height>350</height>
- </size>
- </property>
</widget>
<widget class="QLabel" row="0" column="0">
<property name="name">
<cstring>textLabel6</cstring>
</property>
- <property name="minimumSize">
- <size>
- <width>40</width>
- <height>0</height>
- </size>
- </property>
<property name="text">
<string>Filtre</string>
</property>
+++ /dev/null
-# -*- coding: utf-8 -*-
-
-# Form implementation generated from reading ui file 'desSelectVal.ui'
-#
-# Created: mar mar 25 10:05:09 2008
-# by: The PyQt User Interface Compiler (pyuic) 3.13
-#
-# WARNING! All changes made in this file will be lost!
-
-
-from qt import *
-
-
-class DSelVal(QWidget):
- def __init__(self,parent = None,name = None,fl = 0):
- QWidget.__init__(self,parent,name,fl)
-
- if not name:
- self.setName("DSelVal")
-
-
- DSelValLayout = QGridLayout(self,1,1,11,6,"DSelValLayout")
-
- self.TBtext = QTextBrowser(self,"TBtext")
-
- DSelValLayout.addMultiCellWidget(self.TBtext,0,0,0,1)
-
- self.BGSeparateur = QButtonGroup(self,"BGSeparateur")
- self.BGSeparateur.setMinimumSize(QSize(180,100))
-
- LayoutWidget = QWidget(self.BGSeparateur,"layout1")
- LayoutWidget.setGeometry(QRect(17,20,150,74))
- layout1 = QGridLayout(LayoutWidget,1,1,11,6,"layout1")
-
- self.BpointVirgule = QRadioButton(LayoutWidget,"BpointVirgule")
-
- layout1.addWidget(self.BpointVirgule,2,0)
-
- self.Bespace = QRadioButton(LayoutWidget,"Bespace")
- self.Bespace.setChecked(1)
-
- layout1.addWidget(self.Bespace,0,0)
-
- self.Bvirgule = QRadioButton(LayoutWidget,"Bvirgule")
-
- layout1.addWidget(self.Bvirgule,1,0)
-
- DSelValLayout.addMultiCellWidget(self.BGSeparateur,1,2,0,0)
-
- self.BImportTout = QPushButton(self,"BImportTout")
-
- DSelValLayout.addWidget(self.BImportTout,2,1)
-
- self.BImportSel = QPushButton(self,"BImportSel")
-
- DSelValLayout.addWidget(self.BImportSel,1,1)
-
- self.languageChange()
-
- self.resize(QSize(413,497).expandedTo(self.minimumSizeHint()))
- self.clearWState(Qt.WState_Polished)
-
- self.connect(self.BGSeparateur,SIGNAL("clicked(int)"),self.SeparateurSelect)
- self.connect(self.BImportSel,SIGNAL("clicked()"),self.BImportSelPressed)
- self.connect(self.BImportTout,SIGNAL("clicked()"),self.BImportToutPressed)
-
-
- def languageChange(self):
- self.setCaption(self.__trUtf8("\x53\xc3\xa9\x6c\x65\x63\x74\x69\x6f\x6e\x20\x64\x65\x20\x76\x61\x6c\x65\x75\x72\x73"))
- self.BGSeparateur.setTitle(self.__trUtf8("\x53\xc3\xa9\x70\x61\x72\x61\x74\x65\x75\x72"))
- self.BpointVirgule.setText(self.__tr("point-virgule"))
- self.Bespace.setText(self.__tr("espace"))
- self.Bvirgule.setText(self.__tr("virgule"))
- self.BImportTout.setText(self.__tr("Importer Tout"))
- self.BImportSel.setText(self.__tr("Ajouter Selection"))
-
-
- def SeparateurSelect(self):
- print "DSelVal.SeparateurSelect(): Not implemented yet"
-
- def BImportSelPressed(self):
- print "DSelVal.BImportSelPressed(): Not implemented yet"
-
- def BImportToutPressed(self):
- print "DSelVal.BImportToutPressed(): Not implemented yet"
-
- def __tr(self,s,c = None):
- return qApp.translate("DSelVal",s,c)
-
- def __trUtf8(self,s,c = None):
- return qApp.translate("DSelVal",s,c,QApplication.UnicodeUTF8)
<rect>
<x>0</x>
<y>0</y>
- <width>413</width>
- <height>497</height>
+ <width>429</width>
+ <height>661</height>
</rect>
</property>
<property name="caption">
<cstring>TBtext</cstring>
</property>
</widget>
+ <widget class="QPushButton" row="1" column="1">
+ <property name="name">
+ <cstring>BImportSel</cstring>
+ </property>
+ <property name="text">
+ <string>Ajouter Selection</string>
+ </property>
+ </widget>
+ <widget class="QPushButton" row="2" column="1">
+ <property name="name">
+ <cstring>BImportTout</cstring>
+ </property>
+ <property name="text">
+ <string>Importer Tout</string>
+ </property>
+ </widget>
<widget class="QButtonGroup" row="1" column="0" rowspan="2" colspan="1">
<property name="name">
<cstring>BGSeparateur</cstring>
</property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>3</hsizetype>
+ <vsizetype>5</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
<property name="minimumSize">
<size>
- <width>180</width>
- <height>100</height>
+ <width>20</width>
+ <height>130</height>
</size>
</property>
<property name="title">
<string>Séparateur</string>
</property>
- <widget class="QLayoutWidget">
+ <widget class="QRadioButton">
<property name="name">
- <cstring>layout1</cstring>
+ <cstring>Bvirgule</cstring>
</property>
<property name="geometry">
<rect>
- <x>17</x>
- <y>20</y>
- <width>150</width>
- <height>74</height>
+ <x>12</x>
+ <y>52</y>
+ <width>104</width>
+ <height>22</height>
</rect>
</property>
- <grid>
- <property name="name">
- <cstring>unnamed</cstring>
- </property>
- <widget class="QRadioButton" row="2" column="0">
- <property name="name">
- <cstring>BpointVirgule</cstring>
- </property>
- <property name="text">
- <string>point-virgule</string>
- </property>
- </widget>
- <widget class="QRadioButton" row="0" column="0">
- <property name="name">
- <cstring>Bespace</cstring>
- </property>
- <property name="text">
- <string>espace</string>
- </property>
- <property name="checked">
- <bool>true</bool>
- </property>
- </widget>
- <widget class="QRadioButton" row="1" column="0">
- <property name="name">
- <cstring>Bvirgule</cstring>
- </property>
- <property name="text">
- <string>virgule</string>
- </property>
- </widget>
- </grid>
+ <property name="text">
+ <string>virgule</string>
+ </property>
+ </widget>
+ <widget class="QRadioButton">
+ <property name="name">
+ <cstring>Bespace</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>12</x>
+ <y>24</y>
+ <width>104</width>
+ <height>22</height>
+ </rect>
+ </property>
+ <property name="text">
+ <string>espace</string>
+ </property>
+ <property name="checked">
+ <bool>true</bool>
+ </property>
+ </widget>
+ <widget class="QRadioButton">
+ <property name="name">
+ <cstring>BpointVirgule</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>12</x>
+ <y>80</y>
+ <width>104</width>
+ <height>22</height>
+ </rect>
+ </property>
+ <property name="text">
+ <string>point-virgule</string>
+ </property>
</widget>
- </widget>
- <widget class="QPushButton" row="2" column="1">
- <property name="name">
- <cstring>BImportTout</cstring>
- </property>
- <property name="text">
- <string>Importer Tout</string>
- </property>
- </widget>
- <widget class="QPushButton" row="1" column="1">
- <property name="name">
- <cstring>BImportSel</cstring>
- </property>
- <property name="text">
- <string>Ajouter Selection</string>
- </property>
</widget>
</grid>
</widget>
+++ /dev/null
-# -*- coding: utf-8 -*-
-
-# Form implementation generated from reading ui file 'desUniqueASSD.ui'
-#
-# Created: mar mar 25 10:05:09 2008
-# by: The PyQt User Interface Compiler (pyuic) 3.13
-#
-# WARNING! All changes made in this file will be lost!
-
-
-from qt import *
-
-
-class DUnASSD(QWidget):
- def __init__(self,parent = None,name = None,fl = 0):
- QWidget.__init__(self,parent,name,fl)
-
- if not name:
- self.setName("DUnASSD")
-
- self.setMinimumSize(QSize(350,0))
-
- DUnASSDLayout = QGridLayout(self,1,1,11,6,"DUnASSDLayout")
-
- self.tabuniqueinto = QTabWidget(self,"tabuniqueinto")
-
- self.Widget8 = QWidget(self.tabuniqueinto,"Widget8")
- Widget8Layout = QGridLayout(self.Widget8,1,1,11,6,"Widget8Layout")
-
- self.textLabel2 = QLabel(self.Widget8,"textLabel2")
- self.textLabel2.setMinimumSize(QSize(436,50))
-
- Widget8Layout.addWidget(self.textLabel2,0,0)
-
- self.listBoxASSD = QListBox(self.Widget8,"listBoxASSD")
-
- Widget8Layout.addWidget(self.listBoxASSD,1,0)
-
- self.Commentaire = QLabel(self.Widget8,"Commentaire")
- self.Commentaire.setMinimumSize(QSize(380,30))
-
- Widget8Layout.addWidget(self.Commentaire,2,0)
-
- layout2 = QHBoxLayout(None,0,6,"layout2")
-
- self.bSup = QPushButton(self.Widget8,"bSup")
- self.bSup.setMinimumSize(QSize(0,30))
- self.bSup.setAutoDefault(1)
- layout2.addWidget(self.bSup)
-
- self.bOk = QPushButton(self.Widget8,"bOk")
- self.bOk.setMinimumSize(QSize(0,30))
- self.bOk.setAutoDefault(1)
- self.bOk.setDefault(1)
- layout2.addWidget(self.bOk)
-
- self.bHelp = QPushButton(self.Widget8,"bHelp")
- self.bHelp.setMinimumSize(QSize(0,30))
- self.bHelp.setAutoDefault(1)
- layout2.addWidget(self.bHelp)
-
- Widget8Layout.addLayout(layout2,3,0)
- self.tabuniqueinto.insertTab(self.Widget8,QString(""))
-
- DUnASSDLayout.addWidget(self.tabuniqueinto,0,0)
-
- self.languageChange()
-
- self.resize(QSize(482,480).expandedTo(self.minimumSizeHint()))
- self.clearWState(Qt.WState_Polished)
-
- self.connect(self.bHelp,SIGNAL("clicked()"),self.ViewDoc)
- self.connect(self.bOk,SIGNAL("clicked()"),self.BOkPressed)
- self.connect(self.bSup,SIGNAL("clicked()"),self.BSupPressed)
-
-
- def languageChange(self):
- self.setCaption(self.__tr("DUnIn"))
- self.textLabel2.setText(self.__trUtf8("\x3c\x66\x6f\x6e\x74\x20\x73\x69\x7a\x65\x3d\x22\x2b\x31\x22\x3e\x3c\x70\x20\x61\x6c\x69\x67\x6e\x3d\x22\x63\x65\x6e\x74\x65\x72\x22\x3e\x53\x74\x72\x75\x63\x74\x75\x72\x65\x73\x20\x64\x65\x20\x64\x6f\x6e\x6e\xc3\xa9\x65\x73\x20\x64\x75\x20\x74\x79\x70\x65\x0a\x72\x65\x71\x75\x69\x73\x20\x70\x61\x72\x20\x6c\x27\x6f\x62\x6a\x65\x74\x20\x63\x6f\x75\x72\x61\x6e\x74\x20\x3a\x3c\x2f\x70\x3e\x3c\x2f\x66\x6f\x6e\x74\x3e"))
- self.Commentaire.setText(QString.null)
- self.bSup.setText(self.__tr("&Supprimer"))
- self.bSup.setAccel(self.__tr("Alt+S"))
- QToolTip.add(self.bSup,self.__tr("suppression du mot clef"))
- self.bOk.setText(self.__tr("&Valider"))
- self.bOk.setAccel(self.__tr("Shift+A, Alt+A, Alt+A, Alt+A"))
- QToolTip.add(self.bOk,self.__tr("validation de la saisie"))
- self.bHelp.setText(self.__tr("&Documentation"))
- self.bHelp.setAccel(self.__tr("Alt+D"))
- QToolTip.add(self.bHelp,self.__tr("affichage documentation aster"))
- self.tabuniqueinto.changeTab(self.Widget8,self.__tr("Saisir Valeur"))
-
-
- def BSupPressed(self):
- print "DUnASSD.BSupPressed(): Not implemented yet"
-
- def ViewDoc(self):
- print "DUnASSD.ViewDoc(): Not implemented yet"
-
- def BOkPressed(self):
- print "DUnASSD.BOkPressed(): Not implemented yet"
-
- def __tr(self,s,c = None):
- return qApp.translate("DUnASSD",s,c)
-
- def __trUtf8(self,s,c = None):
- return qApp.translate("DUnASSD",s,c,QApplication.UnicodeUTF8)
<rect>
<x>0</x>
<y>0</y>
- <width>482</width>
+ <width>502</width>
<height>480</height>
</rect>
</property>
<property name="minimumSize">
<size>
- <width>350</width>
+ <width>20</width>
<height>0</height>
</size>
</property>
+++ /dev/null
-# -*- coding: utf-8 -*-
-
-# Form implementation generated from reading ui file 'desUniqueBase.ui'
-#
-# Created: ven avr 4 11:27:09 2008
-# by: The PyQt User Interface Compiler (pyuic) 3.13
-#
-# WARNING! All changes made in this file will be lost!
-
-
-from qt import *
-
-image0_data = \
- "\x89\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d" \
- "\x49\x48\x44\x52\x00\x00\x00\x14\x00\x00\x00\x14" \
- "\x08\x06\x00\x00\x00\x8d\x89\x1d\x0d\x00\x00\x00" \
- "\x8d\x49\x44\x41\x54\x38\x8d\xb5\xd3\xdb\x0d\x80" \
- "\x20\x0c\x05\xd0\x5b\xe3\x3a\x8e\xe2\x4c\x86\x99" \
- "\x18\x85\x81\xea\x87\xc6\xc4\xd2\x56\x28\xd8\x84" \
- "\x0f\x5e\x27\x17\x50\x02\x63\x6a\x2d\x73\xb9\x1f" \
- "\xc0\xb5\x69\x15\x39\x17\xc3\xa0\x7e\xf0\xae\x9c" \
- "\xca\xab\xbf\x1f\x5b\xb5\xa6\xed\xc8\x0c\x02\x83" \
- "\x34\x20\x06\x02\x00\x81\x65\xc2\x38\x28\x30\x2f" \
- "\xa9\x77\xdd\x36\xc6\xa0\x67\xa7\x78\x14\x3f\xa1" \
- "\x85\xf9\x5b\xe6\x61\x76\xc2\x20\xa6\x83\x03\x58" \
- "\x0d\x0e\x62\x7a\xc2\x01\xcc\x04\xa3\xd8\x55\x2c" \
- "\x1a\xc0\x39\x95\xab\x27\xe7\x5a\x9a\x3e\x18\x47" \
- "\xdd\xef\x30\x72\xec\xef\x5f\xaf\xb3\x4e\xcb\x01" \
- "\x65\xf7\x82\x6b\x45\x7b\x00\x00\x00\x00\x49\x45" \
- "\x4e\x44\xae\x42\x60\x82"
-
-class DUnBase(QWidget):
- def __init__(self,parent = None,name = None,fl = 0):
- QWidget.__init__(self,parent,name,fl)
-
- self.image0 = QPixmap()
- self.image0.loadFromData(image0_data,"PNG")
- if not name:
- self.setName("DUnBase")
-
- self.setMinimumSize(QSize(350,0))
-
- DUnBaseLayout = QGridLayout(self,1,1,11,6,"DUnBaseLayout")
-
- self.tabuniqueinto = QTabWidget(self,"tabuniqueinto")
-
- self.Widget8 = QWidget(self.tabuniqueinto,"Widget8")
- Widget8Layout = QGridLayout(self.Widget8,1,1,11,6,"Widget8Layout")
-
- layout2 = QHBoxLayout(None,0,6,"layout2")
-
- self.textLabel2 = QLabel(self.Widget8,"textLabel2")
- layout2.addWidget(self.textLabel2)
-
- self.lineEditVal = QLineEdit(self.Widget8,"lineEditVal")
- self.lineEditVal.setMinimumSize(QSize(290,50))
- layout2.addWidget(self.lineEditVal)
-
- Widget8Layout.addMultiCellLayout(layout2,1,1,0,2)
- spacer1 = QSpacerItem(288,21,QSizePolicy.Expanding,QSizePolicy.Minimum)
- Widget8Layout.addMultiCell(spacer1,0,0,0,1)
-
- self.bParametres = QPushButton(self.Widget8,"bParametres")
- self.bParametres.setSizePolicy(QSizePolicy(0,0,0,0,self.bParametres.sizePolicy().hasHeightForWidth()))
- self.bParametres.setMinimumSize(QSize(140,30))
-
- Widget8Layout.addWidget(self.bParametres,0,2)
-
- self.bSup = QPushButton(self.Widget8,"bSup")
- self.bSup.setMinimumSize(QSize(0,30))
- self.bSup.setAutoDefault(1)
-
- Widget8Layout.addWidget(self.bSup,5,0)
-
- self.bOk = QPushButton(self.Widget8,"bOk")
- self.bOk.setMinimumSize(QSize(0,30))
- self.bOk.setAutoDefault(1)
- self.bOk.setDefault(1)
-
- Widget8Layout.addWidget(self.bOk,5,1)
-
- self.bHelp = QPushButton(self.Widget8,"bHelp")
- self.bHelp.setMinimumSize(QSize(0,30))
- self.bHelp.setAutoDefault(1)
-
- Widget8Layout.addWidget(self.bHelp,5,2)
- spacer4 = QSpacerItem(41,112,QSizePolicy.Minimum,QSizePolicy.Expanding)
- Widget8Layout.addItem(spacer4,2,1)
- spacer3 = QSpacerItem(21,112,QSizePolicy.Minimum,QSizePolicy.Expanding)
- Widget8Layout.addItem(spacer3,4,1)
-
- self.Commentaire = QLabel(self.Widget8,"Commentaire")
- self.Commentaire.setMinimumSize(QSize(430,40))
-
- Widget8Layout.addMultiCellWidget(self.Commentaire,3,3,0,2)
-
- self.BView2D = QPushButton(self.Widget8,"BView2D")
- self.BView2D.setMinimumSize(QSize(110,40))
-
- Widget8Layout.addWidget(self.BView2D,2,2)
-
- self.BSalome = QPushButton(self.Widget8,"BSalome")
- self.BSalome.setMinimumSize(QSize(50,40))
- self.BSalome.setIconSet(QIconSet(self.image0))
-
- Widget8Layout.addWidget(self.BSalome,2,0)
- self.tabuniqueinto.insertTab(self.Widget8,QString(""))
-
- DUnBaseLayout.addWidget(self.tabuniqueinto,0,0)
-
- self.languageChange()
-
- self.resize(QSize(482,480).expandedTo(self.minimumSizeHint()))
- self.clearWState(Qt.WState_Polished)
-
- self.connect(self.bHelp,SIGNAL("clicked()"),self.ViewDoc)
- self.connect(self.bOk,SIGNAL("clicked()"),self.BOk2Pressed)
- self.connect(self.bSup,SIGNAL("clicked()"),self.BSupPressed)
- self.connect(self.lineEditVal,SIGNAL("returnPressed()"),self.LEValeurPressed)
- self.connect(self.bParametres,SIGNAL("pressed()"),self.BParametresPressed)
- self.connect(self.BSalome,SIGNAL("pressed()"),self.BSalomePressed)
- self.connect(self.BView2D,SIGNAL("clicked()"),self.BView2DPressed)
-
- self.setTabOrder(self.lineEditVal,self.tabuniqueinto)
- self.setTabOrder(self.tabuniqueinto,self.bParametres)
- self.setTabOrder(self.bParametres,self.bSup)
- self.setTabOrder(self.bSup,self.bOk)
- self.setTabOrder(self.bOk,self.bHelp)
- self.setTabOrder(self.bHelp,self.BView2D)
- self.setTabOrder(self.BView2D,self.BSalome)
-
-
- def languageChange(self):
- self.setCaption(self.__tr("DUnIn"))
- self.textLabel2.setText(self.__tr("<b><u><p align=\"center\">Valeur: </p></u></b>"))
- self.bParametres.setText(self.__tr("Parametres"))
- self.bSup.setText(self.__tr("&Supprimer"))
- self.bSup.setAccel(self.__tr("Alt+S"))
- QToolTip.add(self.bSup,self.__tr("suppression du mot clef"))
- self.bOk.setText(self.__tr("&Valider"))
- self.bOk.setAccel(self.__tr("Shift+A, Alt+A, Alt+A, Alt+A"))
- QToolTip.add(self.bOk,self.__tr("validation de la saisie"))
- self.bHelp.setText(self.__tr("&Documentation"))
- self.bHelp.setAccel(self.__tr("Alt+D"))
- QToolTip.add(self.bHelp,self.__tr("affichage documentation aster"))
- self.Commentaire.setText(QString.null)
- self.BView2D.setText(self.__tr("Visualiser"))
- self.BSalome.setText(QString.null)
- self.tabuniqueinto.changeTab(self.Widget8,self.__tr("Saisir Valeur"))
-
-
- def BSupPressed(self):
- print "DUnBase.BSupPressed(): Not implemented yet"
-
- def ViewDoc(self):
- print "DUnBase.ViewDoc(): Not implemented yet"
-
- def BOk2Pressed(self):
- print "DUnBase.BOk2Pressed(): Not implemented yet"
-
- def BParametresPressed(self):
- print "DUnBase.BParametresPressed(): Not implemented yet"
-
- def LEValeurPressed(self):
- print "DUnBase.LEValeurPressed(): Not implemented yet"
-
- def BSalomePressed(self):
- print "DUnBase.BSalomePressed(): Not implemented yet"
-
- def BView2DPressed(self):
- print "DUnBase.BView2DPressed(): Not implemented yet"
-
- def __tr(self,s,c = None):
- return qApp.translate("DUnBase",s,c)
<rect>
<x>0</x>
<y>0</y>
- <width>482</width>
+ <width>522</width>
<height>480</height>
</rect>
</property>
<property name="minimumSize">
<size>
- <width>350</width>
+ <width>20</width>
<height>0</height>
</size>
</property>
+++ /dev/null
-# -*- coding: utf-8 -*-
-
-# Form implementation generated from reading ui file 'desUniqueComp.ui'
-#
-# Created: ven avr 4 11:27:09 2008
-# by: The PyQt User Interface Compiler (pyuic) 3.13
-#
-# WARNING! All changes made in this file will be lost!
-
-
-from qt import *
-
-
-class DUnComp(QWidget):
- def __init__(self,parent = None,name = None,fl = 0):
- QWidget.__init__(self,parent,name,fl)
-
- if not name:
- self.setName("DUnComp")
-
- self.setMinimumSize(QSize(350,0))
-
- DUnCompLayout = QGridLayout(self,1,1,11,6,"DUnCompLayout")
-
- self.tabuniqueinto = QTabWidget(self,"tabuniqueinto")
-
- self.Widget8 = QWidget(self.tabuniqueinto,"Widget8")
- Widget8Layout = QGridLayout(self.Widget8,1,1,11,6,"Widget8Layout")
-
- layout3 = QVBoxLayout(None,0,6,"layout3")
-
- self.textLabel1 = QLabel(self.Widget8,"textLabel1")
- layout3.addWidget(self.textLabel1)
-
- self.LEcomp = QLineEdit(self.Widget8,"LEcomp")
- self.LEcomp.setMinimumSize(QSize(390,40))
- layout3.addWidget(self.LEcomp)
-
- Widget8Layout.addMultiCellLayout(layout3,0,0,0,1)
-
- self.Commentaire = QLabel(self.Widget8,"Commentaire")
-
- Widget8Layout.addMultiCellWidget(self.Commentaire,5,5,0,1)
-
- self.LEReel = QLineEdit(self.Widget8,"LEReel")
- self.LEReel.setMinimumSize(QSize(190,40))
-
- Widget8Layout.addWidget(self.LEReel,3,0)
-
- self.LEImag = QLineEdit(self.Widget8,"LEImag")
- self.LEImag.setMinimumSize(QSize(190,40))
-
- Widget8Layout.addWidget(self.LEImag,3,1)
-
- self.buttonGroup1 = QButtonGroup(self.Widget8,"buttonGroup1")
-
- self.RBRI = QRadioButton(self.buttonGroup1,"RBRI")
- self.RBRI.setGeometry(QRect(20,40,335,20))
-
- self.RBMP = QRadioButton(self.buttonGroup1,"RBMP")
- self.RBMP.setGeometry(QRect(20,20,335,20))
-
- Widget8Layout.addMultiCellWidget(self.buttonGroup1,2,2,0,1)
- spacer3 = QSpacerItem(20,41,QSizePolicy.Minimum,QSizePolicy.Expanding)
- Widget8Layout.addItem(spacer3,1,0)
- spacer4 = QSpacerItem(20,41,QSizePolicy.Minimum,QSizePolicy.Expanding)
- Widget8Layout.addItem(spacer4,4,0)
-
- layout2 = QHBoxLayout(None,0,6,"layout2")
-
- self.bSup = QPushButton(self.Widget8,"bSup")
- self.bSup.setAutoDefault(1)
- layout2.addWidget(self.bSup)
-
- self.bOk = QPushButton(self.Widget8,"bOk")
- self.bOk.setAutoDefault(1)
- self.bOk.setDefault(1)
- layout2.addWidget(self.bOk)
-
- self.bHelp = QPushButton(self.Widget8,"bHelp")
- self.bHelp.setAutoDefault(1)
- layout2.addWidget(self.bHelp)
-
- Widget8Layout.addMultiCellLayout(layout2,6,6,0,1)
- self.tabuniqueinto.insertTab(self.Widget8,QString(""))
-
- DUnCompLayout.addWidget(self.tabuniqueinto,0,0)
-
- self.languageChange()
-
- self.resize(QSize(484,480).expandedTo(self.minimumSizeHint()))
- self.clearWState(Qt.WState_Polished)
-
- self.connect(self.bHelp,SIGNAL("clicked()"),self.ViewDoc)
- self.connect(self.bOk,SIGNAL("clicked()"),self.BOkPressed)
- self.connect(self.bSup,SIGNAL("clicked()"),self.BSupPressed)
- self.connect(self.LEImag,SIGNAL("returnPressed()"),self.LEImagRPressed)
- self.connect(self.LEReel,SIGNAL("returnPressed()"),self.LEReelRPressed)
- self.connect(self.LEcomp,SIGNAL("returnPressed()"),self.LEcompRPressed)
-
- self.setTabOrder(self.LEcomp,self.LEReel)
- self.setTabOrder(self.LEReel,self.LEImag)
- self.setTabOrder(self.LEImag,self.tabuniqueinto)
- self.setTabOrder(self.tabuniqueinto,self.RBRI)
- self.setTabOrder(self.RBRI,self.RBMP)
- self.setTabOrder(self.RBMP,self.bSup)
- self.setTabOrder(self.bSup,self.bOk)
- self.setTabOrder(self.bOk,self.bHelp)
-
-
- def languageChange(self):
- self.setCaption(self.__tr("DUnComp"))
- self.textLabel1.setText(self.__tr("<font size=\"+2\">Complexe de la forme : a+bj</font>"))
- self.Commentaire.setText(self.__tr("<font size=\"+2\">Un complexe est attendu</font>"))
- self.buttonGroup1.setTitle(self.__tr("OU"))
- self.RBRI.setText(self.__trUtf8("\x52\x49\x20\x20\x20\x3a\x20\x52\xc3\xa9\x65\x6c\x09\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x49\x6d\x61\x67\x69\x6e\x61\x69\x72\x65"))
- self.RBMP.setText(self.__tr("MP : Module Phase"))
- self.bSup.setText(self.__tr("&Supprimer"))
- self.bSup.setAccel(self.__tr("Alt+S"))
- QToolTip.add(self.bSup,self.__tr("suppression du mot clef"))
- self.bOk.setText(self.__tr("&Valider"))
- self.bOk.setAccel(self.__tr("Shift+A, Alt+A, Alt+A, Alt+A"))
- QToolTip.add(self.bOk,self.__tr("validation de la saisie"))
- self.bHelp.setText(self.__tr("&Documentation"))
- self.bHelp.setAccel(self.__tr("Alt+D"))
- QToolTip.add(self.bHelp,self.__tr("affichage documentation aster"))
- self.tabuniqueinto.changeTab(self.Widget8,self.__tr("Saisir Valeur"))
-
-
- def BSupPressed(self):
- print "DUnComp.BSupPressed(): Not implemented yet"
-
- def ViewDoc(self):
- print "DUnComp.ViewDoc(): Not implemented yet"
-
- def BOkPressed(self):
- print "DUnComp.BOkPressed(): Not implemented yet"
-
- def LEImagRPressed(self):
- print "DUnComp.LEImagRPressed(): Not implemented yet"
-
- def LEReelRPressed(self):
- print "DUnComp.LEReelRPressed(): Not implemented yet"
-
- def LEcompRPressed(self):
- print "DUnComp.LEcompRPressed(): Not implemented yet"
-
- def __tr(self,s,c = None):
- return qApp.translate("DUnComp",s,c)
-
- def __trUtf8(self,s,c = None):
- return qApp.translate("DUnComp",s,c,QApplication.UnicodeUTF8)
<rect>
<x>0</x>
<y>0</y>
- <width>484</width>
+ <width>511</width>
<height>480</height>
</rect>
</property>
<property name="minimumSize">
<size>
- <width>350</width>
+ <width>30</width>
<height>0</height>
</size>
</property>
+++ /dev/null
-# -*- coding: utf-8 -*-
-
-# Form implementation generated from reading ui file 'desUniqueInto.ui'
-#
-# Created: mar mar 25 10:05:09 2008
-# by: The PyQt User Interface Compiler (pyuic) 3.13
-#
-# WARNING! All changes made in this file will be lost!
-
-
-from qt import *
-
-
-class DUnIn(QWidget):
- def __init__(self,parent = None,name = None,fl = 0):
- QWidget.__init__(self,parent,name,fl)
-
- if not name:
- self.setName("DUnIn")
-
- self.setMinimumSize(QSize(350,0))
-
- DUnInLayout = QGridLayout(self,1,1,11,6,"DUnInLayout")
-
- self.tabuniqueinto = QTabWidget(self,"tabuniqueinto")
-
- self.Widget8 = QWidget(self.tabuniqueinto,"Widget8")
- Widget8Layout = QGridLayout(self.Widget8,1,1,11,6,"Widget8Layout")
-
- self.Commentaire = QLabel(self.Widget8,"Commentaire")
- self.Commentaire.setMinimumSize(QSize(420,30))
-
- Widget8Layout.addWidget(self.Commentaire,2,0)
-
- layout2 = QHBoxLayout(None,0,6,"layout2")
-
- self.bSup = QPushButton(self.Widget8,"bSup")
- self.bSup.setMinimumSize(QSize(0,30))
- self.bSup.setAutoDefault(1)
- layout2.addWidget(self.bSup)
-
- self.bOk = QPushButton(self.Widget8,"bOk")
- self.bOk.setMinimumSize(QSize(0,30))
- self.bOk.setAutoDefault(1)
- self.bOk.setDefault(1)
- layout2.addWidget(self.bOk)
-
- self.bHelp = QPushButton(self.Widget8,"bHelp")
- self.bHelp.setMinimumSize(QSize(0,30))
- self.bHelp.setAutoDefault(1)
- layout2.addWidget(self.bHelp)
-
- Widget8Layout.addLayout(layout2,3,0)
-
- self.listBoxVal = QListBox(self.Widget8,"listBoxVal")
-
- Widget8Layout.addWidget(self.listBoxVal,1,0)
-
- self.textLabel2 = QLabel(self.Widget8,"textLabel2")
-
- Widget8Layout.addWidget(self.textLabel2,0,0)
- self.tabuniqueinto.insertTab(self.Widget8,QString(""))
-
- DUnInLayout.addWidget(self.tabuniqueinto,0,0)
-
- self.languageChange()
-
- self.resize(QSize(482,480).expandedTo(self.minimumSizeHint()))
- self.clearWState(Qt.WState_Polished)
-
- self.connect(self.bHelp,SIGNAL("clicked()"),self.ViewDoc)
- self.connect(self.bOk,SIGNAL("clicked()"),self.BOkPressed)
- self.connect(self.bSup,SIGNAL("clicked()"),self.BSupPressed)
-
-
- def languageChange(self):
- self.setCaption(self.__tr("DUnIn"))
- self.Commentaire.setText(QString.null)
- self.bSup.setText(self.__tr("&Supprimer"))
- self.bSup.setAccel(self.__tr("Alt+S"))
- QToolTip.add(self.bSup,self.__tr("suppression du mot clef"))
- self.bOk.setText(self.__tr("&Valider"))
- self.bOk.setAccel(self.__tr("Shift+A, Alt+A, Alt+A, Alt+A"))
- QToolTip.add(self.bOk,self.__tr("validation de la saisie"))
- self.bHelp.setText(self.__tr("&Documentation"))
- self.bHelp.setAccel(self.__tr("Alt+D"))
- QToolTip.add(self.bHelp,self.__tr("affichage documentation aster"))
- self.textLabel2.setText(self.__tr("<b><u><p align=\"center\">Valeurs possibles</p></u></b>"))
- self.tabuniqueinto.changeTab(self.Widget8,self.__tr("Saisir Valeur"))
-
-
- def BSupPressed(self):
- print "DUnIn.BSupPressed(): Not implemented yet"
-
- def ViewDoc(self):
- print "DUnIn.ViewDoc(): Not implemented yet"
-
- def BOkPressed(self):
- print "DUnIn.BOkPressed(): Not implemented yet"
-
- def __tr(self,s,c = None):
- return qApp.translate("DUnIn",s,c)
<rect>
<x>0</x>
<y>0</y>
- <width>482</width>
+ <width>502</width>
<height>480</height>
</rect>
</property>
<property name="minimumSize">
<size>
- <width>350</width>
+ <width>30</width>
<height>0</height>
</size>
</property>
+++ /dev/null
-# -*- coding: utf-8 -*-
-
-# Form implementation generated from reading ui file 'desUniqueSDCO.ui'
-#
-# Created: ven avr 4 11:27:09 2008
-# by: The PyQt User Interface Compiler (pyuic) 3.13
-#
-# WARNING! All changes made in this file will be lost!
-
-
-from qt import *
-
-
-class DUnSDCO(QWidget):
- def __init__(self,parent = None,name = None,fl = 0):
- QWidget.__init__(self,parent,name,fl)
-
- if not name:
- self.setName("DUnSDCO")
-
- self.setMinimumSize(QSize(350,0))
-
- DUnSDCOLayout = QGridLayout(self,1,1,11,6,"DUnSDCOLayout")
-
- self.tabuniqueinto = QTabWidget(self,"tabuniqueinto")
-
- self.Widget8 = QWidget(self.tabuniqueinto,"Widget8")
- Widget8Layout = QGridLayout(self.Widget8,1,1,11,6,"Widget8Layout")
-
- self.bSup = QPushButton(self.Widget8,"bSup")
- self.bSup.setMinimumSize(QSize(0,30))
- self.bSup.setAutoDefault(1)
-
- Widget8Layout.addWidget(self.bSup,4,0)
-
- self.bOk = QPushButton(self.Widget8,"bOk")
- self.bOk.setMinimumSize(QSize(0,30))
- self.bOk.setAutoDefault(1)
- self.bOk.setDefault(1)
-
- Widget8Layout.addWidget(self.bOk,4,1)
-
- self.bHelp = QPushButton(self.Widget8,"bHelp")
- self.bHelp.setMinimumSize(QSize(0,30))
- self.bHelp.setAutoDefault(1)
-
- Widget8Layout.addWidget(self.bHelp,4,2)
-
- self.Commentaire = QLabel(self.Widget8,"Commentaire")
- self.Commentaire.setMinimumSize(QSize(311,30))
-
- Widget8Layout.addMultiCellWidget(self.Commentaire,3,3,0,2)
-
- self.textLabel2_2 = QLabel(self.Widget8,"textLabel2_2")
-
- Widget8Layout.addMultiCellWidget(self.textLabel2_2,0,0,0,2)
-
- self.LESDCO = QLineEdit(self.Widget8,"LESDCO")
- self.LESDCO.setMinimumSize(QSize(300,40))
-
- Widget8Layout.addMultiCellWidget(self.LESDCO,1,1,0,2)
-
- self.textLabel2 = QLabel(self.Widget8,"textLabel2")
-
- Widget8Layout.addMultiCellWidget(self.textLabel2,2,2,0,2)
- self.tabuniqueinto.insertTab(self.Widget8,QString(""))
-
- DUnSDCOLayout.addWidget(self.tabuniqueinto,0,0)
-
- self.languageChange()
-
- self.resize(QSize(461,480).expandedTo(self.minimumSizeHint()))
- self.clearWState(Qt.WState_Polished)
-
- self.connect(self.bHelp,SIGNAL("clicked()"),self.ViewDoc)
- self.connect(self.bOk,SIGNAL("clicked()"),self.BOkPressed)
- self.connect(self.bSup,SIGNAL("clicked()"),self.BSupPressed)
- self.connect(self.LESDCO,SIGNAL("returnPressed()"),self.LESDCOReturnPressed)
-
- self.setTabOrder(self.LESDCO,self.tabuniqueinto)
- self.setTabOrder(self.tabuniqueinto,self.bSup)
- self.setTabOrder(self.bSup,self.bOk)
- self.setTabOrder(self.bOk,self.bHelp)
-
-
- def languageChange(self):
- self.setCaption(self.__tr("DUnIn"))
- self.bSup.setText(self.__tr("&Supprimer"))
- self.bSup.setAccel(self.__tr("Alt+S"))
- QToolTip.add(self.bSup,self.__tr("suppression du mot clef"))
- self.bOk.setText(self.__tr("&Valider"))
- self.bOk.setAccel(self.__tr("Shift+A, Alt+A, Alt+A, Alt+A"))
- QToolTip.add(self.bOk,self.__tr("validation de la saisie"))
- self.bHelp.setText(self.__tr("&Documentation"))
- self.bHelp.setAccel(self.__tr("Alt+D"))
- QToolTip.add(self.bHelp,self.__tr("affichage documentation aster"))
- self.Commentaire.setText(QString.null)
- self.textLabel2_2.setText(self.__tr("<h1><font size=\"+2\">Nom du nouveau concept : </font></h1>"))
- self.textLabel2.setText(self.__tr("<font size=\"+1\">Un objet de type CO est attendu</font>"))
- self.tabuniqueinto.changeTab(self.Widget8,self.__tr("Saisir Valeur"))
-
-
- def BSupPressed(self):
- print "DUnSDCO.BSupPressed(): Not implemented yet"
-
- def ViewDoc(self):
- print "DUnSDCO.ViewDoc(): Not implemented yet"
-
- def BOkPressed(self):
- print "DUnSDCO.BOkPressed(): Not implemented yet"
-
- def LESDCOReturnPressed(self):
- print "DUnSDCO.LESDCOReturnPressed(): Not implemented yet"
-
- def BOuiPressed(self):
- print "DUnSDCO.BOuiPressed(): Not implemented yet"
-
- def BNonPressed(self):
- print "DUnSDCO.BNonPressed(): Not implemented yet"
-
- def __tr(self,s,c = None):
- return qApp.translate("DUnSDCO",s,c)
<rect>
<x>0</x>
<y>0</y>
- <width>461</width>
+ <width>473</width>
<height>480</height>
</rect>
</property>
<property name="minimumSize">
<size>
- <width>350</width>
+ <width>20</width>
<height>0</height>
</size>
</property>
+++ /dev/null
-# -*- coding: utf-8 -*-
-
-# Form implementation generated from reading ui file 'desUniqueSDCOInto.ui'
-#
-# Created: ven avr 4 11:27:09 2008
-# by: The PyQt User Interface Compiler (pyuic) 3.13
-#
-# WARNING! All changes made in this file will be lost!
-
-
-from qt import *
-
-
-class DUnSDCOInto(QWidget):
- def __init__(self,parent = None,name = None,fl = 0):
- QWidget.__init__(self,parent,name,fl)
-
- if not name:
- self.setName("DUnSDCOInto")
-
- self.setMinimumSize(QSize(350,0))
-
- DUnSDCOIntoLayout = QGridLayout(self,1,1,11,6,"DUnSDCOIntoLayout")
-
- self.tabuniqueinto = QTabWidget(self,"tabuniqueinto")
-
- self.Widget8 = QWidget(self.tabuniqueinto,"Widget8")
- Widget8Layout = QGridLayout(self.Widget8,1,1,11,6,"Widget8Layout")
-
- self.textLabel2 = QLabel(self.Widget8,"textLabel2")
-
- Widget8Layout.addMultiCellWidget(self.textLabel2,0,0,0,2)
-
- self.LBSDCO = QListBox(self.Widget8,"LBSDCO")
-
- Widget8Layout.addMultiCellWidget(self.LBSDCO,1,1,0,2)
-
- self.textLabel2_3 = QLabel(self.Widget8,"textLabel2_3")
-
- Widget8Layout.addMultiCellWidget(self.textLabel2_3,5,5,0,2)
-
- self.Commentaire = QLabel(self.Widget8,"Commentaire")
- self.Commentaire.setMinimumSize(QSize(420,30))
-
- Widget8Layout.addMultiCellWidget(self.Commentaire,4,4,0,2)
-
- layout3 = QGridLayout(None,1,1,0,6,"layout3")
-
- Widget8Layout.addMultiCellLayout(layout3,2,2,0,2)
-
- layout6 = QHBoxLayout(None,0,6,"layout6")
-
- self.frame3 = QFrame(self.Widget8,"frame3")
- self.frame3.setMinimumSize(QSize(190,50))
- self.frame3.setFrameShape(QFrame.StyledPanel)
- self.frame3.setFrameShadow(QFrame.Raised)
-
- self.textLabel2_2 = QLabel(self.frame3,"textLabel2_2")
- self.textLabel2_2.setGeometry(QRect(20,10,150,30))
- layout6.addWidget(self.frame3)
-
- self.LESDCO = QLineEdit(self.Widget8,"LESDCO")
- self.LESDCO.setMinimumSize(QSize(220,40))
- layout6.addWidget(self.LESDCO)
-
- Widget8Layout.addMultiCellLayout(layout6,3,3,0,2)
-
- self.bSup = QPushButton(self.Widget8,"bSup")
- self.bSup.setMinimumSize(QSize(0,30))
- self.bSup.setAutoDefault(1)
-
- Widget8Layout.addWidget(self.bSup,6,0)
-
- self.bOk = QPushButton(self.Widget8,"bOk")
- self.bOk.setMinimumSize(QSize(0,30))
- self.bOk.setAutoDefault(1)
- self.bOk.setDefault(1)
-
- Widget8Layout.addWidget(self.bOk,6,1)
-
- self.bHelp = QPushButton(self.Widget8,"bHelp")
- self.bHelp.setMinimumSize(QSize(0,30))
- self.bHelp.setAutoDefault(1)
-
- Widget8Layout.addWidget(self.bHelp,6,2)
- self.tabuniqueinto.insertTab(self.Widget8,QString(""))
-
- DUnSDCOIntoLayout.addWidget(self.tabuniqueinto,0,0)
-
- self.languageChange()
-
- self.resize(QSize(482,480).expandedTo(self.minimumSizeHint()))
- self.clearWState(Qt.WState_Polished)
-
- self.connect(self.bHelp,SIGNAL("clicked()"),self.ViewDoc)
- self.connect(self.bOk,SIGNAL("clicked()"),self.BOkPressed)
- self.connect(self.bSup,SIGNAL("clicked()"),self.BSupPressed)
- self.connect(self.LBSDCO,SIGNAL("clicked(QListBoxItem*)"),self.LBSDCOReturnPressed)
- self.connect(self.LESDCO,SIGNAL("returnPressed()"),self.LESDCOReturnPressed)
-
- self.setTabOrder(self.LESDCO,self.LBSDCO)
- self.setTabOrder(self.LBSDCO,self.tabuniqueinto)
- self.setTabOrder(self.tabuniqueinto,self.bSup)
- self.setTabOrder(self.bSup,self.bOk)
- self.setTabOrder(self.bOk,self.bHelp)
-
-
- def languageChange(self):
- self.setCaption(self.__tr("DUnIn"))
- self.textLabel2.setText(self.__trUtf8("\x3c\x66\x6f\x6e\x74\x20\x73\x69\x7a\x65\x3d\x22\x2b\x31\x22\x3e\x3c\x75\x3e\x53\x74\x72\x75\x63\x74\x75\x72\x65\x73\x20\x64\x65\x20\x64\x6f\x6e\x6e\xc3\xa9\x65\x73\x20\x64\x75\x20\x74\x79\x70\x65\x20\x72\x65\x71\x75\x69\x73\x20\x70\x61\x72\x20\x6c\x27\x6f\x62\x6a\x65\x74\x20\x63\x6f\x75\x72\x61\x6e\x74\x20\x3c\x2f\x75\x3e\x3c\x2f\x66\x6f\x6e\x74\x3e"))
- self.textLabel2_3.setText(self.__tr("<font size=\"+1\">Un objet de type CO est attendu</font>"))
- self.Commentaire.setText(QString.null)
- self.textLabel2_2.setText(self.__tr("<font size=\"+1\"> Nom concept : </font>"))
- self.bSup.setText(self.__tr("&Supprimer"))
- self.bSup.setAccel(self.__tr("Alt+S"))
- QToolTip.add(self.bSup,self.__tr("suppression du mot clef"))
- self.bOk.setText(self.__tr("&Valider"))
- self.bOk.setAccel(self.__tr("Shift+A, Alt+A, Alt+A, Alt+A"))
- QToolTip.add(self.bOk,self.__tr("validation de la saisie"))
- self.bHelp.setText(self.__tr("&Documentation"))
- self.bHelp.setAccel(self.__tr("Alt+D"))
- QToolTip.add(self.bHelp,self.__tr("affichage documentation aster"))
- self.tabuniqueinto.changeTab(self.Widget8,self.__tr("Saisir Valeur"))
-
-
- def BSupPressed(self):
- print "DUnSDCOInto.BSupPressed(): Not implemented yet"
-
- def ViewDoc(self):
- print "DUnSDCOInto.ViewDoc(): Not implemented yet"
-
- def BOkPressed(self):
- print "DUnSDCOInto.BOkPressed(): Not implemented yet"
-
- def LESDCOReturnPressed(self):
- print "DUnSDCOInto.LESDCOReturnPressed(): Not implemented yet"
-
- def BOuiPressed(self):
- print "DUnSDCOInto.BOuiPressed(): Not implemented yet"
-
- def BNonPressed(self):
- print "DUnSDCOInto.BNonPressed(): Not implemented yet"
-
- def LBSDCOReturnPressed(self):
- print "DUnSDCOInto.LBSDCOReturnPressed(): Not implemented yet"
-
- def __tr(self,s,c = None):
- return qApp.translate("DUnSDCOInto",s,c)
-
- def __trUtf8(self,s,c = None):
- return qApp.translate("DUnSDCOInto",s,c,QApplication.UnicodeUTF8)
<rect>
<x>0</x>
<y>0</y>
- <width>482</width>
+ <width>541</width>
<height>480</height>
</rect>
</property>
<property name="minimumSize">
<size>
- <width>350</width>
+ <width>30</width>
<height>0</height>
</size>
</property>
+++ /dev/null
-# -*- coding: utf-8 -*-
-
-# Form implementation generated from reading ui file 'desVisu.ui'
-#
-# Created: mar mar 25 10:05:09 2008
-# by: The PyQt User Interface Compiler (pyuic) 3.13
-#
-# WARNING! All changes made in this file will be lost!
-
-
-from qt import *
-
-
-class DVisu(QWidget):
- def __init__(self,parent = None,name = None,fl = 0):
- QWidget.__init__(self,parent,name,fl)
-
- if not name:
- self.setName("DVisu")
-
-
- DVisuLayout = QGridLayout(self,1,1,11,6,"DVisuLayout")
-
- self.TB = QTextBrowser(self,"TB")
-
- DVisuLayout.addWidget(self.TB,0,0)
-
- self.languageChange()
-
- self.resize(QSize(501,394).expandedTo(self.minimumSizeHint()))
- self.clearWState(Qt.WState_Polished)
-
-
- def languageChange(self):
- self.setCaption(self.__tr("Visualisation Include Materiau"))
-
-
- def __tr(self,s,c = None):
- return qApp.translate("DVisu",s,c)
+++ /dev/null
-# -*- coding: utf-8 -*-
-
-# Form implementation generated from reading ui file 'myMain.ui'
-#
-# Created: Thu Jun 19 11:40:51 2008
-# by: The PyQt User Interface Compiler (pyuic) 3.16
-#
-# WARNING! All changes made in this file will be lost!
-
-
-from qt import *
-
-image0_data = \
- "\x89\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d" \
- "\x49\x48\x44\x52\x00\x00\x00\x16\x00\x00\x00\x16" \
- "\x08\x06\x00\x00\x00\xc4\xb4\x6c\x3b\x00\x00\x00" \
- "\x74\x49\x44\x41\x54\x38\x8d\xed\xd5\xc1\x09\xc0" \
- "\x20\x0c\x05\xd0\x6f\xe9\x36\x81\x2c\x10\xb2\xff" \
- "\xdd\x85\xd2\x53\x85\xb6\xa9\x91\x48\x0f\x05\x3f" \
- "\x08\x1a\xf0\x29\x12\x10\xf8\x28\xc5\xa9\xd9\xc4" \
- "\xde\x96\xcd\x2b\x9a\xd9\xeb\x00\x00\x66\x0e\x2f" \
- "\xe0\xc2\x51\x98\x39\xc4\xf7\x0c\x4c\x44\x6d\x5e" \
- "\x6b\x35\x38\xcf\x92\x82\x45\xe4\xb2\xf6\xf0\x14" \
- "\xac\xaa\x8f\xda\x1d\x4f\xc1\xa5\x74\x1b\x22\x07" \
- "\x9f\x9d\x11\x1d\x96\xea\x8a\x91\x2c\x78\xc1\x0b" \
- "\xee\x64\xe6\x07\x19\xf5\x7e\x92\x03\xad\x45\x2a" \
- "\x04\xcc\x4e\x50\x20\x00\x00\x00\x00\x49\x45\x4e" \
- "\x44\xae\x42\x60\x82"
-image1_data = \
- "\x89\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d" \
- "\x49\x48\x44\x52\x00\x00\x00\x16\x00\x00\x00\x16" \
- "\x08\x06\x00\x00\x00\xc4\xb4\x6c\x3b\x00\x00\x00" \
- "\x99\x49\x44\x41\x54\x38\x8d\xed\x94\x41\x0e\x85" \
- "\x20\x0c\x44\x5f\x89\xc7\x36\x7f\x61\xbc\x77\x5d" \
- "\x28\x48\xa4\x28\x60\xff\xce\xd9\x54\x8b\xbe\x8e" \
- "\x13\x04\x3e\x1d\x92\x81\x77\xf4\x81\xa1\x23\xdc" \
- "\x2b\x34\xf6\xf4\x7a\x3d\xe2\xb8\x65\xa8\x84\x3f" \
- "\x40\x01\x98\x2a\x0b\x3d\x5f\x62\xc5\x83\x00\xaa" \
- "\x1a\xd7\x05\x50\x44\x9a\xb9\xd5\x07\xa7\x73\xa8" \
- "\xa4\xba\x4f\x92\xa2\xdf\x33\x3c\x64\xc6\x3b\xeb" \
- "\xbd\x82\xe5\xb8\xad\xde\xcb\xcc\x78\x20\xeb\x42" \
- "\x66\xc6\x39\x74\x5d\xfa\x80\xf3\x6f\xaf\x66\xc6" \
- "\x6f\xa1\x9c\x3f\x88\x2f\xb4\x70\xec\x05\xcd\xc0" \
- "\xbe\xd0\x78\x93\xf6\x8e\x17\x14\x92\x63\x5f\x68" \
- "\x6c\x3e\xef\xf6\xba\x3c\x8f\xdd\x36\x6d\xc4\xc0" \
- "\x45\x2c\x87\x81\xf8\x08\x00\x00\x00\x00\x49\x45" \
- "\x4e\x44\xae\x42\x60\x82"
-image2_data = \
- "\x89\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d" \
- "\x49\x48\x44\x52\x00\x00\x00\x16\x00\x00\x00\x16" \
- "\x08\x06\x00\x00\x00\xc4\xb4\x6c\x3b\x00\x00\x00" \
- "\xa0\x49\x44\x41\x54\x38\x8d\xd5\x95\x4d\x0a\x80" \
- "\x20\x10\x85\x9f\xd1\x46\x68\xe1\x8d\xe6\x62\xd2" \
- "\x22\xbc\x98\x37\x6a\x21\xb4\xac\x45\x19\x92\xc6" \
- "\x64\x69\xe0\xb7\xf1\x87\xf1\xf1\x1c\x47\x05\x2a" \
- "\x21\x8e\x76\x2d\xad\xdb\xfb\x9e\x99\xf6\x56\x8f" \
- "\x80\xb5\x36\x4b\x85\x88\xce\x35\x44\x04\x00\xe8" \
- "\x0a\x39\x8c\xe8\xf9\x90\x34\xd2\x29\x2c\xc3\x7c" \
- "\x8e\xbd\x53\x0f\xeb\x58\x3a\x05\xe9\x54\x34\x1f" \
- "\x8a\x02\x7b\x2a\x7d\x3a\x1f\x09\xbf\x85\x4d\xc5" \
- "\xd5\xd9\x53\xaa\x39\x6e\x4f\x38\xca\xb1\x99\xe2" \
- "\xd2\xe1\x08\xab\xe1\x56\xf8\x2e\x30\x97\x7f\xcb" \
- "\x4d\x8f\xf9\x42\xd7\x5d\xbe\xbe\xd2\xe1\x43\x95" \
- "\x3a\x93\xf6\xca\xad\x3d\x61\x11\xf4\x4b\x7d\x4f" \
- "\x82\x0f\xf9\xc0\x06\x9b\xb5\x1e\xcd\xed\x31\x8c" \
- "\x5c\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60" \
- "\x82"
-image3_data = \
- "\x89\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d" \
- "\x49\x48\x44\x52\x00\x00\x00\x16\x00\x00\x00\x16" \
- "\x08\x06\x00\x00\x00\xc4\xb4\x6c\x3b\x00\x00\x00" \
- "\x73\x49\x44\x41\x54\x38\x8d\xed\x92\xc1\x0e\x80" \
- "\x20\x08\x40\xb1\xef\x66\x1d\x1c\xff\x4d\x87\x6a" \
- "\xa8\x88\xa1\x76\x69\xf9\x36\x0f\x28\x3e\xd8\x00" \
- "\x60\xf1\x59\x42\x5f\x3a\x71\xf5\x36\x02\xe0\x8e" \
- "\x99\x2b\x09\x88\x01\xd0\x28\x54\x17\x6a\xe4\x7f" \
- "\x21\xce\x1f\xb5\xb0\x5d\x38\xed\xdc\x90\x60\xd0" \
- "\xf1\x13\x79\x63\x5b\x3b\xc9\x2b\xd5\x18\xe2\x39" \
- "\xa9\x43\xec\x1d\x5a\xb7\x78\x5c\xee\x10\x7b\xe4" \
- "\xb2\x15\xaf\x40\x91\xf8\x94\xde\x47\x18\x1e\xce" \
- "\xa5\x9e\xde\x9e\xc5\x9f\x38\x00\x62\xac\x28\xb1" \
- "\xe3\xd7\x01\xd9\x00\x00\x00\x00\x49\x45\x4e\x44" \
- "\xae\x42\x60\x82"
-image4_data = \
- "\x89\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d" \
- "\x49\x48\x44\x52\x00\x00\x00\x16\x00\x00\x00\x16" \
- "\x08\x06\x00\x00\x00\xc4\xb4\x6c\x3b\x00\x00\x00" \
- "\x74\x49\x44\x41\x54\x38\x8d\xed\x92\xc1\x0a\xc0" \
- "\x20\x08\x40\x6d\xdf\x2d\x3b\x84\xff\xed\x0e\xa3" \
- "\x58\x6a\x26\xd1\x65\xe0\x83\x0e\xa5\x3e\x85\x04" \
- "\x48\x7e\x4b\x91\x0f\x54\x89\xf1\x9e\xa5\xa3\xca" \
- "\x0f\x8a\x89\x63\x65\xb3\x06\xc4\x2d\xd6\x13\xc6" \
- "\x49\xbd\xc2\x59\x83\x16\x13\x62\x19\xf0\xf9\x36" \
- "\xc0\xa2\xef\x00\xd7\x5a\x62\x61\x4d\x3a\xb2\x29" \
- "\x96\xf2\xa3\x62\xff\xa3\x37\xc5\xeb\xed\xe9\x62" \
- "\xaa\xd1\xa2\xe8\x4a\xaa\xa2\xf7\x50\xdd\x12\x74" \
- "\x8c\x0f\xd0\xab\x93\x24\x67\x78\x00\x59\x6e\x28" \
- "\xb1\x74\x3f\x46\x86\x00\x00\x00\x00\x49\x45\x4e" \
- "\x44\xae\x42\x60\x82"
-image5_data = \
- "\x89\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d" \
- "\x49\x48\x44\x52\x00\x00\x00\x16\x00\x00\x00\x16" \
- "\x08\x06\x00\x00\x00\xc4\xb4\x6c\x3b\x00\x00\x00" \
- "\x82\x49\x44\x41\x54\x38\x8d\xcd\xd3\x41\x12\x80" \
- "\x20\x08\x05\x50\xe8\xe0\x2e\xbc\x38\xad\x32\x73" \
- "\x50\x3e\x48\x53\x7f\xe3\xe4\x8c\x4f\x24\x25\xfa" \
- "\x28\xe2\x9c\x6f\x39\x92\x0b\xf9\x27\x6c\xb6\x01" \
- "\x85\x35\x88\x77\x61\x13\x88\xc2\x57\x64\x18\xcd" \
- "\xa0\x15\xf5\x20\xb4\xe6\xb5\x5b\xe1\x09\xdc\x06" \
- "\x22\xb8\xe2\x2a\xcf\x31\x05\x6e\x18\xdf\xdf\xf8" \
- "\x06\x06\xaa\x55\x1c\xc6\x35\x64\xc4\xdc\xf8\x0c" \
- "\xd0\x20\x1d\x57\x7a\x5c\x85\xa8\x84\x5f\xdc\x02" \
- "\x5e\xa5\x30\x7a\xfc\xcd\x07\xe2\x3a\x1d\xf2\x83" \
- "\xec\x2b\x37\xd9\xad\x5f\xb4\xdf\xef\xd4\x9c\xfb" \
- "\xf7\x2f\xac\x98\xc8\xcc\x89\x00\x00\x00\x00\x49" \
- "\x45\x4e\x44\xae\x42\x60\x82"
-image6_data = \
- "\x89\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d" \
- "\x49\x48\x44\x52\x00\x00\x00\x16\x00\x00\x00\x16" \
- "\x08\x06\x00\x00\x00\xc4\xb4\x6c\x3b\x00\x00\x00" \
- "\xbf\x49\x44\x41\x54\x38\x8d\xd5\x93\x41\x0a\x83" \
- "\x30\x10\x45\xdf\x48\x8e\xe5\x1d\xbc\x8c\x3b\xa9" \
- "\x8b\xf4\x6a\x9e\xab\xd3\x85\x35\x0d\x26\x63\x62" \
- "\x44\x4a\x3f\x0c\x42\x66\xfc\xf3\xf8\x24\xf0\x6f" \
- "\x12\x40\x2b\x66\xda\x8c\x55\xf3\xde\x22\x12\xcf" \
- "\x9d\x92\xcb\x98\xc0\xba\x2d\x7c\x45\x44\xcf\x9a" \
- "\x07\x63\x8b\xba\xd5\x3c\x44\x91\x23\x5e\xcf\x7c" \
- "\xc1\x62\x36\x97\xa9\x25\x40\xc1\x1f\xf4\xfd\xa7" \
- "\x52\x75\x01\x5d\x24\xa9\x38\x9e\x7d\x6f\x53\xdf" \
- "\x4f\xe4\xcc\xab\x32\x3e\xea\x0f\x03\xc0\xc4\xb2" \
- "\xa0\x71\x2c\xe6\xad\xd8\x9b\x59\xb7\x66\x1c\x3b" \
- "\xe0\x95\x98\x5f\x26\x16\x79\xee\x4e\xbc\xc2\x2c" \
- "\x97\x88\x55\x1f\xe6\xa2\xcb\xc4\x96\x9a\x89\x4b" \
- "\xcb\x6f\x23\xee\x36\x1a\xab\x62\xe2\x52\xc5\x72" \
- "\x94\xdf\xbf\xb6\x10\xbb\xf2\xc8\x97\xb8\xa4\x6c" \
- "\xc6\x67\x7e\xaa\x51\x95\x71\xfa\x08\x7e\xa8\x37" \
- "\x62\xda\x9a\xba\xcb\x20\x23\x5f\x00\x00\x00\x00" \
- "\x49\x45\x4e\x44\xae\x42\x60\x82"
-image7_data = \
- "\x89\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d" \
- "\x49\x48\x44\x52\x00\x00\x00\x16\x00\x00\x00\x16" \
- "\x08\x06\x00\x00\x00\xc4\xb4\x6c\x3b\x00\x00\x00" \
- "\xd5\x49\x44\x41\x54\x38\x8d\xc5\x95\x5d\x0a\x84" \
- "\x30\x0c\x84\x27\xe2\xa9\x0a\x9e\x6c\x8b\x0f\x4b" \
- "\x3d\xd9\x82\xd7\xca\x3e\x58\xd7\xfe\x4c\xd0\xba" \
- "\x5d\x76\x40\x02\x4d\xf2\x65\xda\x0a\x05\x7e\x24" \
- "\x39\xc9\xeb\x8d\x9e\xaa\x88\x41\xa0\xc9\xaa\xd8" \
- "\xc8\x2a\xb3\x2f\x9c\x42\x5b\xe1\xe3\x0e\x0d\xcf" \
- "\x00\xc0\x03\x08\xf0\xb3\xa7\xa0\x74\x10\xa9\xd7" \
- "\x14\x2e\x00\xb4\x2c\x5a\x5f\xab\x69\x6b\x97\x9b" \
- "\x1c\x83\x7f\xc0\xc3\x16\xb6\xe4\x16\x5b\x64\xf7" \
- "\x8d\x71\x63\x59\x91\x9b\xdc\x45\x70\xde\x47\xc0" \
- "\x47\x32\xdd\x5e\x5b\xcc\x35\xf0\xc9\x77\x62\xae" \
- "\x78\x79\x36\xdc\xcf\x75\x13\x57\x7e\x79\xf4\x8c" \
- "\x4b\x27\xaa\x0f\x13\x27\xb2\x40\xf5\x11\x7f\xcb" \
- "\xe3\x48\xaa\x33\xb6\xe0\x22\x4b\x05\x4d\x07\x46" \
- "\xb8\x02\x5e\x2e\x3b\x3e\x73\xcd\xe0\xdd\x1c\x97" \
- "\xf0\x2e\x8e\xd9\xd0\xaf\x1d\xb3\x81\x22\x4b\xdf" \
- "\x33\xee\xe6\x98\xa9\x34\xa0\xf6\x17\xb4\x55\x40" \
- "\xd0\x0b\xcf\x4c\xa0\x8f\xc0\xdf\xf4\x06\xe3\x25" \
- "\xc1\x98\x1b\xc4\x18\x76\x00\x00\x00\x00\x49\x45" \
- "\x4e\x44\xae\x42\x60\x82"
-image8_data = \
- "\x89\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d" \
- "\x49\x48\x44\x52\x00\x00\x00\x16\x00\x00\x00\x16" \
- "\x08\x06\x00\x00\x00\xc4\xb4\x6c\x3b\x00\x00\x02" \
- "\x5d\x49\x44\x41\x54\x38\x8d\xd5\x93\xa1\x72\xdb" \
- "\x40\x10\x86\x3f\x67\x0a\x56\xec\xc4\x22\x78\xd0" \
- "\x65\x36\x93\xa0\xc2\x1c\x68\xd6\xc2\xe6\x0d\xf2" \
- "\x1a\x81\x81\x11\x34\x94\x99\xc2\x54\xa8\x32\x9b" \
- "\x55\xf0\xe0\x89\xdd\xb1\x5b\xa6\x02\xb7\x9d\x66" \
- "\x92\xd6\x99\xb6\xd3\x99\xfe\xe8\x6e\x67\xe7\xdb" \
- "\x7f\x77\xef\xe0\x7f\xd3\xe2\xc7\x4b\xd7\x75\xb3" \
- "\x73\x0e\xef\x3d\x51\x15\x00\x23\x82\xb5\x16\x6b" \
- "\x2d\x57\x57\x57\x8b\x17\x29\xbf\x02\xb7\x6d\x3b" \
- "\x0f\x87\x03\xb9\x2d\x58\xae\xd7\x60\x04\x00\xef" \
- "\x1c\xe3\xc7\x03\x06\xa8\xaa\x8a\xeb\xeb\xeb\x57" \
- "\xc1\x17\xdf\xa0\x6d\xdb\x52\x5d\xd7\x54\xef\xb6" \
- "\x00\xa8\x2a\x49\x13\x8a\x12\x35\x32\xec\x3a\xc4" \
- "\x2b\x9b\xcd\xe6\x55\xce\x2f\xfa\xbe\x9f\x87\xc3" \
- "\x40\xfd\xe1\x3d\xcb\x4d\x8d\xaa\xa2\x4e\x48\xee" \
- "\x12\xc6\x82\x38\x08\xc1\x07\x96\x9b\x1a\x8a\x9c" \
- "\xe3\xf1\xf8\xaa\x51\x5c\x38\xe7\xc8\xad\xa5\xaa" \
- "\x6b\x00\xc4\x5f\x12\x9c\x67\xd2\x23\x93\x8c\x88" \
- "\xe6\xc8\x60\xd1\x18\xb1\xd5\x92\xd1\x39\xba\xae" \
- "\x9b\xcf\x83\xa7\x89\x65\xb5\x46\x51\x34\x80\x1b" \
- "\x1d\x2e\x1f\x49\x45\xc0\xe3\x50\x09\x64\x08\xea" \
- "\x15\x44\x90\xc2\xe0\xbd\x3f\xef\x58\x53\xc2\xe4" \
- "\x86\xa0\x01\x9f\x4d\x84\xf5\x84\x18\x41\x83\x62" \
- "\xb0\x40\x8e\x8b\x23\xc9\x24\x50\x10\x93\x31\x4d" \
- "\xd3\x59\xf0\x1b\x80\x98\x14\x11\x20\x25\x14\x40" \
- "\x15\xf1\x96\x4c\x0b\xbc\x1b\x48\x4b\x07\xe4\x68" \
- "\x88\x80\xc0\x29\xeb\xd7\x8e\x41\x41\xf5\xb4\x34" \
- "\xfd\x76\x86\x4c\x05\x3f\x1e\x08\x4b\x0f\x85\x80" \
- "\x26\x54\x40\x63\x40\x44\xce\x83\x8b\xbc\xc0\x39" \
- "\x87\xa6\x13\x50\xa3\xa2\x28\x5e\x1d\x5a\x44\x14" \
- "\xd0\x70\x8a\xa5\x98\x08\x21\x62\xad\x3d\x0f\xb6" \
- "\xd6\xe2\x87\xcf\xa4\x98\x50\x8d\x27\x40\x50\x44" \
- "\x73\x70\x42\x8c\x91\xaf\x8d\x10\xfd\x44\x81\x60" \
- "\x8c\x39\x0b\x5e\x00\xdc\xdd\xdd\xcd\x8e\x80\xa9" \
- "\xde\x42\x02\x48\xe8\x04\x84\x08\x56\xf0\x3e\x02" \
- "\x90\x7d\x72\x94\x65\xc9\xba\x5a\xe3\x46\x87\x31" \
- "\xe6\xa7\x9f\xe5\x02\x60\xb5\x5a\x61\x02\xc4\xee" \
- "\x40\xa6\x89\x4c\x33\xf2\xcb\x0c\xb1\x06\x51\x28" \
- "\x14\xf8\xf8\x99\xb2\x2c\xb9\xb9\xb9\x59\xb8\xd1" \
- "\xf1\xf8\xf8\x48\xd3\x34\xb4\x6d\xfb\xe2\x9b\xfe" \
- "\x5e\xad\xef\xfb\xf9\x78\x3c\x32\x3a\x87\x18\x81" \
- "\xec\xb4\x20\x0d\x11\x51\xa8\xeb\x9a\xed\x76\xbb" \
- "\x00\x18\x86\x61\xee\xba\x8e\xfd\x7e\x8f\x31\x86" \
- "\xed\x76\xcb\x6a\xb5\x7a\xe2\xfe\x59\x1b\x5d\xd7" \
- "\xcd\xde\x7b\x62\x8c\x88\x08\x79\x9e\x63\xad\xa5" \
- "\xaa\xaa\x67\xb9\xbb\xdd\x6e\x6e\x9a\x06\xef\x3d" \
- "\x75\x5d\x3f\x29\xfe\xc7\xea\xfb\x7e\xbe\xbd\xbd" \
- "\x9d\xad\xb5\x73\x59\x96\xf3\xfd\xfd\xfd\xfc\xa2" \
- "\xe3\xdf\xd5\xc3\xc3\xc3\xdc\x34\x0d\xd3\x34\xb1" \
- "\xd9\x6c\xfe\x1e\x18\x4e\x63\xdc\xef\xf7\xa4\x94" \
- "\xfe\x26\xf6\x1f\xe9\x0b\xbc\x4c\x5e\x59\xd6\x14" \
- "\xca\xf4\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42" \
- "\x60\x82"
-
-class Eficas(QMainWindow):
- def __init__(self,parent = None,name = None,fl = 0):
- QMainWindow.__init__(self,parent,name,fl)
- self.statusBar()
-
- self.image0 = QPixmap()
- self.image0.loadFromData(image0_data,"PNG")
- self.image1 = QPixmap()
- self.image1.loadFromData(image1_data,"PNG")
- self.image2 = QPixmap()
- self.image2.loadFromData(image2_data,"PNG")
- self.image3 = QPixmap()
- self.image3.loadFromData(image3_data,"PNG")
- self.image4 = QPixmap()
- self.image4.loadFromData(image4_data,"PNG")
- self.image5 = QPixmap()
- self.image5.loadFromData(image5_data,"PNG")
- self.image6 = QPixmap()
- self.image6.loadFromData(image6_data,"PNG")
- self.image7 = QPixmap()
- self.image7.loadFromData(image7_data,"PNG")
- self.image8 = QPixmap()
- self.image8.loadFromData(image8_data,"PNG")
- if not name:
- self.setName("Eficas")
-
- self.setEnabled(1)
- self.setSizePolicy(QSizePolicy(QSizePolicy.Minimum,QSizePolicy.Minimum,0,0,self.sizePolicy().hasHeightForWidth()))
- self.setMinimumSize(QSize(21,336))
- self.setBackgroundOrigin(QMainWindow.WidgetOrigin)
- f = QFont(self.font())
- self.setFont(f)
-
- self.setCentralWidget(QWidget(self,"qt_central_widget"))
-
- self.line1 = QFrame(self.centralWidget(),"line1")
- self.line1.setGeometry(QRect(-30,-10,930,20))
- self.line1.setFrameShape(QFrame.HLine)
- self.line1.setFrameShadow(QFrame.Sunken)
- self.line1.setFrameShape(QFrame.HLine)
-
- self.fileNewAction = QAction(self,"fileNewAction")
- self.fileNewAction.setIconSet(QIconSet(self.image0))
- self.fileOpenAction = QAction(self,"fileOpenAction")
- self.fileOpenAction.setIconSet(QIconSet(self.image1))
- self.fileSaveAction = QAction(self,"fileSaveAction")
- self.fileSaveAction.setIconSet(QIconSet(self.image2))
- self.fileSaveAsAction = QAction(self,"fileSaveAsAction")
- self.fileExitAction = QAction(self,"fileExitAction")
- self.editUndoAction = QAction(self,"editUndoAction")
- self.editUndoAction.setEnabled(0)
- self.editUndoAction.setIconSet(QIconSet(self.image3))
- self.editRedoAction = QAction(self,"editRedoAction")
- self.editRedoAction.setEnabled(0)
- self.editRedoAction.setIconSet(QIconSet(self.image4))
- self.editCutAction = QAction(self,"editCutAction")
- self.editCutAction.setIconSet(QIconSet(self.image5))
- self.editCopyAction = QAction(self,"editCopyAction")
- self.editCopyAction.setIconSet(QIconSet(self.image6))
- self.editPasteAction = QAction(self,"editPasteAction")
- self.editPasteAction.setIconSet(QIconSet(self.image7))
- self.jdcFichierResultatAction = QAction(self,"jdcFichierResultatAction")
- self.jdcFichierResultatAction.setEnabled(1)
- self.jdcFichierResultatAction.setIconSet(QIconSet(self.image8))
- self.helpContentsAction = QAction(self,"helpContentsAction")
- self.helpIndexAction = QAction(self,"helpIndexAction")
- self.helpAboutAction = QAction(self,"helpAboutAction")
- self.helpAboutAction.setOn(0)
- self.fileSaveCloseAction = QAction(self,"fileSaveCloseAction")
- self.fileCloseAction = QAction(self,"fileCloseAction")
- self.fileNewViewAction = QAction(self,"fileNewViewAction")
- self.fileNewViewAction.setEnabled(0)
- self.fileCloseAllAction = QAction(self,"fileCloseAllAction")
- self.jdcRapportDeValidationAction = QAction(self,"jdcRapportDeValidationAction")
- self.jdcFichierSourceAction = QAction(self,"jdcFichierSourceAction")
- self.traduitV7V8Action = QAction(self,"traduitV7V8Action")
- self.aidenew_itemAction = QAction(self,"aidenew_itemAction")
- self.fileNewInclude = QAction(self,"fileNewInclude")
- self.optionEditeurAction = QAction(self,"optionEditeurAction")
- self.optionPdfAction = QAction(self,"optionPdfAction")
-
-
- self.toolBar = QToolBar(QString(""),self,Qt.DockTop)
-
- self.toolBar.setFrameShape(QToolBar.MenuBarPanel)
- self.toolBar.setHorizontallyStretchable(0)
- self.fileNewAction.addTo(self.toolBar)
- self.fileSaveAction.addTo(self.toolBar)
- self.fileOpenAction.addTo(self.toolBar)
- self.fileSaveAsAction.addTo(self.toolBar)
- self.editCutAction.addTo(self.toolBar)
- self.editPasteAction.addTo(self.toolBar)
- self.jdcFichierResultatAction.addTo(self.toolBar)
- self.fileExitAction.addTo(self.toolBar)
- self.toolBar.addSeparator()
-
-
- self.MenuBar = QMenuBar(self,"MenuBar")
-
- self.MenuBar.setMargin(2)
-
- self.Fichier = QPopupMenu(self)
- self.fileNewAction.addTo(self.Fichier)
- self.fileNewInclude.addTo(self.Fichier)
- self.fileOpenAction.addTo(self.Fichier)
- self.fileSaveAction.addTo(self.Fichier)
- self.fileSaveAsAction.addTo(self.Fichier)
- self.fileCloseAction.addTo(self.Fichier)
- self.fileCloseAllAction.addTo(self.Fichier)
- self.Fichier.insertSeparator()
- self.Fichier.insertSeparator()
- self.fileExitAction.addTo(self.Fichier)
- self.MenuBar.insertItem(QString(""),self.Fichier,2)
-
- self.Edition = QPopupMenu(self)
- self.Edition.insertSeparator()
- self.editCutAction.addTo(self.Edition)
- self.editCopyAction.addTo(self.Edition)
- self.editPasteAction.addTo(self.Edition)
- self.MenuBar.insertItem(QString(""),self.Edition,3)
-
- self.JdC = QPopupMenu(self)
- self.jdcRapportDeValidationAction.addTo(self.JdC)
- self.jdcFichierSourceAction.addTo(self.JdC)
- self.jdcFichierResultatAction.addTo(self.JdC)
- self.MenuBar.insertItem(QString(""),self.JdC,4)
-
- self.Aide = QPopupMenu(self)
- self.aidenew_itemAction.addTo(self.Aide)
- self.MenuBar.insertItem(QString(""),self.Aide,5)
-
- self.Options = QPopupMenu(self)
- self.optionEditeurAction.addTo(self.Options)
- self.optionPdfAction.addTo(self.Options)
- self.MenuBar.insertItem(QString(""),self.Options,6)
-
- self.Traduction = QPopupMenu(self)
- self.traduitV7V8Action.addTo(self.Traduction)
- self.MenuBar.insertItem(QString(""),self.Traduction,7)
-
- self.Patrons = QPopupMenu(self)
- self.MenuBar.insertItem(QString(""),self.Patrons,8)
-
-
- self.languageChange()
-
- self.resize(QSize(902,594).expandedTo(self.minimumSizeHint()))
- self.clearWState(Qt.WState_Polished)
-
- self.connect(self.fileNewAction,SIGNAL("activated()"),self.fileNew)
- self.connect(self.fileOpenAction,SIGNAL("activated()"),self.fileOpen)
- self.connect(self.fileSaveAction,SIGNAL("activated()"),self.fileSave)
- self.connect(self.fileSaveAsAction,SIGNAL("activated()"),self.fileSaveAs)
- self.connect(self.fileExitAction,SIGNAL("activated()"),self.fileExit)
- self.connect(self.editUndoAction,SIGNAL("activated()"),self.editUndo)
- self.connect(self.editRedoAction,SIGNAL("activated()"),self.editRedo)
- self.connect(self.editCutAction,SIGNAL("activated()"),self.editCut)
- self.connect(self.editPasteAction,SIGNAL("activated()"),self.editPaste)
- self.connect(self.jdcFichierResultatAction,SIGNAL("activated()"),self.visuJdcPy)
- self.connect(self.helpIndexAction,SIGNAL("activated()"),self.helpIndex)
- self.connect(self.helpContentsAction,SIGNAL("activated()"),self.helpContents)
- self.connect(self.helpAboutAction,SIGNAL("activated()"),self.helpAbout)
- self.connect(self.fileCloseAction,SIGNAL("activated()"),self.fileClose)
- self.connect(self.fileNewViewAction,SIGNAL("activated()"),self.fileNewView)
- self.connect(self.fileCloseAllAction,SIGNAL("activated()"),self.fileCloseAll)
- self.connect(self.editCopyAction,SIGNAL("activated()"),self.editCopy)
- self.connect(self.jdcRapportDeValidationAction,SIGNAL("activated()"),self.jdcRapport)
- self.connect(self.jdcFichierSourceAction,SIGNAL("activated()"),self.jdcFichierSource)
- self.connect(self.traduitV7V8Action,SIGNAL("activated()"),self.traductionV7V8)
- self.connect(self.aidenew_itemAction,SIGNAL("activated()"),self.helpAbout)
- self.connect(self.fileNewInclude,SIGNAL("activated()"),self.NewInclude)
- self.connect(self.optionEditeurAction,SIGNAL("activated()"),self.optionEditeur)
- self.connect(self.optionPdfAction,SIGNAL("activated()"),self.optionPdf)
-
-
- def languageChange(self):
- self.setCaption(self.__tr("Eficas "))
- self.fileNewAction.setText(self.__tr("Nouveau"))
- self.fileNewAction.setMenuText(self.__tr("&Nouveau"))
- self.fileNewAction.setAccel(self.__tr("Ctrl+N"))
- self.fileOpenAction.setText(self.__tr("Ouvrir"))
- self.fileOpenAction.setMenuText(self.__tr("&Ouvrir"))
- self.fileOpenAction.setAccel(self.__tr("Ctrl+O"))
- self.fileSaveAction.setText(self.__tr("Enregistrer"))
- self.fileSaveAction.setMenuText(self.__tr("&Enregistrer"))
- self.fileSaveAction.setAccel(self.__tr("Ctrl+E"))
- self.fileSaveAsAction.setText(self.__tr("Enregistrer Sous"))
- self.fileSaveAsAction.setMenuText(self.__tr("Enregistrer Sous"))
- self.fileSaveAsAction.setAccel(QString.null)
- self.fileExitAction.setText(self.__tr("Quitter"))
- self.fileExitAction.setMenuText(self.__tr("Q&uitter"))
- self.fileExitAction.setAccel(QString.null)
- self.editUndoAction.setText(self.__tr("Undo"))
- self.editUndoAction.setMenuText(self.__tr("&Undo"))
- self.editUndoAction.setAccel(self.__tr("Ctrl+Z"))
- self.editRedoAction.setText(self.__tr("Redo"))
- self.editRedoAction.setMenuText(self.__tr("&Redo"))
- self.editRedoAction.setAccel(self.__tr("Ctrl+Y"))
- self.editCutAction.setText(self.__tr("Couper"))
- self.editCutAction.setMenuText(self.__tr("C&ouper"))
- self.editCutAction.setAccel(self.__tr("Ctrl+X"))
- self.editCopyAction.setText(self.__tr("Copier"))
- self.editCopyAction.setMenuText(self.__tr("&Copier"))
- self.editCopyAction.setAccel(self.__tr("Ctrl+C"))
- self.editPasteAction.setText(self.__tr("Coller"))
- self.editPasteAction.setMenuText(self.__tr("&Coller"))
- self.editPasteAction.setAccel(self.__tr("Ctrl+V"))
- self.jdcFichierResultatAction.setText(self.__tr("Fichier Resultat"))
- self.jdcFichierResultatAction.setMenuText(self.__tr("Fichier Resultat"))
- self.jdcFichierResultatAction.setAccel(self.__tr("Ctrl+F"))
- self.helpContentsAction.setText(self.__tr("Contents"))
- self.helpContentsAction.setMenuText(self.__tr("&Contents..."))
- self.helpContentsAction.setAccel(QString.null)
- self.helpIndexAction.setText(self.__tr("Index"))
- self.helpIndexAction.setMenuText(self.__tr("&Index..."))
- self.helpIndexAction.setAccel(QString.null)
- self.helpAboutAction.setText(self.__tr("About"))
- self.helpAboutAction.setMenuText(self.__tr("&About"))
- self.helpAboutAction.setAccel(QString.null)
- self.fileSaveCloseAction.setText(self.__tr("Fermer"))
- self.fileSaveCloseAction.setMenuText(self.__tr("Fermer"))
- self.fileCloseAction.setText(self.__tr("Fermer"))
- self.fileCloseAction.setMenuText(self.__tr("Fermer"))
- self.fileCloseAction.setAccel(self.__tr("Ctrl+W"))
- self.fileNewViewAction.setText(self.__tr("New view"))
- self.fileCloseAllAction.setText(self.__tr("Tout Fermer"))
- self.fileCloseAllAction.setMenuText(self.__tr("Tout Fermer"))
- self.jdcRapportDeValidationAction.setText(self.__tr("Rapport de validation"))
- self.jdcRapportDeValidationAction.setMenuText(self.__tr("Rapport de validation"))
- self.jdcRapportDeValidationAction.setAccel(self.__tr("Ctrl+R"))
- self.jdcFichierSourceAction.setText(self.__tr("Fichier source"))
- self.jdcFichierSourceAction.setMenuText(self.__tr("Fichier source"))
- self.jdcFichierSourceAction.setAccel(self.__tr("Ctrl+B"))
- self.traduitV7V8Action.setText(self.__tr("traduitV7V8"))
- self.traduitV7V8Action.setMenuText(self.__tr("traduitV7V8"))
- self.aidenew_itemAction.setText(self.__tr("Eficas"))
- self.fileNewInclude.setText(self.__tr("Nouvel Include"))
- self.fileNewInclude.setMenuText(self.__tr("Nouvel Include"))
- self.optionEditeurAction.setText(self.__tr("Parametres Eficas"))
- self.optionEditeurAction.setMenuText(self.__tr("Parametres Eficas"))
- self.optionPdfAction.setText(self.__tr("Lecteur Pdf"))
- self.optionPdfAction.setMenuText(self.__tr("Lecteur Pdf"))
- self.toolBar.setLabel(self.__tr("Tools"))
- if self.MenuBar.findItem(2):
- self.MenuBar.findItem(2).setText(self.__tr("&Fichier"))
- if self.MenuBar.findItem(3):
- self.MenuBar.findItem(3).setText(self.__tr("&Edition"))
- if self.MenuBar.findItem(4):
- self.MenuBar.findItem(4).setText(self.__tr("JdC"))
- if self.MenuBar.findItem(5):
- self.MenuBar.findItem(5).setText(self.__tr("&Aide"))
- if self.MenuBar.findItem(6):
- self.MenuBar.findItem(6).setText(self.__tr("Options"))
- if self.MenuBar.findItem(7):
- self.MenuBar.findItem(7).setText(self.__tr("Traduction"))
- if self.MenuBar.findItem(8):
- self.MenuBar.findItem(8).setText(self.__tr("Patrons"))
-
-
- def fileNew(self):
- print "Eficas.fileNew(): Not implemented yet"
-
- def fileOpen(self):
- print "Eficas.fileOpen(): Not implemented yet"
-
- def fileSave(self):
- print "Eficas.fileSave(): Not implemented yet"
-
- def fileSaveAs(self):
- print "Eficas.fileSaveAs(): Not implemented yet"
-
- def filePrint(self):
- print "Eficas.filePrint(): Not implemented yet"
-
- def fileExit(self):
- print "Eficas.fileExit(): Not implemented yet"
-
- def editUndo(self):
- print "Eficas.editUndo(): Not implemented yet"
-
- def editRedo(self):
- print "Eficas.editRedo(): Not implemented yet"
-
- def jdcFichierSource(self):
- print "Eficas.jdcFichierSource(): Not implemented yet"
-
- def fileNewView(self):
- print "Eficas.fileNewView(): Not implemented yet"
-
- def editPaste(self):
- print "Eficas.editPaste(): Not implemented yet"
-
- def visuJdcPy(self):
- print "Eficas.visuJdcPy(): Not implemented yet"
-
- def helpIndex(self):
- print "Eficas.helpIndex(): Not implemented yet"
-
- def helpContents(self):
- print "Eficas.helpContents(): Not implemented yet"
-
- def helpAbout(self):
- print "Eficas.helpAbout(): Not implemented yet"
-
- def fileClose(self):
- print "Eficas.fileClose(): Not implemented yet"
-
- def fileCloseAll(self):
- print "Eficas.fileCloseAll(): Not implemented yet"
-
- def jdcRapport(self):
- print "Eficas.jdcRapport(): Not implemented yet"
-
- def editCut(self):
- print "Eficas.editCut(): Not implemented yet"
-
- def editCopy(self):
- print "Eficas.editCopy(): Not implemented yet"
-
- def traductionV7V8(self):
- print "Eficas.traductionV7V8(): Not implemented yet"
-
- def NewInclude(self):
- print "Eficas.NewInclude(): Not implemented yet"
-
- def optionEditeur(self):
- print "Eficas.optionEditeur(): Not implemented yet"
-
- def optionPdf(self):
- print "Eficas.optionPdf(): Not implemented yet"
-
- def __tr(self,s,c = None):
- return qApp.translate("Eficas",s,c)
# Form implementation generated from reading ui file 'OptionsEditeur.ui'
#
-# Created: Wed Jul 9 10:12:47 2008
+# Created: Tue Nov 18 17:37:26 2008
# by: PyQt4 UI code generator 4.4.2
#
# WARNING! All changes made in this file will be lost!
# Form implementation generated from reading ui file 'OptionsPdf.ui'
#
-# Created: Wed Jul 9 10:12:47 2008
+# Created: Tue Nov 18 17:37:26 2008
# by: PyQt4 UI code generator 4.4.2
#
# WARNING! All changes made in this file will be lost!
# Form implementation generated from reading ui file 'aideQT.ui'
#
-# Created: Wed Jul 9 10:12:47 2008
+# Created: Tue Nov 18 17:37:26 2008
# by: PyQt4 UI code generator 4.4.2
#
# WARNING! All changes made in this file will be lost!
# Form implementation generated from reading ui file 'desChoixCata.ui'
#
-# Created: Wed Jul 16 16:27:33 2008
+# Created: Tue Nov 18 17:37:24 2008
# by: PyQt4 UI code generator 4.4.2
#
# WARNING! All changes made in this file will be lost!
# Form implementation generated from reading ui file 'desCommande.ui'
#
-# Created: Tue Sep 23 10:19:58 2008
+# Created: Tue Nov 18 17:37:24 2008
# by: PyQt4 UI code generator 4.4.2
#
# WARNING! All changes made in this file will be lost!
# Form implementation generated from reading ui file 'desCommentaire.ui'
#
-# Created: Wed Jul 23 12:00:45 2008
+# Created: Tue Nov 18 17:37:24 2008
# by: PyQt4 UI code generator 4.4.2
#
# WARNING! All changes made in this file will be lost!
# Form implementation generated from reading ui file 'desError.ui'
#
-# Created: Wed Jul 9 10:11:20 2008
+# Created: Tue Nov 18 17:37:24 2008
# by: PyQt4 UI code generator 4.4.2
#
# WARNING! All changes made in this file will be lost!
# Form implementation generated from reading ui file 'desFormule.ui'
#
-# Created: Wed Jul 23 11:43:53 2008
+# Created: Tue Nov 18 17:37:24 2008
# by: PyQt4 UI code generator 4.4.2
#
# WARNING! All changes made in this file will be lost!
# Form implementation generated from reading ui file 'desInactif.ui'
#
-# Created: Wed Jul 9 10:11:21 2008
+# Created: Tue Nov 18 17:37:24 2008
# by: PyQt4 UI code generator 4.4.2
#
# WARNING! All changes made in this file will be lost!
# Form implementation generated from reading ui file 'desInclude.ui'
#
-# Created: Tue Oct 7 16:59:34 2008
+# Created: Tue Nov 18 17:37:24 2008
# by: PyQt4 UI code generator 4.4.2
#
# WARNING! All changes made in this file will be lost!
# Form implementation generated from reading ui file 'desListeParam.ui'
#
-# Created: Fri Jul 18 16:24:34 2008
+# Created: Tue Nov 18 17:37:24 2008
# by: PyQt4 UI code generator 4.4.2
#
# WARNING! All changes made in this file will be lost!
# Form implementation generated from reading ui file 'desMCFact.ui'
#
-# Created: Fri Jul 18 16:24:34 2008
+# Created: Tue Nov 18 17:37:24 2008
# by: PyQt4 UI code generator 4.4.2
#
# WARNING! All changes made in this file will be lost!
# Form implementation generated from reading ui file 'desMCListAjout.ui'
#
-# Created: Wed Jul 9 10:11:21 2008
+# Created: Tue Nov 18 17:37:24 2008
# by: PyQt4 UI code generator 4.4.2
#
# WARNING! All changes made in this file will be lost!
# Form implementation generated from reading ui file 'desParam.ui'
#
-# Created: Wed Sep 10 11:20:17 2008
+# Created: Tue Nov 18 17:37:24 2008
# by: PyQt4 UI code generator 4.4.2
#
# WARNING! All changes made in this file will be lost!
# Form implementation generated from reading ui file 'desPlusieursBase.ui'
#
-# Created: Fri Jul 18 16:24:35 2008
+# Created: Tue Nov 18 17:37:25 2008
# by: PyQt4 UI code generator 4.4.2
#
# WARNING! All changes made in this file will be lost!
# Form implementation generated from reading ui file 'desPlusieursInto.ui'
#
-# Created: Fri Sep 26 11:16:49 2008
+# Created: Tue Nov 18 17:37:25 2008
# by: PyQt4 UI code generator 4.4.2
#
# WARNING! All changes made in this file will be lost!
# Form implementation generated from reading ui file 'desPoursuite.ui'
#
-# Created: Fri Oct 10 11:42:29 2008
+# Created: Tue Nov 18 17:37:25 2008
# by: PyQt4 UI code generator 4.4.2
#
# WARNING! All changes made in this file will be lost!
# Form implementation generated from reading ui file 'desRacine.ui'
#
-# Created: Tue Sep 23 10:19:58 2008
+# Created: Tue Nov 18 17:37:25 2008
# by: PyQt4 UI code generator 4.4.2
#
# WARNING! All changes made in this file will be lost!
# Form implementation generated from reading ui file 'desSelectVal.ui'
#
-# Created: Fri Sep 26 17:59:06 2008
+# Created: Tue Nov 18 17:37:25 2008
# by: PyQt4 UI code generator 4.4.2
#
# WARNING! All changes made in this file will be lost!
# Form implementation generated from reading ui file 'desUniqueASSD.ui'
#
-# Created: Fri Jul 18 16:24:35 2008
+# Created: Tue Nov 18 17:37:25 2008
# by: PyQt4 UI code generator 4.4.2
#
# WARNING! All changes made in this file will be lost!
# Form implementation generated from reading ui file 'desUniqueBase.ui'
#
-# Created: Thu Jul 24 10:46:31 2008
+# Created: Tue Nov 18 17:37:25 2008
# by: PyQt4 UI code generator 4.4.2
#
# WARNING! All changes made in this file will be lost!
# Form implementation generated from reading ui file 'desUniqueComp.ui'
#
-# Created: Wed Jul 9 10:31:14 2008
+# Created: Tue Nov 18 17:37:25 2008
# by: PyQt4 UI code generator 4.4.2
#
# WARNING! All changes made in this file will be lost!
# Form implementation generated from reading ui file 'desUniqueInto.ui'
#
-# Created: Fri Jul 18 16:24:35 2008
+# Created: Tue Nov 18 17:37:25 2008
# by: PyQt4 UI code generator 4.4.2
#
# WARNING! All changes made in this file will be lost!
# Form implementation generated from reading ui file 'desUniqueSDCO.ui'
#
-# Created: Wed Jul 9 10:11:22 2008
+# Created: Tue Nov 18 17:37:26 2008
# by: PyQt4 UI code generator 4.4.2
#
# WARNING! All changes made in this file will be lost!
# Form implementation generated from reading ui file 'desUniqueSDCOInto.ui'
#
-# Created: Fri Jul 18 16:24:35 2008
+# Created: Tue Nov 18 17:37:25 2008
# by: PyQt4 UI code generator 4.4.2
#
# WARNING! All changes made in this file will be lost!
# Form implementation generated from reading ui file 'desViewTexte.ui'
#
-# Created: Tue Sep 9 18:09:46 2008
+# Created: Tue Nov 18 17:37:26 2008
# by: PyQt4 UI code generator 4.4.2
#
# WARNING! All changes made in this file will be lost!
# Form implementation generated from reading ui file 'desVisu.ui'
#
-# Created: Wed Jul 9 10:11:22 2008
+# Created: Tue Nov 18 17:37:26 2008
# by: PyQt4 UI code generator 4.4.2
#
# WARNING! All changes made in this file will be lost!
# Form implementation generated from reading ui file 'myMain.ui'
#
-# Created: Wed Sep 10 09:57:04 2008
+# Created: Tue Nov 18 17:37:26 2008
# by: PyQt4 UI code generator 4.4.2
#
# WARNING! All changes made in this file will be lost!
self.actionFermer.setObjectName("actionFermer")
self.actionFermer_tout = QtGui.QAction(Eficas)
self.actionFermer_tout.setObjectName("actionFermer_tout")
- self.actionCopier = QtGui.QAction(Eficas)
- self.actionCopier.setObjectName("actionCopier")
self.actionCouper = QtGui.QAction(Eficas)
icon = QtGui.QIcon()
icon.addPixmap(QtGui.QPixmap("icons/Cut24.gif"),QtGui.QIcon.Normal,QtGui.QIcon.Off)
self.actionCouper.setIcon(icon)
self.actionCouper.setObjectName("actionCouper")
- self.actionColler = QtGui.QAction(Eficas)
- self.actionColler.setObjectName("actionColler")
- self.actionCopier1 = QtGui.QAction(Eficas)
+ self.actionCopier = QtGui.QAction(Eficas)
icon = QtGui.QIcon()
icon.addPixmap(QtGui.QPixmap("icons/Copy24.gif"),QtGui.QIcon.Normal,QtGui.QIcon.Off)
- self.actionCopier1.setIcon(icon)
- self.actionCopier1.setObjectName("actionCopier1")
- self.actionColler1 = QtGui.QAction(Eficas)
+ self.actionCopier.setIcon(icon)
+ self.actionCopier.setObjectName("actionCopier")
+ self.actionColler = QtGui.QAction(Eficas)
icon = QtGui.QIcon()
icon.addPixmap(QtGui.QPixmap("icons/Paste24.gif"),QtGui.QIcon.Normal,QtGui.QIcon.Off)
- self.actionColler1.setIcon(icon)
- self.actionColler1.setObjectName("actionColler1")
+ self.actionColler.setIcon(icon)
+ self.actionColler.setObjectName("actionColler")
self.actionQuitter = QtGui.QAction(Eficas)
self.actionQuitter.setObjectName("actionQuitter")
self.actionRapport_de_Validation = QtGui.QAction(Eficas)
self.action_Ouvrir.setText(QtGui.QApplication.translate("Eficas", "&Ouvrir", None, QtGui.QApplication.UnicodeUTF8))
self.action_Ouvrir.setShortcut(QtGui.QApplication.translate("Eficas", "Ctrl+O", None, QtGui.QApplication.UnicodeUTF8))
self.actionEnregistrer.setText(QtGui.QApplication.translate("Eficas", "Enregistrer", None, QtGui.QApplication.UnicodeUTF8))
- self.actionEnregistrer.setShortcut(QtGui.QApplication.translate("Eficas", "Shift+E", None, QtGui.QApplication.UnicodeUTF8))
+ self.actionEnregistrer.setShortcut(QtGui.QApplication.translate("Eficas", "Ctrl+E", None, QtGui.QApplication.UnicodeUTF8))
self.actionEnregistrer_sous.setText(QtGui.QApplication.translate("Eficas", "Enregistrer sous", None, QtGui.QApplication.UnicodeUTF8))
+ self.actionEnregistrer_sous.setShortcut(QtGui.QApplication.translate("Eficas", "Ctrl+Shift+E", None, QtGui.QApplication.UnicodeUTF8))
self.actionFermer.setText(QtGui.QApplication.translate("Eficas", "Fermer ", None, QtGui.QApplication.UnicodeUTF8))
self.actionFermer.setShortcut(QtGui.QApplication.translate("Eficas", "Ctrl+W", None, QtGui.QApplication.UnicodeUTF8))
self.actionFermer_tout.setText(QtGui.QApplication.translate("Eficas", "Fermer tout", None, QtGui.QApplication.UnicodeUTF8))
- self.actionCopier.setText(QtGui.QApplication.translate("Eficas", "Copier", None, QtGui.QApplication.UnicodeUTF8))
self.actionCouper.setText(QtGui.QApplication.translate("Eficas", "Couper", None, QtGui.QApplication.UnicodeUTF8))
+ self.actionCouper.setShortcut(QtGui.QApplication.translate("Eficas", "Ctrl+X", None, QtGui.QApplication.UnicodeUTF8))
+ self.actionCopier.setText(QtGui.QApplication.translate("Eficas", "Copier", None, QtGui.QApplication.UnicodeUTF8))
+ self.actionCopier.setShortcut(QtGui.QApplication.translate("Eficas", "Ctrl+C", None, QtGui.QApplication.UnicodeUTF8))
self.actionColler.setText(QtGui.QApplication.translate("Eficas", "Coller", None, QtGui.QApplication.UnicodeUTF8))
- self.actionCopier1.setText(QtGui.QApplication.translate("Eficas", "Copier", None, QtGui.QApplication.UnicodeUTF8))
- self.actionColler1.setText(QtGui.QApplication.translate("Eficas", "Coller", None, QtGui.QApplication.UnicodeUTF8))
+ self.actionColler.setShortcut(QtGui.QApplication.translate("Eficas", "Ctrl+V", None, QtGui.QApplication.UnicodeUTF8))
self.actionQuitter.setText(QtGui.QApplication.translate("Eficas", "Quitter", None, QtGui.QApplication.UnicodeUTF8))
+ self.actionQuitter.setShortcut(QtGui.QApplication.translate("Eficas", "Ctrl+Q", None, QtGui.QApplication.UnicodeUTF8))
self.actionRapport_de_Validation.setText(QtGui.QApplication.translate("Eficas", "Rapport de Validation", None, QtGui.QApplication.UnicodeUTF8))
self.actionFichier_Source.setText(QtGui.QApplication.translate("Eficas", "Fichier Source", None, QtGui.QApplication.UnicodeUTF8))
self.actionFichier_Resultat.setText(QtGui.QApplication.translate("Eficas", "Fichier Résultat", None, QtGui.QApplication.UnicodeUTF8))
<string>Enregistrer</string>
</property>
<property name="shortcut" >
- <string>Shift+E</string>
+ <string>Ctrl+E</string>
</property>
</action>
<action name="actionEnregistrer_sous" >
<property name="text" >
<string>Enregistrer sous</string>
</property>
+ <property name="shortcut" >
+ <string>Ctrl+Shift+E</string>
+ </property>
</action>
<action name="actionFermer" >
<property name="text" >
<string>Fermer tout</string>
</property>
</action>
- <action name="actionCopier" >
- <property name="text" >
- <string>Copier</string>
- </property>
- </action>
<action name="actionCouper" >
<property name="icon" >
<iconset>
<property name="text" >
<string>Couper</string>
</property>
- </action>
- <action name="actionColler" >
- <property name="text" >
- <string>Coller</string>
+ <property name="shortcut" >
+ <string>Ctrl+X</string>
</property>
</action>
<action name="actionCopier" >
<property name="text" >
<string>Copier</string>
</property>
+ <property name="shortcut" >
+ <string>Ctrl+C</string>
+ </property>
</action>
<action name="actionColler" >
<property name="icon" >
<property name="text" >
<string>Coller</string>
</property>
+ <property name="shortcut" >
+ <string>Ctrl+V</string>
+ </property>
</action>
<action name="actionQuitter" >
<property name="text" >
<string>Quitter</string>
</property>
+ <property name="shortcut" >
+ <string>Ctrl+Q</string>
+ </property>
</action>
<action name="actionRapport_de_Validation" >
<property name="text" >
-#@ MODIF V_UN_PARMI Validation DATE 14/09/2004 AUTEUR MCOURTOI M.COURTOIS
+#@ MODIF V_UN_PARMI Validation DATE 16/09/2008 AUTEUR PELLET J.PELLET
# -*- coding: iso-8859-1 -*-
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG
# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
-# (AT YOUR OPTION) ANY LATER VERSION.
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
-# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
-#
-#
# ======================================================================
La règle vérifie que l'on trouve un des mots-clés
de la règle parmi les arguments d'un OBJECT.
- Ces arguments sont transmis à la règle pour validation sous la forme
- d'une liste de noms de mots-clés ou d'un dictionnaire dont
+ Ces arguments sont transmis à la règle pour validation sous la forme
+ d'une liste de noms de mots-clés ou d'un dictionnaire dont
les clés sont des noms de mots-clés.
"""
def verif(self,args):
for mc in self.mcs:
if args.has_key(mc):count=count+1
if count != 1:
- text = "- Il ne faut qu'un mot-clé parmi : "+`self.mcs`+'\n'
+ text = "- Il faut un et un seul mot-clé parmi : "+`self.mcs`+'\n'
return text,0
return text,1
+++ /dev/null
-# -*- coding: utf-8 -*-
-# CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
-# (AT YOUR OPTION) ANY LATER VERSION.
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
-# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
-#
-#
-# ======================================================================
-"""
- Ce module contient le plugin convertisseur de fichier
- au format python pour EFICAS.
-
- Un plugin convertisseur doit fournir deux attributs de classe :
- extensions et formats et deux méthodes : readfile,convert.
-
- L'attribut de classe extensions est une liste d'extensions
- de fichiers préconisées pour ce type de format. Cette information
- est seulement indicative.
-
- L'attribut de classe formats est une liste de formats de sortie
- supportés par le convertisseur. Les formats possibles sont :
- eval, dict ou exec.
- Le format eval est un texte source Python qui peut etre evalué. Le
- résultat de l'évaluation est un objet Python quelconque.
- Le format dict est un dictionnaire Python.
- Le format exec est un texte source Python qui peut etre executé.
-
- La méthode readfile a pour fonction de lire un fichier dont le
- nom est passé en argument de la fonction.
- - convertisseur.readfile(nom_fichier)
-
- La méthode convert a pour fonction de convertir le fichier
- préalablement lu dans un objet du format passé en argument.
- - objet=convertisseur.convert(outformat)
-
- Ce convertisseur supporte le format de sortie exec
-
-"""
-import sys,string,traceback
-
-import parseur_python
-from Noyau import N_CR
-
-def entryPoint():
- """
- Retourne les informations nécessaires pour le chargeur de plugins
- Ces informations sont retournées dans un dictionnaire
- """
- return {
- # Le nom du plugin
- 'name' : 'openturns',
- # La factory pour créer une instance du plugin
- 'factory' : PythonParser,
- }
-
-
-class PythonParser:
- """
- Ce convertisseur lit un fichier au format python avec la
- methode readfile : convertisseur.readfile(nom_fichier)
- et retourne le texte au format outformat avec la
- methode convertisseur.convert(outformat)
-
- Ses caractéristiques principales sont exposées dans 2 attributs
- de classe :
- - extensions : qui donne une liste d'extensions de fichier préconisées
- - formats : qui donne une liste de formats de sortie supportés
- """
- # Les extensions de fichier préconisées
- extensions=('.py',)
- # Les formats de sortie supportés (eval dict ou exec)
- # Le format exec est du python executable (commande exec) converti avec PARSEUR_PYTHON
- # Le format execnoparseur est du python executable (commande exec) non converti
- formats=('exec','execnoparseur')
-
- def __init__(self,cr=None):
- # Si l'objet compte-rendu n'est pas fourni, on utilise le
- # compte-rendu standard
- self.text=''
- if cr :
- self.cr=cr
- else:
- self.cr=N_CR.CR(debut='CR convertisseur format python',
- fin='fin CR format python')
-
- def readfile(self,filename):
- self.filename=filename
- try:
- self.text=open(filename).read()
- except:
- self.cr.fatal("Impossible ouvrir fichier %s" % filename)
- return
-
- def convert(self,outformat,appli=None):
- if outformat == 'exec':
- try:
- #txt=parseur_python.PARSEUR_PYTHON(self.text).get_texte(appli)
- #print txt
- #return txt
- return parseur_python.PARSEUR_PYTHON(self.text).get_texte(appli)
- except:
- # Erreur lors de la conversion
- l=traceback.format_exception(sys.exc_info()[0],sys.exc_info()[1],
- sys.exc_info()[2])
- self.cr.exception("Impossible de convertir le fichier python \
- qui doit contenir des erreurs.\n \
- On retourne le fichier non converti \n \
- Prévenir la maintenance. \n" + string.join(l))
- # On retourne néanmoins le source initial non converti (au cas où)
- return self.text
- elif outformat == 'execnoparseur':
- return self.text
- else:
- raise "Format de sortie : %s, non supporté"
- return None
-
--- /dev/null
+# -*- coding: utf-8 -*-
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+#
+#
+# ======================================================================
+"""
+ Ce module contient le plugin convertisseur de fichier
+ au format python pour EFICAS.
+
+ Un plugin convertisseur doit fournir deux attributs de classe :
+ extensions et formats et deux méthodes : readfile,convert.
+
+ L'attribut de classe extensions est une liste d'extensions
+ de fichiers préconisées pour ce type de format. Cette information
+ est seulement indicative.
+
+ L'attribut de classe formats est une liste de formats de sortie
+ supportés par le convertisseur. Les formats possibles sont :
+ eval, dict ou exec.
+ Le format eval est un texte source Python qui peut etre evalué. Le
+ résultat de l'évaluation est un objet Python quelconque.
+ Le format dict est un dictionnaire Python.
+ Le format exec est un texte source Python qui peut etre executé.
+
+ La méthode readfile a pour fonction de lire un fichier dont le
+ nom est passé en argument de la fonction.
+ - convertisseur.readfile(nom_fichier)
+
+ La méthode convert a pour fonction de convertir le fichier
+ préalablement lu dans un objet du format passé en argument.
+ - objet=convertisseur.convert(outformat)
+
+ Ce convertisseur supporte le format de sortie exec
+
+"""
+import sys,string,traceback
+
+import parseur_python
+from Noyau import N_CR
+
+def entryPoint():
+ """
+ Retourne les informations nécessaires pour le chargeur de plugins
+ Ces informations sont retournées dans un dictionnaire
+ """
+ return {
+ # Le nom du plugin
+ 'name' : 'openturns_study',
+ # La factory pour créer une instance du plugin
+ 'factory' : PythonParser,
+ }
+
+
+class PythonParser:
+ """
+ Ce convertisseur lit un fichier au format python avec la
+ methode readfile : convertisseur.readfile(nom_fichier)
+ et retourne le texte au format outformat avec la
+ methode convertisseur.convert(outformat)
+
+ Ses caractéristiques principales sont exposées dans 2 attributs
+ de classe :
+ - extensions : qui donne une liste d'extensions de fichier préconisées
+ - formats : qui donne une liste de formats de sortie supportés
+ """
+ # Les extensions de fichier préconisées
+ extensions=('.py',)
+ # Les formats de sortie supportés (eval dict ou exec)
+ # Le format exec est du python executable (commande exec) converti avec PARSEUR_PYTHON
+ # Le format execnoparseur est du python executable (commande exec) non converti
+ formats=('exec','execnoparseur')
+
+ def __init__(self,cr=None):
+ # Si l'objet compte-rendu n'est pas fourni, on utilise le
+ # compte-rendu standard
+ self.text=''
+ if cr :
+ self.cr=cr
+ else:
+ self.cr=N_CR.CR(debut='CR convertisseur format python',
+ fin='fin CR format python')
+
+ def readfile(self,filename):
+ self.filename=filename
+ try:
+ self.text=open(filename).read()
+ except:
+ self.cr.fatal("Impossible ouvrir fichier %s" % filename)
+ return
+
+ def convert(self,outformat,appli=None):
+ if outformat == 'exec':
+ try:
+ #txt=parseur_python.PARSEUR_PYTHON(self.text).get_texte(appli)
+ #print txt
+ #return txt
+ return parseur_python.PARSEUR_PYTHON(self.text).get_texte(appli)
+ except:
+ # Erreur lors de la conversion
+ l=traceback.format_exception(sys.exc_info()[0],sys.exc_info()[1],
+ sys.exc_info()[2])
+ self.cr.exception("Impossible de convertir le fichier python \
+ qui doit contenir des erreurs.\n \
+ On retourne le fichier non converti \n \
+ Prévenir la maintenance. \n" + string.join(l))
+ # On retourne néanmoins le source initial non converti (au cas où)
+ return self.text
+ elif outformat == 'execnoparseur':
+ return self.text
+ else:
+ raise "Format de sortie : %s, non supporté"
+ return None
+
--- /dev/null
+# -*- coding: utf-8 -*-
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+#
+#
+# ======================================================================
+"""
+ Ce module contient le plugin convertisseur de fichier
+ au format python pour EFICAS.
+
+ Un plugin convertisseur doit fournir deux attributs de classe :
+ extensions et formats et deux méthodes : readfile,convert.
+
+ L'attribut de classe extensions est une liste d'extensions
+ de fichiers préconisées pour ce type de format. Cette information
+ est seulement indicative.
+
+ L'attribut de classe formats est une liste de formats de sortie
+ supportés par le convertisseur. Les formats possibles sont :
+ eval, dict ou exec.
+ Le format eval est un texte source Python qui peut etre evalué. Le
+ résultat de l'évaluation est un objet Python quelconque.
+ Le format dict est un dictionnaire Python.
+ Le format exec est un texte source Python qui peut etre executé.
+
+ La méthode readfile a pour fonction de lire un fichier dont le
+ nom est passé en argument de la fonction.
+ - convertisseur.readfile(nom_fichier)
+
+ La méthode convert a pour fonction de convertir le fichier
+ préalablement lu dans un objet du format passé en argument.
+ - objet=convertisseur.convert(outformat)
+
+ Ce convertisseur supporte le format de sortie exec
+
+"""
+import sys,string,traceback
+
+import parseur_python
+from Noyau import N_CR
+
+def entryPoint():
+ """
+ Retourne les informations nécessaires pour le chargeur de plugins
+ Ces informations sont retournées dans un dictionnaire
+ """
+ return {
+ # Le nom du plugin
+ 'name' : 'openturns_wrapper',
+ # La factory pour créer une instance du plugin
+ 'factory' : PythonParser,
+ }
+
+
+class PythonParser:
+ """
+ Ce convertisseur lit un fichier au format python avec la
+ methode readfile : convertisseur.readfile(nom_fichier)
+ et retourne le texte au format outformat avec la
+ methode convertisseur.convert(outformat)
+
+ Ses caractéristiques principales sont exposées dans 2 attributs
+ de classe :
+ - extensions : qui donne une liste d'extensions de fichier préconisées
+ - formats : qui donne une liste de formats de sortie supportés
+ """
+ # Les extensions de fichier préconisées
+ extensions=('.py',)
+ # Les formats de sortie supportés (eval dict ou exec)
+ # Le format exec est du python executable (commande exec) converti avec PARSEUR_PYTHON
+ # Le format execnoparseur est du python executable (commande exec) non converti
+ formats=('exec','execnoparseur')
+
+ def __init__(self,cr=None):
+ # Si l'objet compte-rendu n'est pas fourni, on utilise le
+ # compte-rendu standard
+ self.text=''
+ if cr :
+ self.cr=cr
+ else:
+ self.cr=N_CR.CR(debut='CR convertisseur format python',
+ fin='fin CR format python')
+
+ def readfile(self,filename):
+ self.filename=filename
+ try:
+ self.text=open(filename).read()
+ except:
+ self.cr.fatal("Impossible ouvrir fichier %s" % filename)
+ return
+
+ def convert(self,outformat,appli=None):
+ if outformat == 'exec':
+ try:
+ #txt=parseur_python.PARSEUR_PYTHON(self.text).get_texte(appli)
+ #print txt
+ #return txt
+ return parseur_python.PARSEUR_PYTHON(self.text).get_texte(appli)
+ except:
+ # Erreur lors de la conversion
+ l=traceback.format_exception(sys.exc_info()[0],sys.exc_info()[1],
+ sys.exc_info()[2])
+ self.cr.exception("Impossible de convertir le fichier python \
+ qui doit contenir des erreurs.\n \
+ On retourne le fichier non converti \n \
+ Prévenir la maintenance. \n" + string.join(l))
+ # On retourne néanmoins le source initial non converti (au cas où)
+ return self.text
+ elif outformat == 'execnoparseur':
+ return self.text
+ else:
+ raise "Format de sortie : %s, non supporté"
+ return None
+
ListeVariables : chaque variable est decrite par un dictionnaire ; cette liste les regroupe
DictLois : dictionnaires des lois
'''
- def __init__ (self, DictMCVal, ListeVariables, DictLois ) :
+ def __init__ (self, appli, DictMCVal = {}, ListeVariables = [], DictLois = {}, DictVariables = {} ) :
#---------------------------------------------------------#
self.ListeVariables = ListeVariables
self.ListeVariablesIn = []
self.DictLois = DictLois
+ self.DictVariables = DictVariables
self.DictMCVal = DictMCVal
self.DictTypeVar = {}
self.nbVarIn = 0
self.creeInfoVar()
+ self.appli = appli
#
# On charge eventuellement le Solver par defaut
# et les valeurs par defaut du Solver (dans l init)
monSTDGenerateur=gener( self.DictMCVal, self.ListeVariablesIn, self.DictLois )
except :
from OpenturnsSTD import STDGenerateur
- monSTDGenerateur = STDGenerateur( self.DictMCVal, self.ListeVariablesIn, self.DictLois )
+ monSTDGenerateur = STDGenerateur( self.appli, self.DictMCVal, self.ListeVariablesIn, self.DictLois )
return monSTDGenerateur
def getXMLGenerateur(self) :
monXMLGenerateur=gener( self.DictMCVal, self.ListeVariables, self.DictLois )
except :
from OpenturnsXML import XMLGenerateur
- monXMLGenerateur = XMLGenerateur( self.DictMCVal, self.ListeVariables, self.DictLois )
+ monXMLGenerateur = XMLGenerateur( self.appli, self.DictMCVal, self.DictVariables )
return monXMLGenerateur
def creeInfoVar (self) :
import os
+defaultSTD = """#! /usr/bin/env python
+class StudyFileGenerationError:
+ def __init__ (self, st):
+ self.st = st
+ def __str__(self):
+ return "'%s'" % self.st
+
+raise StudyFileGenerationError, "The study file was not generated"
+"""
+
+headerSTD = """#! /usr/bin/env python
+
+# Chargement du module systeme
+import sys
+sys.path.append( '%s' )
+
+# Chargement du module math
+import math
+
+# Chargement du module Open TURNS
+from openturns import *
+from openturns_viewer import ViewImage,StopViewer,WaitForViewer
+
+"""
+
+footerSTD = """
+
+# Terminaison du fichier
+#sys.exit( 0 )
+"""
#=============================================
# La classe de creation du fichier STD
class STDGenerateur :
'''
- Generation du fichier pyhton
+ Generation du fichier python
'''
- def __init__ (self, DictMCVal, ListeVariables, DictLois ) :
- #---------------------------------------------------------#
-
- self.NomAlgo = "myAlgo"
+ def __init__ (self, appli, DictMCVal, ListeVariables, DictLois ) :
self.DictMCVal = DictMCVal
self.ListeVariables = ListeVariables
self.DictLois = DictLois
-
- self.ListeOrdreMCReliability = (
- "MaximumIterationsNumber",
- "MaximumAbsoluteError",
- "RelativeAbsoluteError",
- "MaximumConstraintError",
- "MaximumResidualError",
- )
- self.ListeOrdreMCDirectionalSampling = (
- "RootStrategy",
- "SamplingStrategy",
- )
- self.ListeOrdreMCParametresAlgo = (
- "BlockSize",
- "MaximumCoefficientOfVariation",
- )
- self.ListeOrdreImportanceSampling = (
- "ImportanceSampling_BlockSize",
- "ImportanceSampling_MaximumCoefficientOfVariation",
- "ImportanceSampling_MaximumOuterSampling",
- )
-
- # Ce dictionnaire contient la liste de tous les parametres possibles pour chaque loi
- # Les parametres qui n'apparaissent pas ne pourront pas etre substitues dans le fichier
- # produit (etude python), et donc n'apparaitront pas.
- self.listeParamLoi = {
- "Beta" : ["Mu", "Sigma", "T", "R", "A", "B" ],
- "Exponential" : ["Lambda", "Gamma" ],
- "Gamma" : ["K", "Mu", "Sigma", "Lambda", "Gamma" ],
- #"Geometric" : ["P", ],
- "Gumbel" : ["Alpha","Beta","Mu","Sigma" ],
- #"Histogram" : ["Sup", "Values" ],
- "LogNormal" : ["MuLog", "SigmaLog", "Mu", "Sigma", "SigmaOverMu", "Gamma", ],
- "Logistic" : [ "Alpha", "Beta" ],
- #"MultiNomial" : [ "N", "Values" ],
- "Normal" : ["Mu", "Sigma" ],
- "Poisson" : [ "Lambda", ],
- "Student" : [ "Mu", "Nu" ],
- "Triangular" : [ "A", "M", "B" ],
- "TruncatedNormal" : [ "MuN", "SigmaN", "A", "B" ],
- "Uniform" : [ "A", "B" ],
- #"UserDefined" : [ "Values", ],
- "Weibull" : [ "Alpha", "Beta", "Mu", "Sigma", "Gamma" ],
+ print "DictMCVal=", DictMCVal
+ print "ListeVariables=", ListeVariables
+ print "DictLois=", DictLois
+ self.texteSTD = defaultSTD
+ self.OpenTURNS_path = appli.CONFIGURATION.OpenTURNS_path
+
+ # Ce dictionnaire fait la correspondance entre le mot lu dans le dictionnaire des mots-clefs et la methode a appeler
+ self.traitement = {
+ "Min/Max" :
+ ( "MinMax",
+ { "Experiment Plane" : "ExperimentPlane",
+ "Random Sampling" : "MinMaxRandomSampling",
+ },
+ ),
+ "Central Uncertainty" :
+ ( "CentralUncertainty",
+ { "Taylor Variance Decomposition" : "TaylorVarianceDecomposition",
+ "Random Sampling" : "CentralUncertaintyRandomSampling",
+ },
+ ),
+ "Threshold Exceedence" :
+ ( "ThresholdExceedence",
+ { "Simulation" : "Simulation",
+ "Analytical" : "Analytical",
+ "MonteCarlo" : "MonteCarlo",
+ "LHS" : "LHS",
+ "ImportanceSampling" : "ImportanceSampling",
+ "FirstOrder" : "FORM",
+ "SecondOrder" : "SORM",
+ "Cobyla" : "Cobyla",
+ "AbdoRackwitz" : "AbdoRackwitz",
+ },
+ ),
}
- # Ce dictionnaire contient, pour chaque loi qui possede plusieurs parametrages possibles,
- # la correspondance entre le parametrage et son "numero" pour Open TURNS.
- self.listeParamLoiSettings = {
- "Beta" : { "RT" : "0", "MuSigma" : "1" }, \
- "Gamma" : { "KLambda" : "0", "MuSigma" : "1" }, \
- "Gumbel" : { "AlphaBeta" : "0", "MuSigma" : "1" }, \
- "LogNormal" : { "MuSigmaLog" : "0", "MuSigma" : "1", "MuSigmaOverMu" : "2" }, \
- "Weibull" : { "AlphaBeta" : "0", "MuSigma" : "1" }, \
+ # Ce dictionnaire liste le nom des variables utilisees dans le script
+ # La clef est le nom attendu par les methodes, la valeur est le nom produit dans le fichier de sortie
+ # Le fait de passer par un dictionnaire permet de controler que les variables existent et sont correctement nommees
+ # meme si clef == valeur
+ self.variable = {
+ "n" : "n",
+ "p" : "p",
+ "model" : "model",
+ "scaledVector" : "scaledVector",
+ "translationVector" : "translationVector",
+ "levels" : "levels",
+ "myCenteredReductedGrid" : "myCenteredReductedGrid",
+ "myExperimentPlane" : "myExperimentPlane",
+ "inputSample" : "inputSample",
+ "outputSample" : "outputSample",
+ "minValue" : "minValue",
+ "maxValue" : "maxValue",
+ "flags" : "flags",
+ "inSize" : "inSize",
+ "distribution" : "distribution",
+ "marginal" : "marginal",
+ "collection" : "collection",
+ "copula" : "copula",
+ "inputRandomVector" : "inputRandomVector",
+ "outputRandomVector" : "outputRandomVector",
+ "myQuadraticCumul" : "myQuadraticCumul",
+ "meanFirstOrder" : "meanFirstOrder",
+ "meanSecondOrder" : "meanSecondOrder",
+ "standardDeviationFirstOrder" : "standardDeviationFirstOrder",
+ "importanceFactors" : "importanceFactors",
+ "importanceFactorsGraph" : "importanceFactorsGraph",
+ "importanceFactorsDrawing" : "importanceFactorsDrawing",
+ "empiricalMean" : "empiricalMean",
+ "empiricalStandardDeviation" : "empiricalStandardDeviation",
+ "empiricalQuantile" : "empiricalQuantile",
+ "alpha" : "alpha",
+ "beta" : "beta",
+ "PCCcoefficient" : "PCCcoefficient",
+ "PRCCcoefficient" : "PRCCcoefficient",
+ "SRCcoefficient" : "SRCcoefficient",
+ "SRRCcoefficient" : "SRRCcoefficient",
+ "kernel" : "kernel",
+ "kernelSmoothedDist" : "kernelSmoothedDist",
+ "kernelSmoothedPDF" : "kernelSmoothedPDF",
+ "myEvent" : "myEvent",
+ "myAlgo" : "myAlgo",
+ "myResult" : "myResult",
+ "probability" : "probability",
+ "standardDeviation" : "standardDeviation",
+ "level" : "level",
+ "length" : "length",
+ "coefficientOfVariation" : "coefficientOfVariation",
+ "convergenceGraph" : "convergenceGraph",
+ "iterations" : "iterations",
+ "myOptimizer" : "myOptimizer",
+ "specificParameters" : "specificParameters",
+ "startingPoint" : "startingPoint",
+ "hasoferReliabilityIndex" : "hasoferReliabilityIndex",
+ "standardSpaceDesignPoint" : "standardSpaceDesignPoint",
+ "physicalSpaceDesignPoint" : "physicalSpaceDesignPoint",
+ "eventProbabilitySensitivity" : "eventProbabilitySensitivity",
+ "hasoferReliabilityIndexSensitivity" : "hasoferReliabilityIndexSensitivity",
+ "eventProbabilitySensitivityGraph" : "eventProbabilitySensitivityGraph",
+ "hasoferReliabilityIndexSensitivityGraph" : "hasoferReliabilityIndexSensitivityGraph",
+ "modelEvaluationCalls" : "modelEvaluationCalls",
+ "modelGradientCalls" : "modelGradientCalls",
+ "modelHessianCalls" : "modelHessianCalls",
+ "tvedtApproximation" : "tvedtApproximation",
+ "hohenBichlerApproximation" : "hohenBichlerApproximation",
+ "breitungApproximation" : "breitungApproximation",
}
-
-
+ # Ce dictionnaire fait la correspondance entre le mot-clef du catalogue et le flag de la bibliotheque
+ self.logFlags = {
+ "DebugMessages" : "Log.DBG",
+ "WrapperMessages" : "Log.WRAPPER",
+ "UserMessages" : "Log.USER",
+ "InfoMessages" : "Log.INFO",
+ "WarningMessages" : "Log.WARN",
+ "ErrorMessages" : "Log.ERROR",
+ }
+
def CreeSTD (self) :
- #------------------
'''
Pilotage de la creation du fichier python
'''
- self.texte = self.CreeEntete()
- self.texte += self.CreeRandomGenerator()
- self.texte += self.CreeFunction()
- self.texte += self.CreeLois()
- self.texte += self.CreeCopula()
- self.texte += self.CreeDistribution()
- self.texte += self.CreeRandomVector()
- self.texte += self.CreeAnalyse()
- self.texte += self.CreeResu()
- self.texte += self.CreeTexteFin()
- return self.texte
-
-# ______________________________________
-#
-# Methodes liees a la creation de la partie Analayse
-# Si le mot clef Analyse existe la methode portant le meme nom va etre appele
-# Exple : si self.DictMCVal["Analysis"]=="Reliability" on appelle la methode Reliability(self)
-#
- def CreeAnalyse (self) :
- #----------------------
- # Appelee par CreeSTD
- texte=""
- if self.DictMCVal.has_key("Analysis"):
- texte += apply( STDGenerateur.__dict__[self.DictMCVal["Analysis"]], (self,) )
- return texte
-
- def Reliability (self) :
- #------------------------
- # Appelee eventuellement par CreeAnalyse
- texte = self.CreeEvent()
- texte += "\n# La methode\n\n"
- if not self.DictMCVal.has_key("Method"):
- print 'Attention Mot Clef "Method" non renseigne'
- return texte
-
- texte += " myMethod = "+ self.DictMCVal["Method"] + "()\n"
- texte += " myMethod.setSpecificParameters( " + self.DictMCVal["Method"] + "SpecificParameters() )\n"
-
- for MC in self.ListeOrdreMCReliability :
- if self.DictMCVal.has_key(MC) and self.DictMCVal[MC] != None :
- texte += " myMethod.set"+ MC +"( " + str(self.DictMCVal[MC]) + " )\n\n "
-
- texte += "\n# L'algorithme\n\n"
- if not self.DictMCVal.has_key("Algorithm"):
- print 'Attention Mot Clef "Algorithm" non renseigne'
- return texte
- texte += " " + self.NomAlgo + " = " + str (self.DictMCVal["Algorithm"])
- texte += "( NearestPointAlgorithm(myMethod), myEvent, myPhysicalStartingPoint )\n"
- texte += " " + self.NomAlgo + ".run()\n "
+ TypeAnalyse = None
+ if ( self.DictMCVal.has_key( 'Type' ) ):
+ TypeAnalyse = self.DictMCVal[ 'Type' ]
+
+ Traitement = None
+ subDict = {}
+ if ( self.traitement.has_key( TypeAnalyse ) ):
+ (Traitement, subDict) = self.traitement[ TypeAnalyse ]
+
+ if ( Traitement is not None ):
+ self.texteSTD = apply( STDGenerateur.__dict__[ Traitement ], (self, subDict) )
+
+ return self.texteSTD
+
+ def Header (self) :
+ '''
+ Imprime l entete commun a tous les fichiers
+ '''
+ txt = headerSTD % self.OpenTURNS_path
+ txt += "# Definit le niveau d'affichage de la log\n"
+ txt += "%s = Log.NONE\n" % self.variable["flags"]
+ for flag in self.logFlags.keys():
+ if ( self.DictMCVal.has_key( flag ) ):
+ val = self.DictMCVal[ flag ]
+ op = "-"
+ if val == 'yes' :
+ op = "+"
+ txt += "%s = %s %s %s\n" % (self.variable["flags"], self.variable["flags"], op, self.logFlags[ flag ])
+ txt += "Log.Show( %s )\n" % self.variable["flags"]
+ txt += "\n"
+ return txt
+
+ def Footer (self) :
+ '''
+ Imprime le pied de page commun a tous les fichiers
+ '''
+ return footerSTD
+
+ def MinMax (self, subDict):
+ '''
+ Produit le fichier study correspondant a une analyse Min/Max
+ '''
+ txt = self.Header()
+ txt += "# Etude 'Min/Max'\n"
+
+ txt += self.Model()
+
+ Methode = None
+ if ( self.DictMCVal.has_key( 'Method' ) ):
+ Methode = self.DictMCVal[ 'Method' ]
+
+ Traitement = None
+ if ( subDict.has_key( Methode ) ):
+ Traitement = subDict[ Methode ]
+
+ if ( Traitement is not None ):
+ txt += apply( STDGenerateur.__dict__[ Traitement ], (self,) )
+
+ txt += self.MinMaxComputation()
+ txt += self.MinMaxResult()
+
+ txt += self.Footer()
+ return txt
+
+ def Model (self):
+ '''
+ Importe le modele physique
+ '''
+ fonction = None
+ if ( self.DictMCVal.has_key( 'FileName' ) ):
+ name = self.DictMCVal[ 'FileName' ]
+ fonction = name[name.rfind('/')+1:name.rfind('.xml')]
+
+ txt = "# Charge le modele physique\n"
+ txt += "%s = NumericalMathFunction( '%s' )\n" % (self.variable["model"], fonction)
+ txt += "%s = %s.getInputNumericalPointDimension()\n" % (self.variable["n"], self.variable["model"])
+ txt += "\n"
+ return txt
+
+ def ExperimentPlane (self):
+ '''
+ Etude par plan d experience
+ '''
+ txt = "# Etude par plan d'experience\n"
+ txt += self.Levels()
+ txt += self.CenteredReductedGrid()
+ txt += self.ScaledVector()
+ txt += self.TranslationVector()
+ txt += "%s = %s\n" % (self.variable["inputSample"], self.variable["myExperimentPlane"])
+ txt += "\n"
+ return txt
+
+ def MinMaxRandomSampling (self):
+ '''
+ Etude par echantillonage aleatoire
+ '''
+ size = 0
+ if ( self.DictMCVal.has_key( 'PointsNumber' ) ):
+ size = self.DictMCVal[ 'PointsNumber' ]
+
+ txt = "# Etude par echantillonage aleatoire\n"
+ txt += self.InputDistribution()
+ txt += self.InputRandomVector()
+ txt += "%s = %d\n" % (self.variable["inSize"], size)
+ txt += "%s = %s.getNumericalSample( %s )\n" % (self.variable["inputSample"], self.variable["inputRandomVector"], self.variable["inSize"])
+ txt += "\n"
+ return txt
+
+ def InputDistribution (self):
+ '''
+ Cree la loi jointe des variables d entree
+ '''
+ txt = "# Definit la loi jointe des variables d'entree\n"
+ txt += "%s = DistributionCollection( %d )\n" % (self.variable["collection"], len( self.ListeVariables ))
+ txt += "\n"
+
+ dictVariables = {}
+ for variable in self.ListeVariables:
+ nomVar = variable['ModelVariable'].get_name()
+ dictVariables[ nomVar ] = variable['Distribution']
+
+ i = 0
+ sortedVarNames = dictVariables.keys()
+ sortedVarNames.sort()
+ for variable in sortedVarNames:
+ conceptloi = dictVariables[ variable ]
+ loi = self.DictLois[ conceptloi ]
+ if loi.has_key( 'Kind' ):
+ marginale = "%s_%d" % (self.variable["marginal"], i)
+ txt += "# Definit la loi marginale de la composante %d\n" % i
+ txt += "%s = %s\n" % (marginale, apply( STDGenerateur.__dict__[ loi[ 'Kind' ] ], (self, loi, i, self.variable["collection"]) ))
+ txt += "%s[ %d ] = Distribution( %s )\n" % (self.variable["collection"], i, marginale)
+ txt += "\n"
+ i += 1
+
+ txt += self.Copula( len( self.ListeVariables ) )
+
+ txt += "# Definit la loi jointe\n"
+ txt += "%s = ComposedDistribution( %s, Copula( %s ) )\n" % (self.variable["distribution"], self.variable["collection"], self.variable["copula"])
+ txt += "\n"
+ return txt
+
+ def Copula (self, dimension):
+ '''
+ Cree la copule de la loi jointe
+ '''
+ txt = "# Definit la copule de la loi jointe\n"
+ txt += "%s = IndependentCopula( %d )\n" % (self.variable["copula"], dimension)
+ txt += "\n"
+ return txt
+
+ def InputRandomVector (self):
+ '''
+ Cree le vector aleatoire d entree
+ '''
+ txt = "# Definit le vecteur aleatoire d'entree\n"
+ txt += "%s = RandomVector( %s )\n" % (self.variable["inputRandomVector"], self.variable["distribution"])
+ txt += "\n"
+ return txt
+
+ def OutputRandomVector (self):
+ '''
+ Cree le vector aleatoire de sortie
+ '''
+ txt = "# Definit le vecteur aleatoire de sortie\n"
+ txt += "%s = RandomVector( %s, %s )\n" % (self.variable["outputRandomVector"], self.variable["model"], self.variable["inputRandomVector"])
+ txt += "\n"
+ return txt
+
+ def ScaledVector (self):
+ '''
+ Definit les coefficients multiplicateurs par composante du vecteur
+ '''
+ dimension = 0
+ if ( self.DictMCVal.has_key( 'UnitsPerDimension' ) ):
+ unitsPerDimension = self.DictMCVal[ 'UnitsPerDimension' ]
+ dimension = len( unitsPerDimension )
+
+ txt = "# Definit les facteurs d'echelle dans chaque direction\n"
+ txt += "%s = NumericalPoint( %s )\n" % (self.variable["scaledVector"], self.variable["n"])
+ for i in range(dimension):
+ txt += "%s[%d] = %g\n" % (self.variable["scaledVector"], i, unitsPerDimension[i])
+ txt += "%s.scale( %s )\n" % (self.variable["myExperimentPlane"], self.variable["scaledVector"])
+ txt += "\n"
+ return txt
+
+ def TranslationVector (self):
+ '''
+ Definit le vecteur de translation
+ '''
+ dimension = 0
+ if ( self.DictMCVal.has_key( 'Center' ) ):
+ center = self.DictMCVal[ 'Center' ]
+ dimension = len( center )
+
+ txt = "# Definit le vecteur de translation\n"
+ txt += "%s = NumericalPoint( %s )\n" % (self.variable["translationVector"], self.variable["n"])
+ for i in range(dimension):
+ txt += "%s[%d] = %g\n" % (self.variable["translationVector"], i, center[i])
+ txt += "%s.translate( %s )\n" % (self.variable["myExperimentPlane"], self.variable["translationVector"])
+ txt += "\n"
+ return txt
+
+ def Levels (self):
+ '''
+ Definit les niveaux du plan d experience
+ '''
+ dimension = 0
+ if ( self.DictMCVal.has_key( 'Levels' ) ):
+ levels = self.DictMCVal[ 'Levels' ]
+ dimension = len( levels )
+
+ txt = "# Definit les niveaux de la structure de grille\n"
+ txt += "%s = NumericalPoint( %d )\n" % (self.variable["levels"], dimension)
+ for i in range(dimension):
+ txt += "%s[%d] = %g\n" % (self.variable["levels"], i, levels[i])
+ txt += "\n"
+ return txt
+
+ def CenteredReductedGrid (self):
+ '''
+ Definit la grille reduite du plan d experience
+ '''
+ plane = None
+ if ( self.DictMCVal.has_key( 'ExperimentPlane' ) ):
+ plane = self.DictMCVal[ 'ExperimentPlane' ]
+
+ txt = "# Cree le plan d'experience centre reduit\n"
+ txt += "%s = %s(%s, %s)\n" % (self.variable["myCenteredReductedGrid"], plane, self.variable["n"], self.variable["levels"])
+ txt += "%s = %s.generate()\n" % (self.variable["myExperimentPlane"], self.variable["myCenteredReductedGrid"])
+ txt += "\n"
+ return txt
+
+ def MinMaxComputation (self):
+ '''
+ Realise le calcul deterministe
+ '''
+ txt = "# Calcul\n"
+ txt += "%s = %s( %s )\n" % (self.variable["outputSample"], self.variable["model"], self.variable["inputSample"])
+ txt += "\n"
+ return txt
+
+ def MinMaxResult (self):
+ '''
+ Produit les resultats de l etude
+ '''
+ txt = "# Resultats\n"
+ txt += "%s = %s.getMin()\n" % (self.variable["minValue"], self.variable["outputSample"])
+ txt += "print '%s = ', %s\n" % (self.variable["minValue"], self.variable["minValue"])
+ txt += "\n"
+ txt += "%s = %s.getMax()\n" % (self.variable["maxValue"], self.variable["outputSample"])
+ txt += "print '%s = ', %s\n" % (self.variable["maxValue"], self.variable["maxValue"])
+ txt += "\n"
+ return txt
+
+ def CentralUncertainty (self, subDict):
+ '''
+ Produit le fichier study correspondant a une analyse d incertitude en valeur centrale
+ '''
+ txt = self.Header()
+ txt += "# Etude 'Central Uncertainty'\n"
+
+ txt += self.Model()
+ txt += self.InputDistribution()
+ txt += self.InputRandomVector()
+ txt += self.OutputRandomVector()
- if self.DictMCVal.has_key("ImportanceSampling") and self.DictMCVal["ImportanceSampling"]=="yes" :
- texte += self.ImportanceSampling()
- return texte
-
- def Simulation (self) :
- #------------------------
- # Appelee eventuellement par CreeAnalyse
- texte = self.CreeEvent()
- texte += "\n# L'algorithme\n\n"
- if not self.DictMCVal.has_key("Algorithm"):
- print 'Attention Mot Clef "Algorithm" non renseigne'
- return texte
- texte += " " + self.NomAlgo + " = " + str (self.DictMCVal["Algorithm"])
- texte += "( myEvent )\n"
- if self.DictMCVal["Algorithm"] == "DirectionalSampling" :
- texte += self.DirectionalSampling()
- texte += self.ParametresAlgo()
- texte += " " + self.NomAlgo + ".run() "
- return texte
-
-
- def DirectionalSampling (self) :
- #-------------------------------
- # Appelee eventuellement par Simulation
- texte = ""
- for MC in self.ListeOrdreMCDirectionalSampling :
- if self.DictMCVal.has_key(MC) and self.DictMCVal[MC] != None :
- texte += apply(STDGenerateur.__dict__[self.DictMCVal[MC]], (self,))
- return texte
-
- def RootStrategy(self):
- #----------------------
- # Appelee eventuellement par DirectionalSampling
- texte = " myRoot = " + self.DictMCVal["RootStrategy"] + "()\n"
- if self.DictMCVal.has_key("Solver") and (self.DictMCVal["Solver"] != None) :
- texte += " mySolver = " + self.DictMCVal["Solver"] + "() \n"
- texte += " myRoot.setSolver( Solver( mySolver ) ) \n"
- texte += " " + self.NomAlgo + ".setRootStrategy( RootStrategy( myRoot )) \n"
- return texte
-
- def SamplingStrategy(self):
- #--------------------------
- # Appelee eventuellement par DirectionalSampling
- texte += " mySampling = " + self.DictMCVal["SamplingStrategy"] + "()\n"
- texte += " mySampling.setSamplingStrategy( SamplingStrategy( mySampling ) )\n"
- return texte
-
-
- def QuadraticCumul (self) :
- #--------------------------
- # Appelee eventuellement par CreeAnalyse
- texte = "\n# Cumul quadratique\n\n"
- texte += " myQuadraticCumul = QuadraticCumul( myRandomVector_out)\n\n"
- texte += " firstOrderMean = myQuadraticCumul.getMeanFirstOrder()\n"
- texte += " secondOrderMean = myQuadraticCumul.getMeanSecondOrder()\n"
- texte += " covariance = myQuadraticCumul.getCovariance()\n"
- texte += " importanceFactors = myQuadraticCumul.getImportanceFactors()\n"
- return texte
-
- def CreeEvent (self) :
- #------------------
- # Appelee eventuellement par Simulation et Reliability
- texte = "\n# L'evenement\n\n"
- if not self.DictMCVal.has_key("Threshold") or not self.DictMCVal.has_key("ComparisonOperator"):
- print 'Attention Mot Clef "Threshold" ou "ComparisonOperator" non renseigne'
- return texte
- texte += " seuil = " +str (self.DictMCVal["Threshold"]) + "\n"
- texte += " myEvent = Event(myRandomVector_out,"
- texte += "ComparisonOperator(" + str (self.DictMCVal["ComparisonOperator"]) + "()), seuil) \n"
- return texte
-
- def ParametresAlgo( self ):
- #---------------------------
- # Appelee par Simulation
-
- texte += " nbMaxOutSampling = "
-
- if self.DictMCVal["MaximumOuterSamplingType"] == "UserDefined" :
- texte += str(self.DictMCVal["MaximumOuterSampling"])
-
- elif self.DictMCVal["MaximumOuterSamplingType"] == "Wilks" :
- texte += "Wilks.ComputeSampleSize( " + str(self.DictMCVal["Wilks_Alpha"]) + ", " \
- + str(self.DictMCVal["Wilks_Beta"]) + ", " + str(self.DictMCVal["Wilks_I"]) + " )"
- texte += '\n print "MaximumOuterSampling = ", nbMaxOutSampling, "\n" \n'
-
- texte += " " + NomAlgo + ".setMaximumOuterSampling(nbMaxOutSampling)"
- for MC in self.ListeOrdreMCParametresAlgo :
- if self.DictMCVal.has_key(MC) and self.DictMCVal[MC] != None :
- texte += " myMethod.set"+ MC +"(" + str(self.DictMCVal[MC]) + ")\n\n "
-
-# _____________________________________
-
- def CreeRandomGenerator (self) :
- #-------------------------------
- # Appelee par CreeSTD
- texte = ""
- if self.DictMCVal.has_key("RandomGeneratorSeed") :
- texte += "# We set the RandomGenerator seed in order to replay the study\n"
- texte += " RandomGenerator().SetSeed(%d)\n" % self.DictMCVal["RandomGeneratorSeed"]
- return texte
-
- def CreeFunction (self) :
- #-------------------------
- # Appelee par CreeSTD
- '''
- La fonction :
- Remarque : le nom 'solver' est en dur ici. Il doit imperativement correspondre
- au nom du fichier xml : 'solver.xml'
- '''
- texte = "\n# La fonction\n\n"
- texte += ' myFunction = NumericalMathFunction(\"XXXXXX\")\n'
- texte += ' dim = myFunction.getInputNumericalPointDimension()\n'
- return texte
-
-
- def CreeCopula (self) :
- #------------------
- # Appelee par CreeSTD
- texte = "\n# La copule\n\n"
- texte += " myCopula = IndependentCopula(dim)\n"
- return texte
-
-
- def CreeDistribution (self) :
- #----------------------------
- # Appelee par CreeSTD
- texte = "\n# La distribution\n\n"
- texte += " myDistribution = ComposedDistribution(myCollection, Copula(myCopula))\n"
- return texte
+ Methode = None
+ if ( self.DictMCVal.has_key( 'Method' ) ):
+ Methode = self.DictMCVal[ 'Method' ]
+
+ Traitement = None
+ if ( subDict.has_key( Methode ) ):
+ Traitement = subDict[ Methode ]
+
+ if ( Traitement is not None ):
+ txt += apply( STDGenerateur.__dict__[ Traitement ], (self,) )
+
+ txt += self.Footer()
+ return txt
+
+
+ def TaylorVarianceDecomposition (self):
+ '''
+ Etude par decomposition de Taylor
+ '''
+ txt = "# Cumul quadratique (decomposition de Taylor)\n"
+ txt += "%s = QuadraticCumul( %s )\n" % (self.variable["myQuadraticCumul"], self.variable["outputRandomVector"])
+ txt += "\n"
+ txt += "# Resultats\n"
+
+ if ( self.DictMCVal.has_key( 'MeanFirstOrder' ) ):
+ if ( self.DictMCVal[ 'MeanFirstOrder' ] == "yes" ):
+ txt += "%s = %s.getMeanFirstOrder()\n" % (self.variable["meanFirstOrder"], self.variable["myQuadraticCumul"])
+ txt += "print '%s = ', %s\n" % (self.variable["meanFirstOrder"], self.variable["meanFirstOrder"])
+ txt += "\n"
+
+ if ( self.DictMCVal.has_key( 'MeanSecondOrder' ) ):
+ if ( self.DictMCVal[ 'MeanSecondOrder' ] == "yes" ):
+ txt += "%s = %s.getMeanSecondOrder()\n" % (self.variable["meanSecondOrder"], self.variable["myQuadraticCumul"])
+ txt += "print '%s = ', %s\n" % (self.variable["meanSecondOrder"], self.variable["meanSecondOrder"])
+ txt += "\n"
+
+ if ( self.DictMCVal.has_key( 'StandardDeviationFirstOrder' ) ):
+ if ( self.DictMCVal[ 'StandardDeviationFirstOrder' ] == "yes" ):
+ txt += "%s = %s.getCovariance()\n" % (self.variable["standardDeviationFirstOrder"], self.variable["myQuadraticCumul"])
+ txt += "dim = %s.getDimension()\n" % self.variable["standardDeviationFirstOrder"]
+ txt += "for i in range( dim ):\n"
+ txt += " %s[ i, i ] = math.sqrt( %s[ i, i ] )\n" % (self.variable["standardDeviationFirstOrder"], self.variable["standardDeviationFirstOrder"])
+ txt += "print '%s = ', %s\n" % (self.variable["standardDeviationFirstOrder"], self.variable["standardDeviationFirstOrder"])
+ txt += "\n"
+
+ if ( self.DictMCVal.has_key( 'NumericalResults' ) ):
+ if ( self.DictMCVal[ 'NumericalResults' ] == "yes" ):
+ txt += "if ( %s.getDimension() == 1):\n" % self.variable["outputRandomVector"]
+ txt += " %s = %s.getImportanceFactors()\n" % (self.variable["importanceFactors"], self.variable["myQuadraticCumul"])
+ txt += " print '%s = ', %s\n" % (self.variable["importanceFactors"], self.variable["importanceFactors"])
+ txt += "\n"
+
+ if ( self.DictMCVal.has_key( 'GraphicalResults' ) ):
+ if ( self.DictMCVal[ 'GraphicalResults' ] == "yes" ):
+ txt += "%s = %s.drawImportanceFactors()\n" % (self.variable["importanceFactorsGraph"], self.variable["myQuadraticCumul"])
+ txt += "Show( %s )\n" % self.variable["importanceFactorsGraph"]
+ txt += "%s.draw( '%s' )\n" % (self.variable["importanceFactorsGraph"], self.variable["importanceFactorsDrawing"])
+ txt += "ViewImage( %s.getBitmap() )\n" % self.variable["importanceFactorsGraph"]
+ txt += "print 'bitmap =', %s.getBitmap()\n" % self.variable["importanceFactorsGraph"]
+ txt += "print 'postscript =', %s.getPostscript()\n" % self.variable["importanceFactorsGraph"]
+ txt += "\n"
+
+ txt += "\n"
+ return txt
+
+ def CentralUncertaintyRandomSampling (self):
+ '''
+ Etude par echantillonage aleatoire
+ '''
+ size = 0
+ if ( self.DictMCVal.has_key( 'PointsNumber' ) ):
+ size = self.DictMCVal[ 'PointsNumber' ]
+
+ txt = "# Echantillonnage aleatoire de la variable de sortie\n"
+ txt += "%s = %d\n" % (self.variable["inSize"], size)
+ txt += "%s = %s.getNumericalSample( %s )\n" % (self.variable["outputSample"], self.variable["outputRandomVector"], self.variable["inSize"])
+ txt += "\n"
+
+ if ( self.DictMCVal.has_key( 'EmpiricalMean' ) ):
+ if ( self.DictMCVal[ 'EmpiricalMean' ] == "yes" ):
+ txt += "%s = %s.computeMean()\n" % (self.variable["empiricalMean"], self.variable["outputSample"])
+ txt += "print '%s =', %s\n" % (self.variable["empiricalMean"], self.variable["empiricalMean"])
+ txt += "\n"
+
+ if ( self.DictMCVal.has_key( 'EmpiricalStandardDeviation' ) ):
+ if ( self.DictMCVal[ 'EmpiricalStandardDeviation' ] == "yes" ):
+ txt += "%s = %s.computeCovariance()\n" % (self.variable["empiricalStandardDeviation"], self.variable["outputSample"])
+ txt += "dim = %s.getDimension()\n" % self.variable["empiricalStandardDeviation"]
+ txt += "for i in range( dim ):\n"
+ txt += " %s[ i, i ] = math.sqrt( %s[ i, i ] )\n" % (self.variable["empiricalStandardDeviation"], self.variable["empiricalStandardDeviation"])
+ txt += "print '%s = ', %s\n" % (self.variable["empiricalStandardDeviation"], self.variable["empiricalStandardDeviation"])
+ txt += "\n"
+
+ if ( self.DictMCVal.has_key( 'EmpiricalQuantile_Order' ) ):
+ ordre = self.DictMCVal[ 'EmpiricalQuantile_Order' ]
+ txt += "%s = %s.computeQuantile( %s )\n" % (self.variable["empiricalQuantile"], self.variable["outputSample"], ordre)
+ txt += "print '%s =', %s\n" % (self.variable["empiricalQuantile"], self.variable["empiricalQuantile"])
+ txt += "\n"
+
+ if ( self.DictMCVal.has_key( 'AnalysedCorrelations' ) ):
+ if ( self.DictMCVal[ 'AnalysedCorrelations' ] == "yes" ):
+ txt += "# Ou est le %s ?\n" % self.variable["inputSample"]
+ txt += "#if ( ( %s.getDimension() == 1 ) and ( %s.getDimension() == 1 ) ):\n" % (self.variable["inputSample"], self.variable["outputSample"])
+ txt += "# %s = CorrelationAnalysis.PCC( %s, %s )\n" % (self.variable["PCCcoefficient"], self.variable["inputSample"], self.variable["outputSample"])
+ txt += "# print '%s = ', %s\n" % (self.variable["PCCcoefficient"], self.variable["PCCcoefficient"])
+ txt += "# %s = CorrelationAnalysis.PRCC( %s, %s )\n" % (self.variable["PRCCcoefficient"], self.variable["inputSample"], self.variable["outputSample"])
+ txt += "# print '%s = ', %s\n" % (self.variable["PRCCcoefficient"], self.variable["PRCCcoefficient"])
+ txt += "# %s = CorrelationAnalysis.SRC( %s, %s )\n" % (self.variable["SRCcoefficient"], self.variable["inputSample"], self.variable["outputSample"])
+ txt += "# print '%s = ', %s\n" % (self.variable["SRCcoefficient"], self.variable["SRCcoefficient"])
+ txt += "# %s = CorrelationAnalysis.SRRC( %s, %s )\n" % (self.variable["SRRCcoefficient"], self.variable["inputSample"], self.variable["outputSample"])
+ txt += "# print '%s = ', %s\n" % (self.variable["SRRCcoefficient"], self.variable["SRRCcoefficient"])
+ txt += "\n"
+
+ if ( self.DictMCVal.has_key( 'KernelSmoothing' ) ):
+ if ( self.DictMCVal[ 'KernelSmoothing' ] == "yes" ):
+ txt += "# Kernel Smoohing\n"
+ txt += "%s = KernelSmoothing()\n" % self.variable["kernel"]
+ txt += "if ( %s.getDimension() == 1 ):\n" % self.variable["outputSample"]
+ txt += " %s = %s.buildImplementation( %s, 'TRUE')\n" % (self.variable["kernelSmoothedDist"], self.variable["kernel"], self.variable["outputSample"])
+ txt += " %s = %s.drawPDF()\n" % (self.variable["kernelSmoothedPDF"], self.variable["kernelSmoothedDist"])
+ txt += " Show( %s )\n" % self.variable["kernelSmoothedPDF"]
+ txt += "\n"
+
+ return txt
+
+ def ThresholdExceedence (self, subDict):
+ '''
+ Produit le fichier study correspondant a une analyse de depassement de seuil
+ '''
+ txt = self.Header()
+ txt += "# Etude 'Threshold Exceedence'\n"
+
+ txt += self.RandomGenerator()
+ txt += self.Model()
+ txt += self.InputDistribution()
+ txt += self.InputRandomVector()
+ txt += self.OutputRandomVector()
+ txt += self.Event()
+
+ Methode = None
+ if ( self.DictMCVal.has_key( 'Method' ) ):
+ Methode = self.DictMCVal[ 'Method' ]
+
+ Traitement = None
+ if ( subDict.has_key( Methode ) ):
+ Traitement = subDict[ Methode ]
+
+ if ( Traitement is not None ):
+ txt += apply( STDGenerateur.__dict__[ Traitement ], (self, subDict) )
+ txt += self.Footer()
+ return txt
- def CreeRandomVector (self) :
- #----------------------------
- # Appelee par CreeSTD
- texte = "\n# Le Random Vector\n\n"
- texte += " myRandomVector_in = RandomVector(Distribution(myDistribution))\n"
- texte += " myRandomVector_out = RandomVector(myFunction, myRandomVector_in)\n"
- return texte
+ def Simulation (self, subDict):
+ '''
+ Methodes de simulation
+ '''
+ Algorithme = None
+ if ( self.DictMCVal.has_key( 'Algorithm' ) ):
+ Algorithme = self.DictMCVal[ 'Algorithm' ]
+
+ Traitement = None
+ if ( subDict.has_key( Algorithme ) ):
+ Traitement = subDict[ Algorithme ]
+
+ if ( Traitement is not None ):
+ txt = apply( STDGenerateur.__dict__[ Traitement ], (self,) )
+
+ maxOuterSampling = None
+ if ( self.DictMCVal.has_key( 'MaximumOuterSampling' ) ):
+ maxOuterSampling = self.DictMCVal[ 'MaximumOuterSampling' ]
+ txt += "%s.setMaximumOuterSampling( %s )\n" % (self.variable["myAlgo"], maxOuterSampling)
+
+ blockSize = None
+ if ( self.DictMCVal.has_key( 'BlockSize' ) ):
+ maxOuterSampling = self.DictMCVal[ 'BlockSize' ]
+ txt += "%s.setBlockSize( %s )\n" % (self.variable["myAlgo"], blockSize)
+
+ maxCoefficientOfVariation = None
+ if ( self.DictMCVal.has_key( 'MaximumCoefficientOfVariation' ) ):
+ maxCoefficientOfVariation = self.DictMCVal[ 'MaximumCoefficientOfVariation' ]
+ txt += "%s.setMaximumCoefficientOfVariation( %s )\n" % (self.variable["myAlgo"], maxCoefficientOfVariation)
+
+ txt += "%s.run()\n" % self.variable["myAlgo"]
+ txt += "\n"
+ txt += "# Resultats de la simulation\n"
+ txt += "%s = %s.getResult()\n" % (self.variable["myResult"], self.variable["myAlgo"])
+ txt += "\n"
+
+ if ( self.DictMCVal.has_key( 'Probability' ) ):
+ if ( self.DictMCVal[ 'Probability' ] == "yes" ):
+ txt += "%s = %s.getProbabilityEstimate()\n" % (self.variable["probability"], self.variable["myResult"])
+ txt += "print '%s =', %s\n" % (self.variable["probability"], self.variable["probability"])
+ txt += "\n"
+
+ if ( self.DictMCVal.has_key( 'StandardDeviation' ) ):
+ if ( self.DictMCVal[ 'StandardDeviation' ] == "yes" ):
+ txt += "%s = math.sqrt( %s.getProbabilityEstimate() )\n" % (self.variable["standardDeviation"], self.variable["myResult"])
+ txt += "print '%s =', %s\n" % (self.variable["standardDeviation"], self.variable["standardDeviation"])
+ txt += "\n"
+
+ if ( self.DictMCVal.has_key( 'ConfidenceInterval' ) and self.DictMCVal.has_key( 'Probability' ) ):
+ if ( ( self.DictMCVal[ 'ConfidenceInterval' ] == "yes" ) and ( self.DictMCVal[ 'Probability' ] == "yes" ) ):
+ level = self.DictMCVal[ 'Level' ]
+ txt += "%s = %s.getConfidenceLength( %s )\n" % (self.variable["length"], self.variable["myResult"], level)
+ txt += "print 'confidence interval at %s = [', %s-0.5*%s, ',', %s+0.5*%s, ']'\n" % (level, self.variable["probability"], self.variable["length"], self.variable["probability"], self.variable["length"])
+ txt += "\n"
+
+ if ( self.DictMCVal.has_key( 'VariationCoefficient' ) ):
+ if ( self.DictMCVal[ 'VariationCoefficient' ] == "yes" ):
+ txt += "%s = %s.getCoefficientOfVariation()\n" % (self.variable["coefficientOfVariation"], self.variable["myResult"])
+ txt += "print '%s =', %s\n" % (self.variable["coefficientOfVariation"], self.variable["coefficientOfVariation"])
+ txt += "\n"
+
+ if ( self.DictMCVal.has_key( 'IterationNumber' ) ):
+ if ( self.DictMCVal[ 'IterationNumber' ] == "yes" ):
+ txt += "%s = %s.getOuterSampling()\n" % (self.variable["iterations"], self.variable["myResult"])
+ txt += "print '%s =', %s\n" % (self.variable["iterations"], self.variable["iterations"])
+ txt += "\n"
+
+ if ( self.DictMCVal.has_key( 'ConvergenceGraph' ) ):
+ if ( self.DictMCVal[ 'ConvergenceGraph' ] == "yes" ):
+ txt += "%s = %s.drawProbabilityConvergence()\n" % (self.variable["convergenceGraph"], self.variable["myAlgo"])
+ txt += "Show( %s )\n" % self.variable["convergenceGraph"]
+ txt += "\n"
+
+ return txt
+
+ def Analytical (self, subDict):
+ '''
+ Methodes analytiques
+ '''
+ txt = ""
+
+ OptimizationAlgo = None
+ if ( self.DictMCVal.has_key( 'OptimizationAlgorithm' ) ):
+ OptimizationAlgo = self.DictMCVal[ 'OptimizationAlgorithm' ]
+ Traitement = None
+ if ( subDict.has_key( OptimizationAlgo ) ):
+ Traitement = subDict[ OptimizationAlgo ]
-# _______________________________
+ if ( Traitement is not None ):
+ txt += apply( STDGenerateur.__dict__[ Traitement ], (self,) )
+ txt += self.OptimizerSettings()
+ txt += self.PhysicalStartingPoint()
+ Approximation = None
+ if ( self.DictMCVal.has_key( 'Approximation' ) ):
+ Approximation = self.DictMCVal[ 'Approximation' ]
- def ImportanceSampling (self) :
- #-----------------------------
- # Appele eventuellement par Reliability
+ Traitement = None
+ if ( subDict.has_key( Approximation ) ):
+ Traitement = subDict[ Approximation ]
- texte = " temporaryResult = " + self.NomAlgo + ".getResult()\n\n"
- texte += " mean = temporaryResult.getPhysicalSpaceDesignPoint()\n"
- texte += " sigma = NumericalPoint( mean.getDimension(), 1.0 )\n"
- texte += " R = CorrelationMatrix( mean.getDimension() )\n"
- texte += " myImportance = Normal( mean, sigma, R )\n\n\n"
+ if ( Traitement is not None ):
+ txt += apply( STDGenerateur.__dict__[ Traitement ], (self,) )
- texte += " importanceSamplingAlgo = ImportanceSampling( myEvent, Distribution( myImportance ) )\n\n"
+ txt += self.RunAlgorithm()
+ txt += self.AnalyticalResult()
- for MC in self.ListeOrdreImportanceSampling :
- if self.DictMCVal.has_key("MC") :
- debut=" importanceSamplingAlgo.set"+MC.split("_")[-1]
- texte += debut + "( " + str(self.DictMCVal[MC]) + " )\n"
+ return txt
- texte += "\n importanceSamplingAlgo.run()\n\n"
- self.NomAlgo = "importanceSamplingAlgo"
- return texte
+ def OptimizerSettings (self):
+ '''
+ Parametrage de l optimiseur
+ '''
+ txt = ""
+
+ iterations = None
+ if ( self.DictMCVal.has_key( 'MaximumIterationsNumber' ) ):
+ iterations = self.DictMCVal[ 'MaximumIterationsNumber' ]
+ txt += "%s.setMaximumIterationsNumber( %s )\n" % (self.variable["myOptimizer"], iterations)
+
+ absoluteError = None
+ if ( self.DictMCVal.has_key( 'MaximumAbsoluteError' ) ):
+ absoluteError = self.DictMCVal[ 'MaximumAbsoluteError' ]
+ txt += "%s.setMaximumAbsoluteError( %s )\n" % (self.variable["myOptimizer"], absoluteError)
+
+ relativeError = None
+ if ( self.DictMCVal.has_key( 'MaximumRelativeError' ) ):
+ relativeError = self.DictMCVal[ 'MaximumRelativeError' ]
+ txt += "%s.setMaximumRelativeError( %s )\n" % (self.variable["myOptimizer"], relativeError)
+
+ residualError = None
+ if ( self.DictMCVal.has_key( 'MaximumResidualError' ) ):
+ residualError = self.DictMCVal[ 'MaximumResidualError' ]
+ txt += "%s.setMaximumResidualError( %s )\n" % (self.variable["myOptimizer"], residualError)
+
+ constraintError = None
+ if ( self.DictMCVal.has_key( 'MaximumConstraintError' ) ):
+ constraintError = self.DictMCVal[ 'MaximumConstraintError' ]
+ txt += "%s.setMaximumConstraintError( %s )\n" % (self.variable["myOptimizer"], constraintError)
+
+ txt += "\n"
+
+ return txt
+
+ def PhysicalStartingPoint (self):
+ '''
+ Point physique de depart
+ '''
+ txt = "# Point physique de depart\n"
+
+ if ( self.DictMCVal.has_key( 'PhysicalStartingPoint' ) ):
+ point = self.DictMCVal[ 'PhysicalStartingPoint' ]
+ dimension = len( point )
+ txt += "%s = NumericalPoint( %d )\n" % (self.variable["startingPoint"], dimension)
+ for i in range( dimension ):
+ txt += "%s[ %d ] = %g\n" % (self.variable["startingPoint"], i, point[i])
+ else:
+ txt += "%s = %s.getMean()\n" % (self.variable["startingPoint"], self.variable["inputRandomVector"])
+
+ txt += "\n"
+ return txt
- def CreeResu (self) :
- #------------------
+ def AnalyticalResult (self):
+ '''
+ Resultat des methodes analytiques
+ '''
+ txt = "# Resultat des methodes analytiques\n"
+ txt += "%s = %s.getResult()\n" % (self.variable["myResult"], self.variable["myAlgo"])
+
+ if ( self.DictMCVal.has_key( 'Probability' ) ):
+ if ( self.DictMCVal[ 'Probability' ] == "yes" ):
+ txt += "%s = %s.getEventProbability()\n" % (self.variable["probability"], self.variable["myResult"])
+ txt += "print '%s =', %s\n" % (self.variable["probability"], self.variable["probability"])
+ txt += "\n"
+
+ if ( self.DictMCVal.has_key( 'HasoferReliabilityIndex' ) ):
+ if ( self.DictMCVal[ 'HasoferReliabilityIndex' ] == "yes" ):
+ txt += "%s = %s.getHasoferReliabilityIndex()\n" % (self.variable["hasoferReliabilityIndex"], self.variable["myResult"])
+ txt += "print '%s =', %s\n" % (self.variable["hasoferReliabilityIndex"], self.variable["hasoferReliabilityIndex"])
+ txt += "\n"
+
+ if ( self.DictMCVal.has_key( 'DesignPoint' ) ):
+ if ( self.DictMCVal[ 'DesignPoint' ] == "yes" ):
+ txt += "%s = %s.getStandardSpaceDesignPoint()\n" % (self.variable["standardSpaceDesignPoint"], self.variable["myResult"])
+ txt += "print '%s =', %s\n" % (self.variable["standardSpaceDesignPoint"], self.variable["standardSpaceDesignPoint"])
+ txt += "%s = %s.getPhysicalSpaceDesignPoint()\n" % (self.variable["physicalSpaceDesignPoint"], self.variable["myResult"])
+ txt += "print '%s =', %s\n" % (self.variable["physicalSpaceDesignPoint"], self.variable["physicalSpaceDesignPoint"])
+ txt += "\n"
+
+ if ( self.DictMCVal.has_key( 'ImportanceFactorNumericalResults' ) ):
+ if ( self.DictMCVal[ 'ImportanceFactorNumericalResults' ] == "yes" ):
+ txt += "%s = %s.getImportanceFactors()\n" % (self.variable["importanceFactors"], self.variable["myResult"])
+ txt += "print '%s =', %s\n" % (self.variable["importanceFactors"], self.variable["importanceFactors"])
+ txt += "\n"
+
+ if ( self.DictMCVal.has_key( 'ImportanceFactorGraphicalResults' ) ):
+ if ( self.DictMCVal[ 'ImportanceFactorGraphicalResults' ] == "yes" ):
+ txt += "%s = %s.drawImportanceFactors()\n" % (self.variable["importanceFactorsGraph"], self.variable["myResult"])
+ txt += "Show( %s )\n" % self.variable["importanceFactorsGraph"]
+ txt += "\n"
+
+ if ( self.DictMCVal.has_key( 'FORMEventProbabilitySensitivityNumericalResults' ) ):
+ if ( self.DictMCVal[ 'FORMEventProbabilitySensitivityNumericalResults' ] == "yes" ):
+ txt += "%s = %s.getEventProbabilitySensitivity()\n" % (self.variable["eventProbabilitySensitivity"], self.variable["myResult"])
+ txt += "print '%s =', %s\n" % (self.variable["eventProbabilitySensitivity"], self.variable["eventProbabilitySensitivity"])
+ txt += "\n"
+
+ if ( self.DictMCVal.has_key( 'FORMEventProbabilitySensitivityGraphicalResults' ) ):
+ if ( self.DictMCVal[ 'FORMEventProbabilitySensitivityGraphicalResults' ] == "yes" ):
+ txt += "%s = %s.drawEventProbabilitySensitivity()\n" % (self.variable["eventProbabilitySensitivityGraph"], self.variable["myResult"])
+ txt += "Show( %s[0] )\n" % self.variable["eventProbabilitySensitivityGraph"]
+ txt += "\n"
+
+ if ( self.DictMCVal.has_key( 'HasoferReliabilityIndexSensitivityNumericalResults' ) ):
+ if ( self.DictMCVal[ 'HasoferReliabilityIndexSensitivityNumericalResults' ] == "yes" ):
+ txt += "%s = %s.getHasoferReliabilityIndexSensitivity()\n" % (self.variable["hasoferReliabilityIndexSensitivity"], self.variable["myResult"])
+ txt += "print '%s =', %s\n" % (self.variable["hasoferReliabilityIndexSensitivity"], self.variable["hasoferReliabilityIndexSensitivity"])
+ txt += "\n"
+
+ if ( self.DictMCVal.has_key( 'HasoferReliabilityIndexSensitivityGraphicalResults' ) ):
+ if ( self.DictMCVal[ 'HasoferReliabilityIndexSensitivityGraphicalResults' ] == "yes" ):
+ txt += "%s = %s.drawHasoferReliabilityIndexSensitivity()\n" % (self.variable["hasoferReliabilityIndexSensitivityGraph"], self.variable["myResult"])
+ txt += "Show( %s[0] )\n" % self.variable["hasoferReliabilityIndexSensitivityGraph"]
+ txt += "\n"
+
+ if ( self.DictMCVal.has_key( 'TvedtApproximation' ) ):
+ if ( self.DictMCVal[ 'TvedtApproximation' ] == "yes" ):
+ txt += "%s = %s.getEventProbabilityTvedt()\n" % (self.variable["tvedtApproximation"], self.variable["myResult"])
+ txt += "print '%s =', %s\n" % (self.variable["tvedtApproximation"], self.variable["tvedtApproximation"])
+ txt += "\n"
+
+ if ( self.DictMCVal.has_key( 'HohenBichlerApproximation' ) ):
+ if ( self.DictMCVal[ 'HohenBichlerApproximation' ] == "yes" ):
+ txt += "%s = %s.getEventProbabilityHohenBichler()\n" % (self.variable["hohenBichlerApproximation"], self.variable["myResult"])
+ txt += "print '%s =', %s\n" % (self.variable["hohenBichlerApproximation"], self.variable["tvedtApproximation"])
+ txt += "\n"
+
+ if ( self.DictMCVal.has_key( 'BreitungApproximation' ) ):
+ if ( self.DictMCVal[ 'BreitungApproximation' ] == "yes" ):
+ txt += "%s = %s.getEventProbabilityBreitung()\n" % (self.variable["breitungApproximation"], self.variable["myResult"])
+ txt += "print '%s =', %s\n" % (self.variable["breitungApproximation"], self.variable["breitungApproximation"])
+ txt += "\n"
+
+
+ return txt
+
+ def RandomGenerator (self):
'''
+ Generateur Aleatoire
'''
- texte = "\n# Le resultat\n\n"
- texte += " myResu = " + self.NomAlgo + ".getResult() \n"
- texte += " probability = myResu.getEventProbability()"
+ txt = ""
+
+ seed = None
+ if ( self.DictMCVal.has_key( 'RandomGeneratorSeed' ) ):
+ seed = self.DictMCVal[ 'RandomGeneratorSeed' ]
+ txt += "# Initialise le generateur aleatoire\n"
+ txt += "RandomGenerator.SetSeed( %s )\n" % seed
+ txt += "\n"
+
+ return txt
+
+ def Event (self):
+ '''
+ Definition de l evenement de defaillance
+ '''
+ operator = None
+ if ( self.DictMCVal.has_key( 'ComparisonOperator' ) ):
+ operator = self.DictMCVal[ 'ComparisonOperator' ]
+
+ threshold = None
+ if ( self.DictMCVal.has_key( 'Threshold' ) ):
+ threshold = self.DictMCVal[ 'Threshold' ]
+
+ txt = "# Evenement de defaillance\n"
+ txt += "%s = Event( %s, ComparisonOperator( %s() ), %s )\n" % (self.variable["myEvent"], self.variable["outputRandomVector"], operator, threshold)
+ txt += "\n"
+ return txt
+
+ def MonteCarlo (self):
+ '''
+ Methode de MonteCarlo
+ '''
+ txt = "# Simulation par MonteCarlo\n"
+ txt += "%s = MonteCarlo( %s )\n" % (self.variable["myAlgo"], self.variable["myEvent"])
+ txt += "\n"
+
+ return txt
- return texte
+ def LHS (self):
+ '''
+ Methode LHS
+ '''
+ txt = "# Simulation par LHS\n"
+ txt += "%s = LHS( %s )\n" % (self.variable["myAlgo"], self.variable["myEvent"])
+ txt += "\n"
+
+ return txt
+ def ImportanceSampling (self):
+ '''
+ Methode de tirage d importance
+ '''
+ txt = "# Simulation par Tirage d'importance\n"
+ txt += "%s = ImportanceSampling( %s )\n" % (self.variable["myAlgo"], self.variable["myEvent"])
+ txt += "\n"
+ return txt
- def CreeLois (self) :
- #------------------
+ def FORM (self):
'''
+ Methode FORM
'''
- code_erreur = 0
- texte = "\n# Les lois\n\n"
- if self.DictMCVal.has_key("Analysis") and self.DictMCVal["Analysis"] == "Reliability" :
- texte += " myPhysicalStartingPoint = NumericalPoint(dim, 0.0)\n"
- texte += " myCollection = DistributionCollection(dim)\n\n"
+ txt = "# Algorithme FORM\n"
+ txt += "%s = FORM ( NearestPointAlgorithm( %s ), %s, %s )\n" % (self.variable["myAlgo"], self.variable["myOptimizer"], self.variable["myEvent"], self.variable["startingPoint"])
+ txt += "\n"
- numVar = 0
- for DictVariable in self.ListeVariables :
+ return txt
- boolLoiDef = True
- if DictVariable.has_key("MarginalDistribution") and DictVariable.has_key("Name"):
- ConceptLoi = DictVariable["MarginalDistribution"]
- NomLoi = DictVariable["Name"]+"_Dist"
- else :
- boolLoiDef = False
-
- if boolLoiDef and self.DictLois.has_key(ConceptLoi):
- loi = self.DictLois[ConceptLoi]
- else :
- boolLoiDef = False
+ def SORM (self):
+ '''
+ Methode SORM
+ '''
+ txt = "# Algorithme SORM\n"
+ txt += "%s = SORM ( NearestPointAlgorithm( %s ), %s, %s )\n" % (self.variable["myAlgo"], self.variable["myOptimizer"], self.variable["myEvent"], self.variable["startingPoint"])
+ txt += "\n"
+
+ return txt
+
+ def RunAlgorithm (self):
+ '''
+ Do the computation
+ '''
+ if ( self.DictMCVal.has_key( 'FunctionCallsNumber' ) ):
+ if ( self.DictMCVal[ 'FunctionCallsNumber' ] == "yes" ):
+ txt = "%s = %s.getEvaluationCallsNumber()\n" % (self.variable["modelEvaluationCalls"], self.variable["model"])
+ txt += "%s = %s.getGradientCallsNumber()\n" % (self.variable["modelGradientCalls"], self.variable["model"])
+ txt += "%s = %s.getHessianCallsNumber()\n" % (self.variable["modelHessianCalls"], self.variable["model"])
+ txt += "\n"
+
+ txt += "# Perform the computation\n"
+ txt += "%s.run()\n" % self.variable["myAlgo"]
+ txt += "\n"
+
+
+ if ( self.DictMCVal.has_key( 'FunctionCallsNumber' ) ):
+ if ( self.DictMCVal[ 'FunctionCallsNumber' ] == "yes" ):
+ txt += "%s = %s.getEvaluationCallsNumber() - %s\n" % (self.variable["modelEvaluationCalls"], self.variable["model"], self.variable["modelEvaluationCalls"])
+ txt += "%s = %s.getGradientCallsNumber() - %s\n" % (self.variable["modelGradientCalls"], self.variable["model"], self.variable["modelGradientCalls"])
+ txt += "%s = %s.getHessianCallsNumber() - %s\n" % (self.variable["modelHessianCalls"], self.variable["model"], self.variable["modelHessianCalls"])
+ txt += "\n"
+ txt += "print '%s =', %s\n" % (self.variable["modelEvaluationCalls"], self.variable["modelEvaluationCalls"])
+ txt += "print '%s =', %s\n" % (self.variable["modelGradientCalls"], self.variable["modelGradientCalls"])
+ txt += "print '%s =', %s\n" % (self.variable["modelHessianCalls"], self.variable["modelHessianCalls"])
+ txt += "\n"
+
+ return txt
+
+ def Cobyla (self):
+ '''
+ Methode Cobyla
+ '''
+ txt = "# Optimisation par Cobyla\n"
+ txt += "%s = Cobyla()\n" % self.variable["myOptimizer"]
+ txt += "#%s = CobylaSpecificParameters()\n" % self.variable["specificParameters"]
+ txt += "#%s.setSpecificParameters( %s )\n" % (self.variable["myOptimizer"], self.variable["specificParameters"])
+ txt += "\n"
+
+ return txt
+
+ def AbdoRackwitz (self):
+ '''
+ Methode AbdoRackwitz
+ '''
+ txt = "# Optimisation par AbdoRackwitz\n"
+ txt += "%s = AbdoRackwitz()\n" % self.variable["myOptimizer"]
+ txt += "#%s = AbdoRackwitzSpecificParameters()\n" % self.variable["specificParameters"]
+ txt += "#%s.setSpecificParameters( %s )\n" % (self.variable["myOptimizer"], self.variable["specificParameters"])
+ txt += "\n"
+ return txt
+
+ def Beta (self, loi, i, collection):
+ '''
+ Definition de la loi Beta
+ '''
+ settings = {
+ "RT" : "Beta.RT",
+ "MuSigma" : "Beta.MUSIGMA",
+ }
+ if loi[ 'Settings' ] == 'RT' :
+ arg1 = loi[ 'R' ]
+ arg2 = loi[ 'T' ]
+ else :
+ arg1 = loi[ 'Mu' ]
+ arg2 = loi[ 'Sigma' ]
- if boolLoiDef and loi.has_key("Kind") :
- TypeLoi = loi["Kind"]
- else :
- boolLoiDef = False
-
- if not boolLoiDef or TypeLoi not in self.listeParamLoi.keys() :
- texte += " Loi " + TypeLoi +" non programmee \n"
- numVar += 1
- continue
-
- ListeParametres = []
- TexteParametres = ""
- for Param in self.listeParamLoi[TypeLoi]:
- if loi.has_key(Param) :
- texte += " " + NomLoi + "_" + Param + " = " + str(loi[Param]) + "\n"
- ListeParametres.append(NomLoi + "_" + Param)
- TexteParametres += NomLoi + "_" + Param + ","
-
- texte += " " + NomLoi + " = " + TypeLoi + "( "
-
- if loi.has_key("Settings" ) and self.listeParamLoiSettings.has_key(TypeLoi) \
- and self.listeParamLoiSettings[TypeLoi].has_key(loi["Settings"]):
- NumParam = self.listeParamLoiSettings[TypeLoi][loi["Settings"]]
- texte += TexteParametres + NumParam +" )\n"
- else :
- texte += TexteParametres[:-1] + " )\n"
-
- texte += " " + NomLoi + '.setName( "'+DictVariable["Name"] +'" )\n'
- texte += " myCollection["+str(numVar)+"] = Distribution( "+NomLoi+" )\n"
-
- if self.DictMCVal["Analysis"] == "Reliability" :
- texte += " myPhysicalStartingPoint["+str(numVar)+"] = "
- if DictVariable.has_key("PhysicalStartingPoint") :
- texte += str(DictVariable["PhysicalStartingPoint"]) +"\n\n"
- else :
- texte += NomLoi+".computeQuantile( 0.5 )[0]\n\n"
-
- numVar += 1
- return texte
-
-
-# _____________________________________________________
-
- def CreeEntete (self) :
- #------------------
- '''
- Entete :
- '''
-
- texte = "#!/usr/bin/env python\n"
- texte += "# -*- coding: iso-8859-1 -*-\n"
- texte += "import sys\n"
- texte += "import os\n"
- if self.DictLois.has_key("dir_openturns_python") :
- texte += "sys.path.append(\"" + self.DictLois["dir_openturns_python"] + "\")\n"
- if self.DictLois.has_key("DTDDirectory") :
- texte += "os.environ[\"OPENTURNS_WRAPPER_PATH\"] = \".:" + self.DictLois["DTDDirectory"] + "\"\n"
- texte += "from openturns import *\n"
- texte += "error_message = None\n"
- texte += "try : \n"
- return texte
-
- def CreeTexteFin(self) :
- #------------------------------------
- texte ='\n\nexcept : \n'
- texte += ' error_message = sys.exc_type\n'
- texte += ' if error_message is not None :\n'
- texte += ' texte = "================================================= \\n"\n'
- texte += ' texte += " Message d\'erreur : \" + str(error_message) + "\\n"\n'
- texte += ' texte += "=================================================\\n"\n'
- texte += ' print texte"\n'
- texte += "sys.exit(error_message)\n"
- return texte
+ arg3 = loi[ 'A' ]
+ arg4 = loi[ 'B' ]
+ txt = "Beta( %g, %g, %g, %g, %s )" % (arg1, arg2, arg3, arg4, settings[ loi[ 'Settings' ] ])
+ return txt
+
+ def Exponential (self, loi, i, collection):
+ '''
+ Definition de la loi Exponential
+ '''
+ arg1 = loi[ 'Lambda' ]
+ arg2 = loi[ 'Gamma' ]
+ txt = "Exponential( %g, %g )" % (arg1, arg2)
+ return txt
+ def Gamma (self, loi, i, collection):
+ '''
+ Definition de la loi Gamma
+ '''
+ settings = {
+ "KLambda" : "Gamma.KLAMBDA",
+ "MuSigma" : "Gamma.MUSIGMA",
+ }
+ if loi[ 'Settings' ] == 'KLambda' :
+ arg1 = loi[ 'K' ]
+ arg2 = loi[ 'Lambda' ]
+ else :
+ arg1 = loi[ 'Mu' ]
+ arg2 = loi[ 'Sigma' ]
+
+ arg3 = loi[ 'Gamma' ]
+ txt = "Gamma( %g, %g, %g, %s )" % (arg1, arg2, arg3, settings[ loi[ 'Settings' ] ])
+ return txt
+
+ def Geometric (self, loi, i, collection):
+ '''
+ Definition de la loi Geometric
+ '''
+ txt = "Geometric( %g )" % loi[ 'P' ]
+ return txt
+
+ def Gumbel (self, loi, i, collection):
+ '''
+ Definition de la loi Gumbel
+ '''
+ settings = {
+ "AlphaBeta" : "Gamma.ALPHABETA",
+ "MuSigma" : "Gamma.MUSIGMA",
+ }
+ if loi[ 'Settings' ] == 'AlphaBeta' :
+ arg1 = loi[ 'Alpha' ]
+ arg2 = loi[ 'Beta' ]
+ else :
+ arg1 = loi[ 'Mu' ]
+ arg2 = loi[ 'Sigma' ]
+
+ txt = "Gamma( %g, %g, %s )" % (arg1, arg2, settings[ loi[ 'Settings' ] ])
+ return txt
+
+ def Histogram (self, loi, i, collection):
+ '''
+ Definition de la loi Histogram
+ '''
+ txt = "** Histogram not defined yet **"
+ return txt
+
+ def Logistic (self, loi, i, collection):
+ '''
+ Definition de la loi Logistic
+ '''
+ arg1 = loi[ 'Alpha' ]
+ arg2 = loi[ 'Beta' ]
+ txt = "Logistic( %g, %g )" % (arg1, arg2)
+ return txt
+
+ def LogNormal (self, loi, i, collection):
+ '''
+ Definition de la loi LogNormal
+ '''
+ settings = {
+ "MuSigmaLog" : "LogNormal.MUSIGMA_LOG",
+ "MuSigma" : "LogNormal.MUSIGMA",
+ "MuSigmaOverMu" : "LogNormal.MU_SIGMAOVERMU",
+ }
+ if loi[ 'Settings' ] == 'MuSigmaLog' :
+ arg1 = loi[ 'MuLog' ]
+ arg2 = loi[ 'SigmaLog' ]
+ elif loi[ 'Settings' ] == 'MuSigmaOverMu' :
+ arg1 = loi[ 'Mu' ]
+ arg2 = loi[ 'SigmaOverMu' ]
+ else :
+ arg1 = loi[ 'Mu' ]
+ arg2 = loi[ 'Sigma' ]
+
+ arg3 = loi[ 'Gamma' ]
+ txt = "LogNormal( %g, %g, %g, %s )" % (arg1, arg2, arg3, settings[ loi[ 'Settings' ] ])
+ return txt
+
+ def MultiNomial (self, loi, i, collection):
+ '''
+ Definition de la loi MultiNomial
+ '''
+ arg1 = loi[ 'Values' ]
+ arg2 = loi[ 'N' ]
+ txt = "MultiNomial( NumericalPoint( %s ) , %d)" % (arg1, arg2)
+ return txt
+
+ def Normal (self, loi, i, collection):
+ '''
+ Definition de la loi Normal
+ '''
+ arg1 = loi[ 'Mu' ]
+ arg2 = loi[ 'Sigma' ]
+ txt = "Normal( %g, %g )" % (arg1, arg2)
+ return txt
+
+ def TruncatedNormal (self, loi, i, collection):
+ '''
+ Definition de la loi TruncatedNormal
+ '''
+ arg1 = loi[ 'MuN' ]
+ arg2 = loi[ 'SigmaN' ]
+ arg3 = loi[ 'A' ]
+ arg4 = loi[ 'B' ]
+ txt = "TruncatedNormal( %g, %g, %g, %g )" % (arg1, arg2, arg3, arg4)
+ return txt
+
+ def Poisson (self, loi, i, collection):
+ '''
+ Definition de la loi
+ '''
+ txt = "Poisson( %g )" % loi[ 'Lambda' ]
+ return txt
+
+ def Student (self, loi, i, collection):
+ '''
+ Definition de la loi Student
+ '''
+ arg1 = loi[ 'Mu' ]
+ arg2 = loi[ 'Nu' ]
+ txt = "Student( %g, %g )" % (arg1, arg2)
+ return txt
+
+ def Triangular (self, loi, i, collection):
+ '''
+ Definition de la loi Triangular
+ '''
+ arg1 = loi[ 'A' ]
+ arg2 = loi[ 'M' ]
+ arg3 = loi[ 'B' ]
+ txt = "Triangular( %g, %g, %g )" % (arg1, arg2, arg3)
+ return txt
+
+ def Uniform (self, loi, i, collection):
+ '''
+ Definition de la loi Uniform
+ '''
+ arg1 = loi[ 'A' ]
+ arg2 = loi[ 'B' ]
+ txt = "Uniform( %g, %g )" % (arg1, arg2)
+ return txt
+
+ def UserDefined (self, loi, i, collection):
+ '''
+ Definition de la loi UserDefined
+ '''
+ txt = "** UserDefined not defined yet **"
+ return txt
+
+ def Weibull (self, loi, i, collection):
+ '''
+ Definition de la loi Weibull
+ '''
+ settings = {
+ "AlphaBeta" : "Weibull.ALPHABETA",
+ "MuSigma" : "Weibull.MUSIGMA",
+ }
+ if loi[ 'Settings' ] == 'AlphaBeta' :
+ arg1 = loi[ 'Alpha' ]
+ arg2 = loi[ 'Beta' ]
+ else :
+ arg1 = loi[ 'Mu' ]
+ arg2 = loi[ 'Sigma' ]
+
+ arg3 = loi[ 'Gamma' ]
+ txt = "Weibull( %g, %g, %s )" % (arg1, arg2, arg3, settings[ loi[ 'Settings' ] ])
+ return txt
+
"""
Ce module contient le generateur XML pour Openturns
"""
-
-# Les variables
-#---------------------
-
-# OrdreVariable contient l'ordre des MC pour definir une variable en XML
-# dictMCXML a pour cle le nom du MC dans la commande,
-# Il contient aussi une liste donnant les informations suivantes
-# 0 : debut de ligne
-# 1 : fin de ligne
-# 2 : code : 0 : facultatif, 1 : obligatoire
-# Type est sur la meme ligne que Name
-
-OrdreVariable = ( 'Name', 'Type', 'Comment', 'Unit', 'Regexp', 'Format' )
-dictMCXML = { "Name" : ( ' <variable id="', '" ', 1 ),
- "Type" : ( 'type ="' , '">\n', 1 ),
- "Comment" : ( ' <comment>' , '</comment>\n', 0 ),
- "Unit" : ( ' <unit>' , '</unit>\n', 0 ),
- "Regexp" : ( ' <regexp>' , '</regexp>\n', 0 ),
- "Format" : ( ' <format>' , '</format>\n', 0 ),
- }
-
-
-# Les fonctions du wrapper
-#--------------------------------
-# OrdreLibrary contient l'ordre des MC pour definir la partie library en XML
-# dictLibXML a pour cle le nom du MC dans la commande,
-# Il contient aussi une liste donnant les informations suivantes :
-# 0 : debut de ligne
-# 1 : milieu de ligne si le MC est present
-# 2 : milieu de ligne si le MC n est pas present
-# 3 : fin de ligne
-# 4 : code : 0 : facultatif, 1 : obligatoire sans defaut
-
-OrdreLibrary = ( 'FunctionName', 'GradientName', 'HessianName' )
-dictLibXML = { "FunctionName" : ( '\n\n <!-- The function that we try to execute through the wrapper -->',
- '\n <function provided="yes">',
- '\n <function provided="no">',
- '</function>',
- 1,
- ),
- "GradientName" : ( '\n\n <!-- The gradient of the function -->',
- '\n <gradient provided="yes">',
- '\n <gradient provided="no">',
- '</gradient>',
- 0,
- ),
- "HessianName" : ( '\n\n <!-- The hessian of the function wrapper -->',
- '\n <hessian provided="yes">',
- '\n <hessian provided="no">' ,
- '</hessian>\n\n',
- 0,
- ),
- }
-
-# Les communications du wrapper
-#--------------------------------
-# OrdreWrapMode contient l'ordre des MC pour definir la partie WrapMode en XML
-# dictWrMXML a pour cle le nom du MC dans la commande,
-# Il contient aussi une liste donnant les informations suivantes
-# 0 : debut de ligne
-# 1 : fin de ligne
-# 2 : code : 0 : facultatif, 1 : obligatoire sans defaut, 2 : obligatoire avec defaut
-# 3 : valeur par defaut eventuelle
-OrdreWrapMode = ( 'WrapCouplingMode', 'State', 'InDataTransfer', 'OutDataTransfer' )
-dictWrMXML = { "WrapCouplingMode" : ( '\n <wrap-mode type="' , '"' , 1 ),
- "State" : ( ' state="' , '">\n' , 2, 'shared">\n' ),
- "InDataTransfer" : ( ' <in-data-transfer mode="' , '" />\n', 0 ),
- "OutDataTransfer" : ( ' <out-data-transfer mode="', '" />\n', 0 ),
- }
-
-# Les fichiers d'echange du wrapper
-#-----------------------------------------
-# OrdreExchangeFile contient l'ordre des MC pour definir la partie OrdreExchangeFile en XML
-# dictFilXML a pour cle le nom du MC dans la commande,
-# Il contient aussi une liste donnant les informations suivantes
-# 0 : debut de ligne
-# 1 : fin de ligne
-# 2 : code : 0 : facultatif, 1 : obligatoire sans defaut
-OrdreExchangeFile = ( 'Id', 'Type', 'Name', 'Path', 'Subst' )
-dictFilXML = { "Id" : ( '\n <file id="', '">' ),
- "Type" : ( ' type="' , '">' ),
- "Name" : ( '\n <name>' , '</name>' ),
- "Path" : ( '\n <path>' , '</path>' ),
- "Subst" : ( '\n <subst>' , '</subst>' ),
- }
-
+import sys
+print sys.path
+import openturns
+
+# Dictionnaires de conversion des valeurs lues dans EFICAS
+# en valeurs reconnues par Open TURNS
+# Les clefs 'None' sont les valeurs par defaut
+
+VariableTypeByName = {
+ "in" : openturns.WrapperDataVariableType.IN,
+ "out" : openturns.WrapperDataVariableType.OUT,
+ None : openturns.WrapperDataVariableType.IN,
+ }
+
+FileTypeByName = {
+ "in" : openturns.WrapperDataFileType.IN,
+ "out" : openturns.WrapperDataFileType.OUT,
+ None : openturns.WrapperDataFileType.IN,
+ }
+
+SymbolProvidedByName = {
+ "no" : openturns.WrapperSymbolProvided.NO,
+ "yes" : openturns.WrapperSymbolProvided.YES,
+ None : openturns.WrapperSymbolProvided.NO,
+ }
+
+WrapperStateByName = {
+ "shared" : openturns.WrapperState.SHARED,
+ "specific" : openturns.WrapperState.SPECIFIC,
+ None : openturns.WrapperState.SPECIFIC,
+ }
+
+WrapperModeByName = {
+ "static-link" : openturns.WrapperMode.STATICLINK,
+ "dynamic-link" : openturns.WrapperMode.DYNAMICLINK,
+ "fork" : openturns.WrapperMode.FORK,
+ None : openturns.WrapperMode.FORK,
+ }
+
+WrapperDataTransferByName = {
+ "files" : openturns.WrapperDataTransfer.FILES,
+ "pipe" : openturns.WrapperDataTransfer.PIPE,
+ "arguments" : openturns.WrapperDataTransfer.ARGUMENTS,
+ "socket" : openturns.WrapperDataTransfer.SOCKET,
+ "CORBA" : openturns.WrapperDataTransfer.CORBA,
+ None : openturns.WrapperDataTransfer.FILES,
+ }
#==========================
# La classe de creation XML
'''
Generation du fichier XML
'''
- def __init__ (self, DictMCVal, ListeVariables, DictLois ) :
- #---------------------------------------------------------#
- self.ListeFiles = []
+ def __init__ (self, appli, DictMCVal, DictVariables ) :
self.DictMCVal = DictMCVal
- self.ListeVariables = ListeVariables
- self.DictLois = DictLois
+ self.DictVariables = DictVariables
+ self.appli = appli
def CreeXML (self) :
- #------------------#
'''
Pilotage general de la creation du fichier XML
'''
- self.texte = self.CreeEntete()
- self.texte += self.CreeWrapperAndPath()
- self.texte += self.CreeVariables()
- self.texte += self.CreeLibrary()
- self.texte += self.CreeFile()
- self.texte += self.CreeWrapMode()
- self.texte += self.CreeCommande()
- return self.texte
-
-
- def CreeEntete (self) :
- #---------------------#
+ data = openturns.WrapperData()
+ data.setLibraryPath( self.GetMCVal('WrapperPath','') )
+ data.setVariableList( self.VariableList() )
+ data.setFunctionDescription( self.FunctionDefinition() )
+ data.setGradientDescription( self.GradientDefinition() )
+ data.setHessianDescription( self.HessianDefinition() )
+ data.setFileList( self.FileList() )
+ data.setParameters( self.Parameters() )
+
+ wrapper=openturns.WrapperFile()
+ wrapper.setWrapperData( data )
+
+ return wrapper
+
+
+ def VariableList (self) :
'''
- La variable DTDDirectory doit etre dans DictMCVal
+ Ecrit la liste des variables
'''
- #PN a faire : recuperer DTDDirectory dans editeur.ini
- texte = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n"
- if self.DictMCVal.has_key("DTDDirectory") :
- aux = os.path.join(self.DictMCVal["DTDDirectory"], "wrapper.dtd")
- texte += "<!DOCTYPE wrapper SYSTEM \"" + aux + "\">\n"
- texte += '\n<wrapper>\n'
- texte += '\n <library>\n\n'
- return texte
-
-
- def CreeWrapperAndPath (self) :
- #-----------------------------#
- texte = ' <!-- The path of the shared object -->\n'
- texte += ' <path>'
- if self.DictMCVal.has_key("WrapperPath") :
- texte += self.DictMCVal["WrapperPath"]
- else :
- print "*********************************************"
- print "* ERREUR GENERATION XML *"
- print "* champ WrapperPath non rempli *"
- print "*********************************************"
- texte += '</path>\n\n\n'
+ varList = openturns.WrapperDataVariableList()
+ for var in self.DictVariables.keys() :
+ varList.add( self.Variable( var, self.DictVariables[var] ) )
+ return varList
- return texte
-
-
- def CreeVariables (self) :
- #------------------------#
- texte =' <!-- This section describes all exchanges data between the wrapper and the platform -->\n'
- texte +=' <description>\n\n'
- texte +=' <!-- Those variables are substituted in the files above -->\n'
- texte +=' <!-- The order of variables is the order of the arguments of the function -->\n\n'
- texte += ' <variable-list>'
+ def Variable (self, var, dictVar) :
+ '''
+ Ecrit le parametrage d une variable
+ '''
+ variable = openturns.WrapperDataVariable()
+ variable.id_ = var
+ if dictVar[ 'Type' ] in VariableTypeByName.keys() :
+ variable.type_ = VariableTypeByName[ dictVar[ 'Type' ] ]
+ if dictVar.has_key('Comment') : variable.comment_ = dictVar[ 'Comment' ]
+ if dictVar.has_key('Unit') : variable.unit_ = dictVar[ 'Unit' ]
+ if dictVar.has_key('Regexp') : variable.regexp_ = dictVar[ 'Regexp' ]
+ if dictVar.has_key('Format') : variable.format_ = dictVar[ 'Format' ]
+ return variable
+
+ def FunctionDefinition (self) :
+ '''
+ Ecrit la description de la Fonction
+ '''
+ func = openturns.WrapperFunctionDescription()
+ func.name_ = self.GetMCVal( 'FunctionName', '' )
+ if (len(func.name_) != 0) : func.provided_ = SymbolProvidedByName[ 'yes' ]
+ return func
+
+ def GradientDefinition (self) :
+ '''
+ Ecrit la description du Gradient
+ '''
+ grad = openturns.WrapperFunctionDescription()
+ grad.name_ = self.GetMCVal( 'GradientName', '' )
+ if (len(grad.name_) != 0) : grad.provided_ = SymbolProvidedByName[ 'yes' ]
+ return grad
+
+ def HessianDefinition (self) :
+ '''
+ Ecrit la description de la Hessienne
+ '''
+ hess = openturns.WrapperFunctionDescription()
+ hess.name_ = self.GetMCVal( 'HessianName', '' )
+ if (len(hess.name_) != 0) : hess.provided_ = SymbolProvidedByName[ 'yes' ]
+ return hess
+
- numvar = 0
- for DictVariable in self.ListeVariables :
- texte += "\n <!-- The definition of variable # "+ str(numvar) + " -->\n"
- for MC in OrdreVariable :
- if DictVariable.has_key(MC) :
- texte += dictMCXML[MC][0] + DictVariable[MC] + dictMCXML[MC][1]
- else :
- if dictMCXML[MC][2] :
- print "**************************************************"
- print "* ERREUR GENERATION XML *"
- print "* champ obligatoire non rempli pour variable *"
- print "**************************************************"
- texte += ' </variable>\n'
- numvar += 1
- texte += '\n </variable-list>\n'
- texte += ' <!-- End of variable description -->\n'
- return texte
- def CreeLibrary (self) :
- #----------------------#
+ def FileList (self) :
'''
- Librairies
+ Ecrit la liste des fichiers
'''
- texte = ""
- for MC in OrdreLibrary :
- texte += dictLibXML[MC][0]
- if self.DictMCVal.has_key(MC) :
- texte += dictLibXML[MC][1] + self.DictMCVal[MC] + dictLibXML[MC][3]
- else :
- texte += dictLibXML[MC][2] + dictLibXML[MC][3]
- if dictLibXML[MC][4] :
- print "**************************************************"
- print "* ERREUR GENERATION XML *"
- print "* champ obligatoire non rempli pour wrapper *"
- print "**************************************************"
- texte += ' </description>\n\n'
- texte += ' </library>\n'
- return texte
+ fileList = openturns.WrapperDataFileList()
+ for dictFile in self.GetMCVal('Files', []) :
+ fileList.add( self.File( dictFile ) )
+ return fileList
- def CreeFile (self) :
- #-------------------#
+ def File (self, dictFile ) :
'''
- Fichiers
+ Ecrit le parametrage d un fichier
'''
- texte = '\n <external-code>\n'
- texte += '\n <!-- Those data are external to the platform (input files, etc.)-->\n'
- texte += ' <data>\n'
-
- if self.DictMCVal.has_key("exchange_file") :
- for dico in self.DictMCVal["exchange_file"] :
- texte += "\n <!-- The definition of file -->"
- for MC in OrdreExchangeFile :
- if dico.has_key(MC) :
- texte += dictFilXML[MC][0] + dico[MC] + dictFilXML[MC][1]
- texte += "\n </file>\n"
- texte += '\n </data>\n'
- return texte
-
- def CreeWrapMode (self) :
- #-----------------------#
+ fich = openturns.WrapperDataFile()
+ fich.id_ = dictFile[ 'Id' ]
+ if dictFile[ 'Type' ] in FileTypeByName.keys() :
+ fich.type_ = FileTypeByName[ dictFile[ 'Type' ] ]
+ if dictFile.has_key('Name') : fich.name_ = dictFile[ 'Name' ]
+ if dictFile.has_key('Path') : fich.path_ = dictFile[ 'Path' ]
+ if dictFile.has_key('Subst') :
+ import string
+ fich.subst_ = string.join( dictFile[ 'Subst' ], ',' )
+ return fich
+
+ def Parameters (self) :
'''
- WrapMode
+ Ecrit les parametres de couplage au code externe
'''
- texte = '\n <!-- Transfert data mode through Wrapper -->'
+ parameters = openturns.WrapperParameter()
+ parameters.mode_ = WrapperModeByName[ self.GetMCVal('WrapCouplingMode') ]
+ parameters.state_ = WrapperStateByName[ self.GetMCVal('State') ]
+ parameters.in_ = WrapperDataTransferByName[ self.GetMCVal('InDataTransfer') ]
+ parameters.out_ = WrapperDataTransferByName[ self.GetMCVal('OutDataTransfer') ]
+ return parameters
+
- for MC in OrdreWrapMode :
- if self.DictMCVal.has_key(MC) :
- texte += dictWrMXML[MC][0] + self.DictMCVal[MC] + dictWrMXML[MC][1]
- else :
- if dictWrMXML[MC][2] == 2 :
- texte += dictWrMXML[MC][0] + dictWrMXML[MC][3]
- elif dictWrMXML[MC][2] == 1 :
- print "**************************************************"
- print "* ERREUR GENERATION XML *"
- print "* champ obligatoire non rempli pour external *"
- print "**************************************************"
- texte += ' </wrap-mode>\n\n'
- return texte
- def CreeCommande (self) :
- #-----------------------#
+
+ # ---------------------------------------------------------------------------------
+
+
+ def GetTag (self, tag) :
'''
- La commande
- On lui passera en argument les options supplementaires eventuelles
+ Recupere la chaine associee au tag dans la table dictTagsXML.
+ Leve une exception si le tag n est pas trouve
'''
- texte = ' <!-- Command -->\n'
- texte += ' <command>'
- if self.DictMCVal.has_key("Command") :
- texte += self.DictMCVal["Command"]
- if self.DictMCVal.has_key("ArguCommande") :
- for argument in self.DictMCVal[ArguCommande] :
- texte += " " + argument
- texte += "\n"
+ if ( dictTagsXML.has_key(tag) ) :
+ return dictTagsXML[tag]
else :
- texte += '# no command'
- texte +='</command>\n'
- texte +='\n </external-code>\n'
- texte +='\n</wrapper>\n'
- return texte
-
+ raise KeyError, "Tag '%s' is undefined. This is an internal bug. Report bug to developers" % tag
+ pass
+
+ def GetMCVal (self, MC, default = None, mandatory = False) :
+ '''
+ Recupere la chaine associee au MC dans la table DictMCVal.
+ Leve une exception si le MC n est pas trouve et mandatory vaut True
+ '''
+ if ( self.DictMCVal.has_key(MC) and self.DictMCVal[MC] != None ) :
+ return self.DictMCVal[MC]
+ else :
+ if ( mandatory ) :
+ raise KeyError, "Keyword '%s' is mandatory" % MC
+ else :
+ return default
+ pass
--- /dev/null
+# -*- coding: utf-8 -*-
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+#
+#
+# ======================================================================
+"""
+ Ce module contient le plugin generateur de fichier au format
+ openturns pour EFICAS.
+
+"""
+import traceback
+import types,string,re
+
+from generator_python import PythonGenerator
+from OpenturnsBase import Generateur
+#from OpenturnsXML import XMLGenerateur
+#from OpenturnsSTD import STDGenerateur
+
+def entryPoint():
+ """
+ Retourne les informations necessaires pour le chargeur de plugins
+
+ Ces informations sont retournees dans un dictionnaire
+ """
+ return {
+ # Le nom du plugin
+ 'name' : 'openturns_study',
+ # La factory pour creer une instance du plugin
+ 'factory' : OpenturnsGenerator,
+ }
+
+
+class OpenturnsGenerator(PythonGenerator):
+ """
+ Ce generateur parcourt un objet de type JDC et produit
+ un texte au format eficas et
+ un texte au format xml
+
+ """
+ # Les extensions de fichier permis?
+ extensions=('.comm',)
+
+ def initDico(self):
+ self.dictMCVal={}
+ self.listeVariables=[]
+ self.listeFichiers=[]
+ self.dictMCLois={}
+ self.dictTempo={}
+ self.TraiteMCSIMP=1
+ self.texteSTD="""#!/usr/bin/env python
+ import sys
+ print "Invalid file. Check build process."
+ sys.exit(1)
+ """
+
+ def gener(self,obj,format='brut'):
+ print "IDM: gener dans generator_openturns_study.py"
+ self.initDico()
+ self.text=PythonGenerator.gener(self,obj,format)
+ self.genereSTD()
+ return self.text
+
+ def generMCSIMP(self,obj) :
+ """
+ Convertit un objet MCSIMP en texte python
+ Remplit le dictionnaire des MCSIMP si nous ne sommes ni dans une loi, ni dans une variable
+ """
+ s=PythonGenerator.generMCSIMP(self,obj)
+ if self.TraiteMCSIMP == 1 :
+ self.dictMCVal[obj.nom]=obj.val
+ else :
+ self.dictTempo[obj.nom]=obj.valeur
+ return s
+
+# def generMCFACT(self,obj):
+# # Il n est pas possible d utiliser obj.valeur qui n est pas
+# # a jour pour les nouvelles variables ou les modifications
+# if obj.nom in ( "Variables", "Files", ) :
+# self.TraiteMCSIMP=0
+# self.dictTempo={}
+# s=PythonGenerator.generMCFACT(self,obj)
+# if obj.nom in ( "Variables", ) :
+# self.listeVariables.append(self.dictTempo)
+# self.dictTempo={}
+# else :
+# self.listeFichiers.append(self.dictTempo)
+# self.TraiteMCSIMP=1
+# return s
+
+ def generETAPE(self,obj):
+ print "IDM: generETAPE dans generator_openturns_study.py"
+ print "IDM: obj.nom=", obj.nom
+ if obj.nom in ( "DISTRIBUTION", ) :
+ self.TraiteMCSIMP=0
+ self.dictTempo={}
+ s=PythonGenerator.generETAPE(self,obj)
+ if obj.nom in ( "DISTRIBUTION", ) :
+ self.dictMCLois[obj.sd]=self.dictTempo
+ self.dictTempo={}
+ self.TraiteMCSIMP=1
+ return s
+
+ def generPROC_ETAPE(self,obj):
+ print "IDM: generPROC_ETAPE dans generator_openturns_study.py"
+ print "IDM: obj.nom=", obj.nom
+ if obj.nom in ( "VARIABLE", ) :
+ self.TraiteMCSIMP=0
+ self.dictTempo={}
+ s=PythonGenerator.generPROC_ETAPE(self,obj)
+ if obj.nom in ( "VARIABLE", ) :
+ self.listeVariables.append(self.dictTempo)
+ self.dictTempo={}
+ self.TraiteMCSIMP=1
+ return s
+
+ def genereSTD(self):
+ print "IDM: genereSTD dans generator_openturns_study.py"
+ print "IDM: self.listeVariables=", self.listeVariables
+ MonBaseGenerateur=Generateur(self.appli,self.dictMCVal, self.listeVariables, self.dictMCLois)
+ MonGenerateur=MonBaseGenerateur.getSTDGenerateur()
+ #try :
+ if 1== 1 :
+ self.texteSTD=MonGenerateur.CreeSTD()
+ #except :
+ else :
+ self.texteSTD="Il y a un pb a la Creation du STD"
+
+ def writeOpenturnsSTD(self, filename):
+ f = open( str(filename), 'wb')
+ f.write( self.texteSTD )
+ f.close()
+
+
--- /dev/null
+# -*- coding: utf-8 -*-
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+#
+#
+# ======================================================================
+"""
+ Ce module contient le plugin generateur de fichier au format
+ openturns pour EFICAS.
+
+"""
+import traceback
+import types,string,re
+
+from generator_python import PythonGenerator
+from OpenturnsBase import Generateur
+#from OpenturnsXML import XMLGenerateur
+#from OpenturnsSTD import STDGenerateur
+
+def entryPoint():
+ """
+ Retourne les informations necessaires pour le chargeur de plugins
+
+ Ces informations sont retournees dans un dictionnaire
+ """
+ return {
+ # Le nom du plugin
+ 'name' : 'openturns_wrapper',
+ # La factory pour creer une instance du plugin
+ 'factory' : OpenturnsGenerator,
+ }
+
+
+class OpenturnsGenerator(PythonGenerator):
+ """
+ Ce generateur parcourt un objet de type JDC et produit
+ un texte au format eficas et
+ un texte au format xml
+
+ """
+ # Les extensions de fichier permis?
+ extensions=('.comm',)
+
+ def initDico(self):
+ self.dictMCVal={}
+ self.dictVariables={}
+ self.listeFichiers=[]
+ self.dictTempo={}
+ self.traiteMCSIMP=1
+ self.numOrdre=0
+ self.texteSTD="""#!/usr/bin/env python
+ import sys
+ print "Invalid file. Check build process."
+ sys.exit(1)
+ """
+ self.wrapperXML=None
+
+ def gener(self,obj,format='brut'):
+ #print "IDM: gener dans generator_openturns_wrapper.py"
+ self.initDico()
+ self.text=PythonGenerator.gener(self,obj,format)
+ self.genereXML()
+ #self.genereSTD()
+ return self.text
+
+ def generMCSIMP(self,obj) :
+ """
+ Convertit un objet MCSIMP en texte python
+ Remplit le dictionnaire des MCSIMP si nous ne sommes ni dans une loi, ni dans une variable
+ """
+ s=PythonGenerator.generMCSIMP(self,obj)
+ if self.traiteMCSIMP == 1 :
+ self.dictMCVal[obj.nom]=obj.val
+ else :
+ self.dictTempo[obj.nom]=obj.valeur
+ return s
+
+ def generETAPE(self,obj):
+ #print "generETAPE" , obj.nom
+ if obj.nom == "VARIABLE" :
+ self.traiteMCSIMP=0
+ self.dictTempo={}
+ s=PythonGenerator.generETAPE(self,obj)
+ if obj.nom == "VARIABLE" :
+ self.dictTempo["numOrdre"]=self.numOrdre
+ self.numOrdre = self.numOrdre +1
+ if obj.sd == None :
+ self.dictVariables["SansNom"]=self.dictTempo
+ else :
+ self.dictVariables[obj.sd.nom]=self.dictTempo
+ self.dictTempo={}
+ self.traiteMCSIMP=1
+ return s
+
+ def generMCFACT(self,obj):
+ # Il n est pas possible d utiliser obj.valeur qui n est pas
+ # a jour pour les nouvelles variables ou les modifications
+ #print "generMCFACT" , obj.nom
+ if obj.nom in ( "Files", ) :
+ self.traiteMCSIMP=0
+ self.dictTempo={}
+ s=PythonGenerator.generMCFACT(self,obj)
+ self.listeFichiers.append(self.dictTempo)
+ self.traiteMCSIMP=1
+ return s
+
+ def genereXML(self):
+ #print "IDM: genereXML dans generator_openturns_wrapper.py"
+ #print "appli.CONFIGURATION=",self.appli.CONFIGURATION.__dict__
+ if self.listeFichiers != [] :
+ self.dictMCVal["Files"]=self.listeFichiers
+ print "dictMCVal", self.dictMCVal, "dictVariables", self.dictVariables
+ MonBaseGenerateur=Generateur(self.appli,self.dictMCVal, [], {} ,self.dictVariables)
+ MonGenerateur=MonBaseGenerateur.getXMLGenerateur()
+ #try :
+ if 1== 1 :
+ self.wrapperXML=MonGenerateur.CreeXML()
+ #except :
+ else :
+ self.wrapperXML=None
+
+ def writeOpenturnsXML(self, filename):
+ self.wrapperXML.writeFile( str(filename) )
+
def generMCSIMP(self,obj) :
"""
"""
- #print "MCSIMP : ", obj.nom
if obj.nom in dir(self) :
suite = self.__class__.__dict__[obj.nom](self,obj)
else :
clef=self.dict_traduit[obj.nom]
- self.dict_attributs[clef]=obj.val
+ # Traitement des parametres
+ try :
+ self.dict_attributs[clef]=obj.val.eval()
+ except :
+ self.dict_attributs[clef]=obj.val
+
def generMCFACT(self,obj):
"""
"""
self.init_ligne()
self.commande=self.dict_deb_com[obj.nom]
- print self.commande
for v in obj.mc_liste:
self.generator(v)
- #print self.commande
- #print self.dict_attributs
if self.boolGpMa == 1:
self.list_commandes.append((self.commande,self.dict_attributs))
else :
#showerror("Elements ne portant pas sur un Groupe de Maille","Salome ne sait pas montrer ce type d' element")
+ print ("Elements ne portant pas sur un Groupe de Maille","Salome ne sait pas montrer ce type d' element")
pass
def generMCList(self,obj):