From a6a075eb82a562882949a8322074dc34034832c0 Mon Sep 17 00:00:00 2001 From: Pascale Noyret Date: Fri, 2 Jun 2006 09:43:51 +0000 Subject: [PATCH] PN version NEW7 --- .../cataSTA76/Macro/macr_ascouf_mail_ops.py | 24 +- .../cataSTA76/Macro/macr_aspic_calc_ops.py | 21 +- .../cataSTA76/Macro/macr_aspic_mail_ops.py | 106 +++++- Aster/Cata/cataSTA76/Macro/reca_algo.py | 15 +- .../Cata/cataSTA76/Macro/test_fichier_ops.py | 215 ++++++++---- Aster/Cata/cataSTA76/cata.py | 324 +++++++++++++----- 6 files changed, 512 insertions(+), 193 deletions(-) diff --git a/Aster/Cata/cataSTA76/Macro/macr_ascouf_mail_ops.py b/Aster/Cata/cataSTA76/Macro/macr_ascouf_mail_ops.py index f7b95acf..3d035a34 100644 --- a/Aster/Cata/cataSTA76/Macro/macr_ascouf_mail_ops.py +++ b/Aster/Cata/cataSTA76/Macro/macr_ascouf_mail_ops.py @@ -1,4 +1,4 @@ -#@ MODIF macr_ascouf_mail_ops Macro DATE 30/11/2004 AUTEUR MCOURTOI M.COURTOIS +#@ MODIF macr_ascouf_mail_ops Macro DATE 24/05/2006 AUTEUR CIBHHLV L.VIVAN # -*- coding: iso-8859-1 -*- # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== @@ -19,7 +19,7 @@ # ====================================================================== - +import os.path from math import sqrt,cos,sin,pi,tan,log,fabs,ceil,fmod,floor # ------------------------------------------------------------------------------ @@ -1458,8 +1458,9 @@ def write_file_dgib_ASCFDO(nomFichierDATG,RM,RC,ALPHA,NBTRAN,EP1,EP2,EPI,TETA1, texte=texte+'nivmag = '+str(NIVMAG) +POIVIR texte=texte+'*\n' texte=texte+'* FIN PARAMETRES UTILISATEUR\n' - texte=texte+'opti donn ' - texte=texte+"'"+loc_datg+'ascouf_fiss_v4.datg'+"';\n" + texte = texte + open(os.path.join(loc_datg, 'ascouf_fiss_v4.datg'), 'r').read() +# texte=texte+'opti donn ' +# texte=texte+"'"+loc_datg+'ascouf_fiss_v4.datg'+"';\n" fdgib=open(nomFichierDATG,'w') fdgib.write(texte) fdgib.close() @@ -1576,8 +1577,9 @@ def write_file_dgib_ASCSQO(nomFichierDATG,TYPELE,RM,RC,ALPHA,NBTRAN,EP1,EP2, texte=texte+" sousep . 1 = 'non'"+POIVIR texte=texte+'*\n' texte=texte+'* FIN PARAMETRES UTILISATEUR \n' - texte=texte+'opti donn ' - texte=texte+"'"+loc_datg+'ascouf_ssep_mono_v1.datg'+"'"+POIVIR + texte = texte + open(os.path.join(loc_datg, 'ascouf_ssep_mono_v1.datg'), 'r').read() +# texte=texte+'opti donn ' +# texte=texte+"'"+loc_datg+'ascouf_ssep_mono_v1.datg'+"'"+POIVIR fdgib=open(nomFichierDATG,'w') fdgib.write(texte) fdgib.close() @@ -1718,8 +1720,9 @@ def write_file_dgib_ASCSP1(nomFichierDATG,TYPELE,MCL_SOUS_EPAIS,NIVMAG,loc_datg) texte=texte+'axisym = table '+POIVIR texte=texte+'sousep = table '+POIVIR texte=texte+'* \n' - texte=texte+'opti donn ' - texte=texte+"'"+loc_datg+'ascouf_ssep_mult_v1.datg'+"';\n" + texte = texte + open(os.path.join(loc_datg, 'ascouf_ssep_mult_v1.datg'), 'r').read() +# texte=texte+'opti donn ' +# texte=texte+"'"+loc_datg+'ascouf_ssep_mult_v1.datg'+"';\n" fdgib=open(nomFichierDATG,'w') fdgib.write(texte) fdgib.close() @@ -1987,8 +1990,9 @@ def write_file_dgib_ASCRDO(nomFichierDATG,TYPELE,NIVMAG,TYPBOL,ALPHA,RC,RM,EP,SU texte=texte+'nzgv = '+str(NZGV) +POIVIR texte=texte+'*\n' texte=texte+'* FIN PARAMETRES UTILISATEUR\n' - texte=texte+'opti donn ' - texte=texte+"'"+loc_datg+'ascouf_regl_v1.datg'+"';\n" + texte = texte + open(os.path.join(loc_datg, 'ascouf_regl_v1.datg'), 'r').read() +# texte=texte+'opti donn ' +# texte=texte+"'"+loc_datg+'ascouf_regl_v1.datg'+"';\n" fdgib=open(nomFichierDATG,'w') fdgib.write(texte) fdgib.close() diff --git a/Aster/Cata/cataSTA76/Macro/macr_aspic_calc_ops.py b/Aster/Cata/cataSTA76/Macro/macr_aspic_calc_ops.py index b6d91b36..5bd34c5e 100644 --- a/Aster/Cata/cataSTA76/Macro/macr_aspic_calc_ops.py +++ b/Aster/Cata/cataSTA76/Macro/macr_aspic_calc_ops.py @@ -1,4 +1,4 @@ -#@ MODIF macr_aspic_calc_ops Macro DATE 22/11/2004 AUTEUR LEBOUVIE F.LEBOUVIER +#@ MODIF macr_aspic_calc_ops Macro DATE 03/05/2006 AUTEUR CIBHHLV L.VIVAN # -*- coding: iso-8859-1 -*- # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== @@ -23,7 +23,7 @@ def macr_aspic_calc_ops(self,TYPE_MAILLAGE,TUBULURE,MAILLAGE,MODELE,CHAM_MATER,C FOND_FISS_1,FOND_FISS_2,CHARGE,RESU_THER,AFFE_MATERIAU,EQUILIBRE, PRES_REP,ECHANGE,TORS_CORP,TORS_TUBU,COMP_INCR,COMP_ELAS, THETA_3D,OPTION,SOLVEUR,CONVERGENCE,NEWTON,RECH_LINEAIRE, - INCREMENT,PAS_AZIMUT,IMPRESSION,INFO,TITRE ,**args): + INCREMENT,PAS_AZIMUT,IMPRESSION,INFO,TITRE,BORNES ,**args): """ Ecriture de la macro MACR_ASPIC_CALC """ @@ -734,6 +734,7 @@ def macr_aspic_calc_ops(self,TYPE_MAILLAGE,TUBULURE,MAILLAGE,MODELE,CHAM_MATER,C R_INF = tht3d['R_INF'], R_SUP = tht3d['R_SUP'], TITRE = montit,**motscles) + IMPR_TABLE(TABLE = __glocal, ) # # recherche du g max local # @@ -775,13 +776,13 @@ def macr_aspic_calc_ops(self,TYPE_MAILLAGE,TUBULURE,MAILLAGE,MODELE,CHAM_MATER,C else : ncham=[IMPRESSION['NOM_CHAM'],] if len(ncham)==3 : motscles['NOM_CHAM' ]=('DEPL','EQUI_ELNO_SIGM') elif (len(ncham)==1) and (ncham[0][:4]!='TEMP') : - motscles['NOM_CHAM' ]= ncham[0]['NOM_CHAM'] + motscles['NOM_CHAM' ]= ncham[0] elif (len(ncham)==2) and (ncham[0][:4]!='TEMP') and (ncham[1][:4]!='TEMP') : - motscles['NOM_CHAM' ]=(ncham[0]['NOM_CHAM'],ncham[1]['NOM_CHAM']) + motscles['NOM_CHAM' ]=(ncham[0],ncham[1]) elif (len(ncham)==2) and (ncham[0][:4]=='TEMP') : - motscles['NOM_CHAM' ]= ncham[1]['NOM_CHAM'] + motscles['NOM_CHAM' ]= ncham[1] elif (len(ncham)==2) and (ncham[1][:4]=='TEMP') : - motscles['NOM_CHAM' ]= ncham[0]['NOM_CHAM'] + motscles['NOM_CHAM' ]= ncham[0] if IMPRESSION['TOUT_ORDRE']!=None : motscles['TOUT_ORDRE']= IMPRESSION['TOUT_ORDRE'] elif IMPRESSION['NUME_ORDRE']!=None : @@ -798,11 +799,11 @@ def macr_aspic_calc_ops(self,TYPE_MAILLAGE,TUBULURE,MAILLAGE,MODELE,CHAM_MATER,C if IMPRESSION['FORMAT'] in ('IDEAS','CASTEM') : if len(ncham)==3 : motscles['NOM_CHAM' ]=('TEMP',) elif (len(ncham)==1) and (ncham[0][:4]=='TEMP') : - motscles['NOM_CHAM' ]= ncham[0]['NOM_CHAM'] + motscles['NOM_CHAM' ]= ncham[0] elif (len(ncham)==2) and (ncham[0][:4]=='TEMP') : - motscles['NOM_CHAM' ]= ncham[0]['NOM_CHAM'] + motscles['NOM_CHAM' ]= ncham[0] elif (len(ncham)==2) and (ncham[1][:4]=='TEMP') : - motscles['NOM_CHAM' ]= ncham[1]['NOM_CHAM'] + motscles['NOM_CHAM' ]= ncham[1] if IMPRESSION['TOUT_ORDRE']!=None : motscles['TOUT_ORDRE']= IMPRESSION['TOUT_ORDRE'] elif IMPRESSION['NUME_ORDRE']!=None : @@ -813,7 +814,7 @@ def macr_aspic_calc_ops(self,TYPE_MAILLAGE,TUBULURE,MAILLAGE,MODELE,CHAM_MATER,C motsclei['VERSION' ]= IMPRESSION['VERSION'] if IMPRESSION['FORMAT']=='CASTEM' : motsclei['NIVE_GIBI' ]= IMPRESSION['NIVE_GIBI'] - mcfresu.append(_F(RESULTAT=nomres,**motscles)) + mcfresu.append(_F(RESULTAT=resuth,**motscles)) IMPR_RESU( MODELE = modele, RESU = mcfresu, FORMAT=IMPRESSION['FORMAT'],**motsclei) diff --git a/Aster/Cata/cataSTA76/Macro/macr_aspic_mail_ops.py b/Aster/Cata/cataSTA76/Macro/macr_aspic_mail_ops.py index 296cab1d..d1140f87 100644 --- a/Aster/Cata/cataSTA76/Macro/macr_aspic_mail_ops.py +++ b/Aster/Cata/cataSTA76/Macro/macr_aspic_mail_ops.py @@ -1,4 +1,4 @@ -#@ MODIF macr_aspic_mail_ops Macro DATE 14/09/2004 AUTEUR MCOURTOI M.COURTOIS +#@ MODIF macr_aspic_mail_ops Macro DATE 31/05/2006 AUTEUR CIBHHLV L.VIVAN # -*- coding: iso-8859-1 -*- # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== @@ -19,14 +19,15 @@ # ====================================================================== - -from math import sqrt,cos,sin,pi,pow,tan +import os.path +from math import sqrt, cos, sin, pi, pow, tan # Ecriture du fichier GIBI principal (dgib) - ASPID0 def write_file_dgib_ASPID0(nomFichierDATG,UNITD, EPT1, DET1, D1, D2, EPT2, DET2, ZMAX, H, ALPHA, JEU, EPC, DEC, XMAX, TYPMAI, THETA, TYPELE, ITYPSO, DPENE, NIVMAG, loc_datg) : + import aster # Ouverture du fichier d'entrée de commandes fdgib=open(nomFichierDATG,'w') POIVIR = ' ; \n' @@ -53,8 +54,7 @@ def write_file_dgib_ASPID0(nomFichierDATG,UNITD, EPT1, DET1, D1, D2, EPT2, DET2, texte=texte+'typ_eque = MOT '+'SAINE' +POIVIR texte=texte+'nivmag = '+str(NIVMAG) +POIVIR texte=texte+'* \n' - texte=texte+'opti donn ' - texte=texte+"'"+loc_datg+'aspic.datg'+"';\n" + texte = texte + open(os.path.join(loc_datg, 'aspic.datg'), 'r').read() print texte fdgib.write(texte) fdgib.close() @@ -65,6 +65,7 @@ def write_file_dgib_ASPID1(nomFichierDATG,UNITD, EPT1, DET1, D1, D2, EPT2, DET2, A,C,EPS, RC0, NS,NC,NT,POSI, NDT,FETIRF,FETIRP, TFISS,ZETA,ITYPSO,DPENE, NIVMAG, loc_datg) : + import aster # Ouverture du fichier d'entrée de commandes fdgib=open(nomFichierDATG,'w') POIVIR = ' ; \n' @@ -103,8 +104,7 @@ def write_file_dgib_ASPID1(nomFichierDATG,UNITD, EPT1, DET1, D1, D2, EPT2, DET2, texte=texte+'typ_eque = MOT '+'FISS_LON' +POIVIR texte=texte+'nivmag = '+str(NIVMAG) +POIVIR texte=texte+'* \n' - texte=texte+'opti donn ' - texte=texte+"'"+loc_datg+'aspic_v2.datg'+"';\n" + texte = texte + open(os.path.join(loc_datg, 'aspic_v2.datg'), 'r').read() print texte fdgib.write(texte) fdgib.close() @@ -116,6 +116,7 @@ def write_file_dgib_ASPID2(nomFichierDATG,UNITD, EPT1, DET1, D1, D2, EPT2, DET2, ALP,BETA, NS, NC, NT, POSI ,NDT,NSDT,TFISS, ZETA,ITYPSO,DPENE, NIVMAG, loc_datg) : # + import aster CALPHA = cos(ALPHA*pi/180.) SALPHA = sin(ALPHA*pi/180.) CTHETA = cos(THETA*pi/180.) @@ -172,10 +173,10 @@ def write_file_dgib_ASPID2(nomFichierDATG,UNITD, EPT1, DET1, D1, D2, EPT2, DET2, EPSIL = STHETA * tan(ALPHA*pi/180.0) PHI = (EPSIL * ZA) - YA DELTA = pow(PHI,2) - ((1 + pow(EPSIL,2))*(pow(PHI,2) - (pow((DEC/2.0),2)*pow(EPSIL,2)))) - if (THETA > 0) : + if (STHETA > 0) : YD = ( sqrt(DELTA) - PHI) / (1.0 + pow(EPSIL,2)) else : - YD = ( -1.0*sqrt(DELTA) - PHI) / (1.0 + pow(EPSIL,2)) + YD = ( -1.0*sqrt(DELTA) - PHI) / (1.0 + pow(EPSIL,2)) ZD = sqrt(pow((DEC/2.0),2) - pow(YD,2)) @@ -193,6 +194,14 @@ def write_file_dgib_ASPID2(nomFichierDATG,UNITD, EPT1, DET1, D1, D2, EPT2, DET2, ZN0 = ZD0 - A*CALPHA XN = XN0 * CTHETA YN = XN0 * STHETA + DNXY = sqrt(pow(XD,2) + pow(YD,2)) - sqrt(pow(XN,2) + pow(YN,2)) + DNXY0 = XD0 - XN0 + RAPP = DNXY/DNXY0 + # Correction necessaire dans le cas theta et/ou alpha grand + if (RAPP < 0.5) : + DXY = sqrt(pow(XD,2) + pow(YD,2) ) + XN = XN * DXY/XD0 + YN = YN * DXY/XD0 SGAMN = YN / ZN0 ZN = ZN0 * sqrt(1.0 - pow(SGAMN,2)) D0N0 = sqrt( pow((XD0 - XN0),2) + pow((ZD0 - ZN0),2) ) @@ -234,7 +243,7 @@ def write_file_dgib_ASPID2(nomFichierDATG,UNITD, EPT1, DET1, D1, D2, EPT2, DET2, EPSIL = STHETA * TGALP PHI = (EPSIL * ZA) - YA DELTA = pow(PHI,2) - (1.0 + pow(EPSIL,2))*(pow(PHI,2) - pow((DEC/2.0),2)*pow(EPSIL,2)) - if (THETA > 0) : + if (STHETA > 0) : YD = (sqrt(DELTA) - PHI) / (1.0 + pow(EPSIL,2)) else : YD = (-1.0*sqrt(DELTA) - PHI) / (1.0 + pow(EPSIL,2)) @@ -384,8 +393,7 @@ def write_file_dgib_ASPID2(nomFichierDATG,UNITD, EPT1, DET1, D1, D2, EPT2, DET2, texte=texte+'nivmag = '+str(NIVMAG) +POIVIR texte=texte+'* \n' texte=texte+'list epc ;\n' - texte=texte+'opti donn ' - texte=texte+"'"+loc_datg+'aspic.datg'+"';\n" + texte = texte + open(os.path.join(loc_datg, 'aspic.datg'), 'r').read() print texte fdgib.write(texte) fdgib.close() @@ -841,5 +849,79 @@ def macr_aspic_mail_ops(self,EXEC_MAILLAGE,TYPE_ELEM,RAFF_MAIL,TUBULURE, IMPR_RESU( RESU = impr_resu, FORMAT = impr['FORMAT'],**motscles ) # +# +# --- Verification profondeur fissure (courte debouchante) --- +# + if FISCOU and not (TFISS=='NON_DEB') : + nomres=DEFI_GROUP( reuse=nomres, + MAILLAGE=nomres, + CREA_GROUP_NO=(_F( GROUP_MA = 'LEVRTUBU',), + _F( NOM = 'FONDORDO', + GROUP_MA = 'FONDFISS', + OPTION = 'NOEUD_ORDO',),),); + + nommail=nomres.nom + coord =aster.getvectjev(nommail.ljust(8)+'.COORDO .VALE') + collgrno=aster.getcolljev(nommail.ljust(8)+'.GROUPENO') + + grfo=collgrno['FONDORDO'] + Nbno = len(grfo) + listx = [None]*Nbno + listy = [None]*Nbno + listz = [None]*Nbno + k = 0 + for node in grfo: + listx[k] = coord[3*(node-1)] + listy[k] = coord[3*(node-1)+1] + listz[k] = coord[3*(node-1)+2] + k = k+1 + + XAB = listx[Nbno-1] - listx[0] + YAB = listy[Nbno-1] - listy[0] + ZAB = listz[Nbno-1] - listz[0] + AB = sqrt(XAB*XAB + YAB*YAB +ZAB*ZAB) + d = 0 + for k in range(0,Nbno) : + XAM = listx[k] - listx[0] + YAM = listy[k] - listy[0] + ZAM = listz[k] - listz[0] + Xvect = YAB*ZAM-ZAB*YAM + Yvect = ZAB*XAM-XAB*ZAM + Zvect = XAB*YAM-YAB*XAM + AM = sqrt(Xvect*Xvect+ Yvect*Yvect +Zvect*Zvect) + dk = AM/AB + if dk > d : + XC = listx[k] + YC = listy[k] + ZC = listz[k] + d = max(dk, d) + + grlev=collgrno['LEVRTUBU'] + Nbnol = len(grlev) + listxl = [None]*Nbnol + listyl = [None]*Nbnol + listzl = [None]*Nbnol + k = 0 + for node in grlev: + listxl[k] = coord[3*(node-1)] + listyl[k] = coord[3*(node-1)+1] + listzl[k] = coord[3*(node-1)+2] + k = k+1 + dist = 0 + for k in range(0,Nbnol) : + XAM = listxl[k] - listx[0] + YAM = listyl[k] - listy[0] + ZAM = listzl[k] - listz[0] + Scal = (XAB*XAM + YAB*YAM + ZAB*ZAM)/(AB*AB) + if (abs(Scal) < 0.51) and (abs(Scal) > 0.49) : + Xk = listxl[k] -XC + Yk = listyl[k] -YC + Zk = listzl[k] -ZC + dk = sqrt(Xk**2+ Yk**2 +Zk**2) + dist = max(dk, dist) + + print '\n PROFONDEUR DE LA FISSURE DANS LE MAILLAGE : ', dist + print ' \n' +# return ier diff --git a/Aster/Cata/cataSTA76/Macro/reca_algo.py b/Aster/Cata/cataSTA76/Macro/reca_algo.py index 319d6d67..7854c628 100644 --- a/Aster/Cata/cataSTA76/Macro/reca_algo.py +++ b/Aster/Cata/cataSTA76/Macro/reca_algo.py @@ -1,4 +1,4 @@ -#@ MODIF reca_algo Macro DATE 14/09/2004 AUTEUR MCOURTOI M.COURTOIS +#@ MODIF reca_algo Macro DATE 31/01/2006 AUTEUR MCOURTOI M.COURTOIS # -*- coding: iso-8859-1 -*- # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== @@ -21,7 +21,7 @@ import Numeric -from Numeric import take +from Numeric import take, size import copy,os import LinearAlgebra from Cata.cata import INFO_EXEC_ASTER @@ -175,8 +175,15 @@ def Levenberg_bornes(self,val,Dim,val_init,borne_inf,borne_sup,A,erreur,l,ul_out dval[i]=borne_inf[i]-val[i] s[i]=-1. if (len(I)!=0): - # xi=-Q(I)-1.(d(I)+Q(I,Act).dval(Act)) - xi=-LinearAlgebra.solve_linear_equations(take(take(Q,I),I,1),(take(d,I)+Numeric.dot(take(take(Q,I),Act,1),take(Dim.adim(dval),Act)))) + # xi=-Q(I)-1.(d(I)+Q(I,Act).dval(Act)) + t_QI = take(Q, I) + t_tQI_Act = take(t_QI, Act, 1) + t_adim_Act = take(Dim.adim(dval), Act) + if size(t_tQI_Act) > 0 and size(t_adim_Act) > 0: + smemb = take(d, I) + Numeric.dot(t_tQI_Act, t_adim_Act) + else: + smemb = take(d, I) + xi=-LinearAlgebra.solve_linear_equations(take(t_QI, I, 1), smemb) for i in Numeric.arange(len(I)): dval[I[i]]=xi[i]*val_init[I[i]] if (len(Act)!=0): diff --git a/Aster/Cata/cataSTA76/Macro/test_fichier_ops.py b/Aster/Cata/cataSTA76/Macro/test_fichier_ops.py index 83394368..e5107f5c 100644 --- a/Aster/Cata/cataSTA76/Macro/test_fichier_ops.py +++ b/Aster/Cata/cataSTA76/Macro/test_fichier_ops.py @@ -1,4 +1,4 @@ -#@ MODIF test_fichier_ops Macro DATE 05/07/2005 AUTEUR DURAND C.DURAND +#@ MODIF test_fichier_ops Macro DATE 24/05/2006 AUTEUR CIBHHLV L.VIVAN # -*- coding: iso-8859-1 -*- # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== @@ -18,6 +18,13 @@ # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== +import sys +import os.path +import re +from math import floor, log10 +from types import StringType +import md5 + #------------------------------------------------------------------------------- def test_fichier_ops(self, UNITE, FICHIER, NB_CHIFFRE, EPSILON, VALE_K, INFO, **args): """ @@ -25,9 +32,7 @@ def test_fichier_ops(self, UNITE, FICHIER, NB_CHIFFRE, EPSILON, VALE_K, INFO, ** 'a une tolerance' pres pour les nombres reels en calculant le md5sum. """ - import aster - from Accas import _F - ier=0 + ier = 0 # La macro compte pour 1 dans la numerotation des commandes self.set_icmd(1) @@ -37,14 +42,14 @@ def test_fichier_ops(self, UNITE, FICHIER, NB_CHIFFRE, EPSILON, VALE_K, INFO, ** DETRUIRE = self.get_cmd('DETRUIRE') CREA_TABLE = self.get_cmd('CREA_TABLE') TEST_TABLE = self.get_cmd('TEST_TABLE') - - import os.path - import re - from types import StringType + + import aster + from Accas import _F from Macro.test_fichier_ops import md5file + from Utilitai.Utmess import UTMESS # vérifie la syntaxe des expressions régulières fournies - l_regexp=[] + l_regexp = [] if args['EXPR_IGNORE']: if type(args['EXPR_IGNORE']) is StringType: lexp = [args['EXPR_IGNORE']] @@ -52,54 +57,53 @@ def test_fichier_ops(self, UNITE, FICHIER, NB_CHIFFRE, EPSILON, VALE_K, INFO, ** lexp = args['EXPR_IGNORE'] for exp in lexp: try: - obj=re.compile(exp) + obj = re.compile(exp) except re.error, s: - print ' '+str(s)+' pour "'+exp+'"' + UTMESS('F', 'TEST_FICHIER', + ' %s pour %s' % (str(s), repr(exp))) else: l_regexp.append(exp) - if len(l_regexp) < len(lexp): - self.cr.fatal(' Expression régulière invalide (voir )') - - is_ok=0 + is_ok = 0 # vérifier que le fichier a été fermé tinfo__ = INFO_EXEC_ASTER(LISTE_INFO='ETAT_UNITE', FICHIER=FICHIER) - if tinfo__['ETAT_UNITE',1].find('OUVERT')>-1: - print " LE FICHIER N'A PAS ETE FERME :\n",FICHIER + if tinfo__['ETAT_UNITE', 1].find('OUVERT')>-1: + UTMESS('A', 'TEST_FICHIER', + "LE FICHIER N'A PAS ETE FERME :\n%s" % FICHIER) # fichier correctement fermé else: # calcule le md5sum du fichier ier, mdsum = md5file(FICHIER, NB_CHIFFRE, EPSILON, l_regexp, INFO) if ier != 0: - if ier==4: - texte_erreur='Fichier inexistant : '+FICHIER + if ier == 4: + texte_erreur = 'Fichier inexistant : '+FICHIER else: - texte_erreur='Erreur dans md5file, code retour = '+str(ier) - texte_erreur=' '+texte_erreur + texte_erreur = 'Erreur dans md5file, code retour = '+str(ier) + texte_erreur = ' '+texte_erreur # aujourd'hui, je ne sais pas déclencher autre chose que ... self.cr.fatal(texte_erreur) return ier # comparaison a la reference if INFO > 0 : + # aster.affiche('MESSAGE', ' %-20s : %32s\n' % ('REFERENCE', VALE_K)) print ' %-20s : %32s' % ('REFERENCE',VALE_K) print if mdsum == VALE_K: - is_ok=1 + is_ok = 1 # produit le TEST_TABLE - tab1__=CREA_TABLE(LISTE=(_F(PARA='TEST', - TYPE_K='K8', - LISTE_K='VALEUR ',), - _F(PARA='BOOLEEN', - LISTE_I=is_ok,),),) + tab1__ = CREA_TABLE(LISTE=(_F(PARA='TEST', + TYPE_K='K8', + LISTE_K='VALEUR ',), + _F(PARA='BOOLEEN', + LISTE_I=is_ok,),),) if args['REFERENCE'] == 'NON_REGRESSION': - TEST_TABLE(UNITE=UNITE, - TABLE=tab1__, + TEST_TABLE(TABLE=tab1__, FILTRE=_F(NOM_PARA='TEST', VALE_K='VALEUR ',), NOM_PARA='BOOLEEN', @@ -109,8 +113,7 @@ def test_fichier_ops(self, UNITE, FICHIER, NB_CHIFFRE, EPSILON, VALE_K, INFO, ** REFERENCE=args['REFERENCE'], VERSION=args['VERSION'],) else: - TEST_TABLE(UNITE=UNITE, - TABLE=tab1__, + TEST_TABLE(TABLE=tab1__, FILTRE=_F(NOM_PARA='TEST', VALE_K='VALEUR ',), NOM_PARA='BOOLEEN', @@ -125,7 +128,33 @@ def test_fichier_ops(self, UNITE, FICHIER, NB_CHIFFRE, EPSILON, VALE_K, INFO, ** #------------------------------------------------------------------------------- -def md5file(fich,nbch,epsi,regexp_ignore=[],info=0): +def sign(x): + return int(x/abs(x)) + +def _round(x, n, exp): + v = x * 10**(-exp+n) + val = int(v + sign(x)*0.4999) + return val + +def entier_ini(x, nbch, exp=None): + #if exp is None: + #exp = int(floor(log10(abs(x)))) + val = _round(x, nbch-1, exp) + return val, exp-nbch+1 + +def entier_triple(x, nbch, exp_epsi): + #if abs(x) <= 10**exp_epsi: + #return '0' + y = _round(x * 10**(-exp_epsi), 0, 0) * 10**exp_epsi + exp = int(floor(log10(abs(y)))) + z1, e1 = entier_ini(y, nbch+2, exp) + z2, e2 = entier_ini(z1 * 10**e1, nbch+1, exp) + z3, e3 = entier_ini(z2 * 10**e2, nbch, exp) + return '%sE%d' % (z3, e3) + +#------------------------------------------------------------------------------- +def md5file(fich, nbch, epsi, + regexp_ignore=[], info=0, output=None, format_func=entier_triple): """ Cette methode retourne le md5sum d'un fichier en arrondissant les nombres reels a la valeur significative. @@ -135,60 +164,116 @@ def md5file(fich,nbch,epsi,regexp_ignore=[],info=0): epsi : valeur en deca de laquelle on prend 0 regexp_ignore : liste d'expressions régulières permettant d'ignorer certaines lignes + output : pour rediriger l'interprétation du fichier (INFO=2) + dans le fichier de nom `output`, + info : on affiche le résumé si info>0 + format_func : on peut préciser une autre fonction pour formatter + les réels... OUT : code retour : 0 si ok, >0 sinon md5sum - """ - import os.path - import re - import string - import math - import md5 + + NE PAS AJOUTER D'IMPORT QUI RENDRAIT CETTE FONCTION + INUTILISABLE EN DEHORS DE CODE_ASTER. + """ + if output != None: + try: + sys.stdout = open(output, 'w') + except IOError, msg: + print "Erreur d'écriture sur %s : %s" % (output, msg) + # 1 Mo 10 Mo 100 Mo # v0 2.6 s 20.4 s 196.6 s # v1 2.0 s 10.3 s 94.9 s (pas de distinction entier/reel) # remplacer le try/except par if re.search(...), 80% plus lent + # v2 10.7 s if not os.path.isfile(fich): return 4, '' - f=open(fich,'r') - format_float='%'+str(nbch+7)+'.'+str(nbch)+'g' - m=md5.new() - i=0 + f = open(fich,'r') + m = md5.new() + exp_epsi = int(floor(log10(abs(epsi)))) + i = 0 for ligne in f: - i=i+1 - if info>=2: - print 'LIGNE',i, - keep=True + i = i+1 + if info >= 2: + print 'LIGNE', i, + keep = True for exp in regexp_ignore: - if re.search(exp,ligne): - keep=False - if info>=2: + if re.search(exp, ligne): + keep = False + if info >= 2: print ' >>>>>>>>>> IGNOREE <<<<<<<<<<', break if keep: - #r=string.split(ligne) # découpe des nombres collés : 1.34E-142-1.233D+09 - r=string.split(re.sub('([0-9]+)\-','\g<1> -',ligne)) + ligne = re.sub('([0-9]+)\-', '\g<1> -', ligne) + # conversion des DOUBLE fortran en 'E' + ligne = re.sub('([0-9]+)[dD]([\-\+]{0,1}[0-9]+)', '\g<1>E\g<2>', ligne) + r = ligne.split() for x in r: try: - if abs(float(x))=2: + s = x + if info >= 2: print (' %'+str(nbch+7)+'s') % s, m.update(s) - if info>=2: + if info >= 2: print f.close() - md5sum=m.hexdigest() - if info>=1: - form=' %-20s : %32s' - print form % ('Fichier',fich) - print form % ('Nombre de lignes',str(i)) - print form % ('Format des reels',format_float) - print form % ('Epsilon',str(epsi)) - print form % ('md5sum',md5sum) + md5sum = m.hexdigest() + + affich_resu = True + if info >= 1: + while affich_resu: + form = ' %-20s : %32s' + print form % ('Fichier', fich) + print form % ('Nombre de lignes', str(i)) + #print form % ('Format des reels',format_float) + print form % ('Nombre de chiffres', str(nbch)) + print form % ('Epsilon', str(epsi)) + print form % ('md5sum', md5sum) + if output == None: + affich_resu = False + else: + sys.stdout = sys.__stdout__ + output = None return 0, md5sum + + +#------------------------------------------------------------------------------- +if __name__ == '__main__': + from optparse import OptionParser, OptionGroup + + p = OptionParser(usage='usage: %s a_tester [options]' % sys.argv[0]) + p.add_option('-n', '--nbch', + action='store', dest='nbch', type='int', default=6, + help='nombre de chiffres significatifs') + p.add_option('-e', '--epsilon', + action='store', dest='epsi', type='float', default=1.e-14, + help='epsilon en dessous duquel on considère les nombres nuls') + p.add_option('--expr_ignore', + action='store', dest='exp', type='string', + help='expression régulière à ignorer') + p.add_option('-o', '--output', + action='store', dest='output', type='string', default='output.txt', + help='fichier de sortie') + opts, args = p.parse_args() + + if len(args)<1: + p.print_usage() + sys.exit(1) + if opts.exp is None: + exp = [] + else: + exp = [opts.exp] + + print 'Lignes retenues dans %s' % opts.output + iret = md5file(args[0], opts.nbch, opts.epsi, + regexp_ignore=exp, info=2, output=opts.output) + diff --git a/Aster/Cata/cataSTA76/cata.py b/Aster/Cata/cataSTA76/cata.py index b532a843..6a8b6895 100644 --- a/Aster/Cata/cataSTA76/cata.py +++ b/Aster/Cata/cataSTA76/cata.py @@ -1,4 +1,4 @@ -#& MODIF ENTETE DATE 07/06/2005 AUTEUR MCOURTOI M.COURTOIS +#& MODIF ENTETE DATE 31/01/2006 AUTEUR MCOURTOI M.COURTOIS # -*- coding: iso-8859-1 -*- # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== @@ -97,8 +97,11 @@ class listr8_sdaster (ASSD): """ Retourne la liste des valeurs : [val1, ..., valN] """ - vale=string.ljust(self.get_name(),19)+'.VALE' - return list(aster.getvectjev(vale)) + if not self.par_lot(): + vale='%-19s.VALE' % self.get_name() + return list(aster.getvectjev(vale)) + else: + raise Accas.AsException("Erreur dans listr8.Valeurs en PAR_LOT='OUI'") # post-traitement : @@ -121,12 +124,16 @@ class maillage_sdaster(ASSD): def LIST_GROUP_NO(self) : """ retourne la liste des groupes de noeuds sous la forme : [ (gno1, nb noeuds gno1), ...] """ + if self.par_lot() : + raise Accas.AsException("Erreur dans maillage.LIST_GROUP_NO en PAR_LOT='OUI'") nommail=self.get_name() dic_gpno=aster.getcolljev(nommail.ljust(8)+".GROUPENO") return [(gpno.strip(),len(dic_gpno[gpno])) for gpno in dic_gpno] def LIST_GROUP_MA(self) : """ retourne la liste des groupes de mailles sous la forme : [ (gma1, nb mailles gma1, dime max des mailles gma1), ...] """ + if self.par_lot() : + raise Accas.AsException("Erreur dans maillage.LIST_GROUP_MA en PAR_LOT='OUI'") nommail=self.get_name() nommail=nommail.ljust(8) ngpma=[] @@ -193,7 +200,8 @@ class cham_elem_sdaster(cham_gd_sdaster): - self.maille : numero de mailles - self.point : numero du point dans la maille - self.sous_point : numero du sous point dans la maille """ - + if self.par_lot() : + raise Accas.AsException("Erreur dans cham_elem.EXTR_COMP en PAR_LOT='OUI'") ncham=self.get_name() ncham=ncham+(8-len(ncham))*' ' @@ -262,8 +270,9 @@ class cham_no_sdaster(cham_gd_sdaster): - self.valeurs : Numeric.array contenant les valeurs Si on a demande la topo (i.e. self.topo = 1) : - self.noeud : numero de noeud """ - - + if self.par_lot() : + raise Accas.AsException("Erreur dans cham_no.EXTR_COMP en PAR_LOT='OUI'") + ncham=self.get_name() ncham=ncham+(8-len(ncham))*' ' nchams=ncham[0:7]+'S' @@ -318,12 +327,20 @@ class cham_no_vnor_c (cham_no_sdaster):pass class resultat_sdaster(ASSD): def LIST_CHAMPS (self) : + if self.par_lot() : + raise Accas.AsException("Erreur dans resultat.LIST_CHAMPS en PAR_LOT='OUI'") return aster.GetResu(self.get_name(), "CHAMPS") def LIST_NOM_CMP (self) : + if self.par_lot() : + raise Accas.AsException("Erreur dans resultat.LIST_NOM_CMP en PAR_LOT='OUI'") return aster.GetResu(self.get_name(), "COMPOSANTES") def LIST_VARI_ACCES (self) : + if self.par_lot() : + raise Accas.AsException("Erreur dans resultat.LIST_VARI_ACCES en PAR_LOT='OUI'") return aster.GetResu(self.get_name(), "VARI_ACCES") def LIST_PARA (self) : + if self.par_lot() : + raise Accas.AsException("Erreur dans resultat.LIST_PARA en PAR_LOT='OUI'") return aster.GetResu(self.get_name(), "PARAMETRES") class acou_harmo (resultat_sdaster):pass @@ -373,7 +390,17 @@ class fonction_class(ASSD): le type jeveux (FONCTION, FONCT_C, NAPPE) n'est pas retourne, le dictionnaire peut ainsi etre fourni a CALC_FONC_INTERP tel quel. """ - if hasattr(self,'etape') and self.etape.nom=='DEFI_FONCTION' : + if not self.par_lot() : + TypeProl={'E':'EXCLU', 'L':'LINEAIRE', 'C':'CONSTANT' } + prol=aster.getvectjev(string.ljust(self.get_name(),19)+'.PROL') + dico={ + 'INTERPOL' : [prol[1][0:3],prol[1][4:7]], + 'NOM_PARA' : string.strip(prol[2][0:16]), + 'NOM_RESU' : string.strip(prol[3][0:16]), + 'PROL_DROITE' : TypeProl[prol[4][1]], + 'PROL_GAUCHE' : TypeProl[prol[4][0]], + } + elif hasattr(self,'etape') and self.etape.nom=='DEFI_FONCTION' : dico={ 'INTERPOL' : self.etape['INTERPOL'], 'NOM_PARA' : self.etape['NOM_PARA'], @@ -387,19 +414,13 @@ class fonction_class(ASSD): dico['INTERPOL']=[dico['INTERPOL'],] if len(dico['INTERPOL'])==1 : dico['INTERPOL']=dico['INTERPOL']*2 - else : - TypeProl={'E':'EXCLU', 'L':'LINEAIRE', 'C':'CONSTANT' } - prol=aster.getvectjev(string.ljust(self.get_name(),19)+'.PROL') - dico={ - 'INTERPOL' : [prol[1][0:3],prol[1][4:7]], - 'NOM_PARA' : string.strip(prol[2][0:16]), - 'NOM_RESU' : string.strip(prol[3][0:16]), - 'PROL_DROITE' : TypeProl[prol[4][1]], - 'PROL_GAUCHE' : TypeProl[prol[4][0]], - } + else: + raise Accas.AsException("Erreur dans fonction.Parametres en PAR_LOT='OUI'") return dico def Trace(self,FORMAT='TABLEAU',**kargs): """Tracé d'une fonction""" + if self.par_lot() : + raise Accas.AsException("Erreur dans fonction.Trace en PAR_LOT='OUI'") from Utilitai.Graph import Graph gr=Graph() gr.AjoutCourbe(Val=self.Valeurs(), @@ -410,7 +431,14 @@ class fonction_sdaster(fonction_class): """ Retourne deux listes de valeurs : abscisses et ordonnees """ - if hasattr(self,'etape') and self.etape.nom=='DEFI_FONCTION' : + if not self.par_lot(): + vale=string.ljust(self.get_name(),19)+'.VALE' + lbl=list(aster.getvectjev(vale)) + dim=len(lbl)/2 + lx=lbl[0:dim] + ly=lbl[dim:2*dim] + return [lx,ly] + elif hasattr(self,'etape') and self.etape.nom=='DEFI_FONCTION' : if self.etape['VALE']!=None: lbl=list(self.etape['VALE']) dim=len(lbl) @@ -420,12 +448,7 @@ class fonction_sdaster(fonction_class): elif self.etape['VALE_PARA']!=None: return [self.etape['VALE_PARA'].Valeurs(),self.etape['VALE_FONC'].Valeurs()] else : - vale=string.ljust(self.get_name(),19)+'.VALE' - lbl=list(aster.getvectjev(vale)) - dim=len(lbl)/2 - lx=lbl[0:dim] - ly=lbl[dim:2*dim] - return [lx,ly] + raise Accas.AsException("Erreur dans fonction.Valeurs en PAR_LOT='OUI'") def Absc(self): """Retourne la liste des abscisses""" return self.Valeurs()[0] @@ -455,14 +478,7 @@ class fonction_c(fonction_class): """ Retourne trois listes de valeurs : abscisses, parties reelles et imaginaires. """ - if self.etape.nom=='DEFI_FONCTION' : - lbl=list(self.etape['VALE_C']) - dim=len(lbl) - lx=[lbl[i] for i in range(0,dim,3)] - lr=[lbl[i] for i in range(1,dim,3)] - li=[lbl[i] for i in range(2,dim,3)] - return [lx,lr,li] - else : + if not self.par_lot(): vale=string.ljust(self.get_name(),19)+'.VALE' lbl=list(aster.getvectjev(vale)) dim=len(lbl)/3 @@ -473,6 +489,15 @@ class fonction_c(fonction_class): lr.append(lbl[dim+2*i]) li.append(lbl[dim+2*i+1]) return [lx,lr,li] + if self.etape.nom=='DEFI_FONCTION' : + lbl=list(self.etape['VALE_C']) + dim=len(lbl) + lx=[lbl[i] for i in range(0,dim,3)] + lr=[lbl[i] for i in range(1,dim,3)] + li=[lbl[i] for i in range(2,dim,3)] + return [lx,lr,li] + else : + raise Accas.AsException("Erreur dans fonction_c.Valeurs en PAR_LOT='OUI'") def Absc(self): """Retourne la liste des abscisses""" return self.Valeurs()[0] @@ -484,6 +509,8 @@ class fonction_c(fonction_class): return self.Valeurs()[2] def Trace(self,FORMAT='TABLEAU',**kargs): """Tracé d'une fonction complexe""" + if self.par_lot() : + raise Accas.AsException("Erreur dans fonction_c.Trace en PAR_LOT='OUI'") from Utilitai.Graph import Graph gr=Graph() gr.AjoutCourbe(Val=self.Valeurs(), @@ -495,6 +522,8 @@ class nappe_sdaster(fonction_class): Retourne la liste des valeurs du parametre, et une liste de couples (abscisses,ordonnees) de chaque fonction. """ + if self.par_lot(): + raise Accas.AsException("Erreur dans nappe.Valeurs en PAR_LOT='OUI'") nsd=string.ljust(self.get_name(),19) dicv=aster.getcolljev(nsd+'.VALE') # les cles de dicv sont 1,...,N (indice du parametre) @@ -512,6 +541,8 @@ class nappe_sdaster(fonction_class): le dictionnaire peut ainsi etre fourni a CALC_FONC_INTERP tel quel, et une liste de dictionnaire des parametres de chaque fonction. """ + if self.par_lot(): + raise Accas.AsException("Erreur dans nappe.Parametres en PAR_LOT='OUI'") TypeProl={'E':'EXCLU', 'L':'LINEAIRE', 'C':'CONSTANT' } prol=aster.getvectjev(string.ljust(self.get_name(),19)+'.PROL') dico={ @@ -534,6 +565,8 @@ class nappe_sdaster(fonction_class): return [dico,lparf] def Trace(self,FORMAT='TABLEAU',**kargs): """Tracé d'une nappe""" + if self.par_lot(): + raise Accas.AsException("Erreur dans nappe.Trace en PAR_LOT='OUI'") from Utilitai.Graph import Graph gr=Graph() lv=self.Valeurs()[1] @@ -573,8 +606,10 @@ class matr_elem_temp_r(matr_elem):pass #-------------------------------- class table_sdaster(ASSD): def __getitem__(self,key): - requete=string.ljust(key[0],24) - tblp=string.ljust(self.get_name(),19)+'.TBLP' + if self.par_lot(): + raise Accas.AsException("Erreur dans table.__getitem__ en PAR_LOT='OUI'") + requete = '%-24s' % key[0] + tblp = '%-19s.TBLP' % self.get_name() tabnom=list(aster.getvectjev(tblp)) for i in range(len(tabnom)) : if tabnom[i]==requete: break @@ -590,6 +625,8 @@ class table_sdaster(ASSD): def EXTR_TABLE(self) : """Produit un objet Table à partir du contenu d'une table Aster """ + if self.par_lot(): + raise Accas.AsException("Erreur dans table.EXTR_TABLE en PAR_LOT='OUI'") from Utilitai.Table import Table tblp=string.ljust(self.get_name(),19)+'.TBLP' tabnom=list(aster.getvectjev(tblp)) @@ -1228,7 +1265,7 @@ def C_TYPE_CHAM_INTO() : return ("ACCE", #COMMUN# "NOEU_VNOR_C", "ELEM_VARI_R", "ELNO_VNOR_C", "ELGA_VNOR_C", "ELEM_VNOR_C", ) -#& MODIF COMMANDE DATE 31/01/2005 AUTEUR LEBOUVIE F.LEBOUVIER +#& MODIF COMMANDE DATE 04/04/2006 AUTEUR CIBHHLV L.VIVAN # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -1375,11 +1412,6 @@ AFFE_CARA_ELEM=OPER(nom="AFFE_CARA_ELEM",op= 19,sd_prod=cara_elem, #============================================================================ DISCRET =FACT(statut='f',max='**', - regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),), - 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='**'), REPERE =SIMP(statut='f',typ='TXM',into=("LOCAL","GLOBAL") ), AMOR_HYST =SIMP(statut='f',typ='R' ), CARA =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=1, @@ -1393,50 +1425,103 @@ AFFE_CARA_ELEM=OPER(nom="AFFE_CARA_ELEM",op= 19,sd_prod=cara_elem, # 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')", - VALE =SIMP(statut='o',typ='R',min=3 ,max=3 ),), + regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),), + 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='o',typ='R',min=3 ,max=3 ),), b_K_T_D_L =BLOC(condition = "(CARA=='K_T_D_L')or(CARA=='A_T_D_L')", + regles=(UN_PARMI('MAILLE','GROUP_MA'),), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), VALE =SIMP(statut='o',typ='R',min=3 ,max=3 ),), b_K_TR_D_N =BLOC(condition = "(CARA=='K_TR_D_N')or(CARA=='A_TR_D_N')", + regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),), + 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='o',typ='R',min=6 ,max=6 ),), b_K_TR_D_L =BLOC(condition = "(CARA=='K_TR_D_L')or(CARA=='A_TR_D_L')", + regles=(UN_PARMI('MAILLE','GROUP_MA'),), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), VALE =SIMP(statut='o',typ='R',min=6 ,max=6 ),), b_K_T_N =BLOC(condition = "(CARA=='K_T_N')or(CARA=='A_T_N')", + regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),), + 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='o',typ='R',min=6 ,max=6 ),), b_K_T_L =BLOC(condition = "(CARA=='K_T_L')or(CARA=='A_T_L')", + regles=(UN_PARMI('MAILLE','GROUP_MA'),), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), VALE =SIMP(statut='o',typ='R',min=21,max=21),), b_K_TR_N =BLOC(condition = "(CARA=='K_TR_N')or(CARA=='A_TR_N')", + regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),), + 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='o',typ='R',min=21,max=21),), b_K_TR_L =BLOC(condition = "(CARA=='K_TR_L')or(CARA=='A_TR_L')", + regles=(UN_PARMI('MAILLE','GROUP_MA'),), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), VALE =SIMP(statut='o',typ='R',min=78,max=78),), # affection des caractéristiques de MASSE b_M_T_D_N =BLOC(condition = "CARA=='M_T_D_N'", fr="NOEUD: 1 valeur de masse", + regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),), + 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='o',typ='R',min=1 ,max=1 ),), b_M_TR_D_N =BLOC(condition = "CARA=='M_TR_D_N'", fr="NOEUD: 1 valeur de masse, 6 valeurs du tenseur d'inertie, 3 composantes du vecteur d'excentricité", + regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),), + 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='o',typ='R',min=10,max=10),), b_M_T_N =BLOC(condition = "CARA=='M_T_N'", fr="NOEUD: 6 valeurs de masse (triangulaire supérieure par colonne)", + regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),), + 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='o',typ='R',min=6 ,max=6 ),), b_M_T_L =BLOC(condition = "CARA=='M_T_L'", fr="SEGMENT: 21 valeurs de masse (triangulaire supérieure par colonne)", + regles=(UN_PARMI('MAILLE','GROUP_MA'),), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), VALE =SIMP(statut='o',typ='R',min=21,max=21),), b_M_TR_N =BLOC(condition = "CARA=='M_TR_N'", fr="NOEUD: 21 valeurs de masse (triangulaire supérieure par colonne)", + regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),), + 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='o',typ='R',min=21,max=21),), b_M_TR_L =BLOC(condition = "CARA=='M_TR_L'", fr="SEGMENT: 78 valeurs de masse (triangulaire supérieure par colonne)", + regles=(UN_PARMI('MAILLE','GROUP_MA'),), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), VALE =SIMP(statut='o',typ='R',min=78,max=78),), ), #============================================================================ DISCRET_2D =FACT(statut='f',max='**', - regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),), - 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='**'), REPERE =SIMP(statut='f',typ='TXM',into=("LOCAL","GLOBAL") ), AMOR_HYST =SIMP(statut='f',typ='R' ), CARA =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=1, @@ -1450,40 +1535,98 @@ AFFE_CARA_ELEM=OPER(nom="AFFE_CARA_ELEM",op= 19,sd_prod=cara_elem, # 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')", + regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),), + 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='o',typ='R',min=2 ,max=2 ),), b_K_T_D_L =BLOC(condition = "(CARA=='K_T_D_L')or(CARA=='A_T_D_L')", + regles=(UN_PARMI('MAILLE','GROUP_MA'),), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), VALE =SIMP(statut='o',typ='R',min=2 ,max=2 ),), b_K_TR_D_N =BLOC(condition = "(CARA=='K_TR_D_N')or(CARA=='A_TR_D_N')", + regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),), + 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='o',typ='R',min=3 ,max=3 ),), b_K_TR_D_L =BLOC(condition = "(CARA=='K_TR_D_L')or(CARA=='A_TR_D_L')", + regles=(UN_PARMI('MAILLE','GROUP_MA'),), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), VALE =SIMP(statut='o',typ='R',min=3 ,max=3 ),), b_K_T_N =BLOC(condition = "(CARA=='K_T_N')or(CARA=='A_T_N')", + regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),), + 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='o',typ='R',min=3 ,max=3 ),), b_K_T_L =BLOC(condition = "(CARA=='K_T_L')or(CARA=='A_T_L')", + regles=(UN_PARMI('MAILLE','GROUP_MA'),), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), VALE =SIMP(statut='o',typ='R',min=10,max=10),), b_K_TR_N =BLOC(condition = "(CARA=='K_TR_N')or(CARA=='A_TR_N')", + regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),), + 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='o',typ='R',min=6 ,max=6),), b_K_TR_L =BLOC(condition = "(CARA=='K_TR_L')or(CARA=='A_TR_L')", + regles=(UN_PARMI('MAILLE','GROUP_MA'),), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), VALE =SIMP(statut='o',typ='R',min=21,max=21),), # affection des caractéristiques de MASSE b_M_T_D_N =BLOC(condition = "CARA=='M_T_D_N'", fr="NOEUD: 1 valeur de masse", + regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),), + 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='o',typ='R',min=1 ,max=1 ),), b_M_TR_D_N =BLOC(condition = "CARA=='M_TR_D_N'", fr="NOEUD: 1 valeur de masse(m), 1 valeur d'inertie(Izz), 2 composantes du vecteur d'excentricité(ex,ey) ", + regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),), + 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='o',typ='R',min=4 ,max=4 ),), b_M_T_N =BLOC(condition = "CARA=='M_T_N'", fr="NOEUD: 3 valeurs de masse (triangulaire supérieure par colonne)", + regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),), + 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='o',typ='R',min=3 ,max=3 ),), b_M_T_L =BLOC(condition = "CARA=='M_T_L'", fr="SEGMENT: 10 valeurs de masse (triangulaire supérieure par colonne)", + regles=(UN_PARMI('MAILLE','GROUP_MA'),), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), VALE =SIMP(statut='o',typ='R',min=10,max=10),), b_M_TR_N =BLOC(condition = "CARA=='M_TR_N'", fr="NOEUD: 6 valeurs de masse (triangulaire supérieure par colonne)", + regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),), + 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='o',typ='R',min=6 ,max=6 ),), b_M_TR_L =BLOC(condition = "CARA=='M_TR_L'", fr="SEGMENT: 21 valeurs de masse (triangulaire supérieure par colonne)", + regles=(UN_PARMI('MAILLE','GROUP_MA'),), + MAILLE =SIMP(statut='f',typ=ma ,validators=NoRepeat(),max='**'), + GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'), VALE =SIMP(statut='o',typ='R',min=21,max=21),), ), @@ -1712,7 +1855,7 @@ AFFE_CHAR_ACOU=OPER(nom="AFFE_CHAR_ACOU",op= 68,sd_prod=char_acou, DDL =SIMP(statut='o',typ='TXM',max='**'), ), ) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +#& MODIF COMMANDE DATE 23/05/2006 AUTEUR CIBHHPD L.SALMONA # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -1731,20 +1874,17 @@ AFFE_CHAR_ACOU=OPER(nom="AFFE_CHAR_ACOU",op= 68,sd_prod=char_acou, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== # RESPONSABLE VABHHTS J.PELLET -def affe_char_cine_prod(MECA_IMPO,THER_IMPO,ACOU_IMPO,**args): +def affe_char_cine_prod(MECA_IMPO,THER_IMPO,**args): if MECA_IMPO != None : return char_cine_meca if THER_IMPO != None : return char_cine_ther - if ACOU_IMPO != None : return char_cine_acou raise AsException("type de concept resultat non prevu") AFFE_CHAR_CINE=OPER(nom="AFFE_CHAR_CINE",op= 101,sd_prod=affe_char_cine_prod ,fr="Affectation de conditions aux limites cinématiques pour traitement sans dualisation", reentrant='n', UIinfo={"groupes":("Modélisation",)}, - regles=(AU_MOINS_UN('MECA_IMPO','THER_IMPO','ACOU_IMPO'), - EXCLUS('MECA_IMPO','THER_IMPO'), - EXCLUS('MECA_IMPO','ACOU_IMPO'), - EXCLUS('THER_IMPO','ACOU_IMPO'),), + regles=(AU_MOINS_UN('MECA_IMPO','THER_IMPO'), + EXCLUS('MECA_IMPO','THER_IMPO'),), MODELE =SIMP(statut='o',typ=modele_sdaster ), MECA_IMPO =FACT(statut='f',max='**', regles=(UN_PARMI('TOUT','GROUP_NO','NOEUD'), @@ -1773,13 +1913,6 @@ AFFE_CHAR_CINE=OPER(nom="AFFE_CHAR_CINE",op= 101,sd_prod=affe_char_cine_prod TEMP =SIMP(statut='f',typ='R' ), TEMP_INF =SIMP(statut='f',typ='R' ), ), - ACOU_IMPO =FACT(statut='f',max='**', - regles=(UN_PARMI('TOUT','GROUP_NO','NOEUD' ),), - TOUT =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='**'), - PRES =SIMP(statut='o',typ='C' ), - ), INFO =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ), ) ; #& MODIF COMMANDE DATE 30/06/2004 AUTEUR MCOURTOI M.COURTOIS @@ -4868,7 +5001,7 @@ CALC_FLUI_STRU=OPER(nom="CALC_FLUI_STRU",op= 144,sd_prod=melasflu_sdaster, DEFORMEE =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ), ), ) ; -#& MODIF COMMANDE DATE 04/04/2005 AUTEUR DURAND C.DURAND +#& MODIF COMMANDE DATE 23/05/2006 AUTEUR CIBHHPD L.SALMONA # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -4886,11 +5019,14 @@ CALC_FLUI_STRU=OPER(nom="CALC_FLUI_STRU",op= 144,sd_prod=melasflu_sdaster, # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # ====================================================================== -def calc_fonc_interp_prod(FONCTION,**args): +def calc_fonc_interp_prod(FONCTION, NOM_PARA_FONC, **args): if AsType(FONCTION) ==nappe_sdaster : return nappe_sdaster elif AsType(FONCTION)==fonction_sdaster : return fonction_sdaster elif AsType(FONCTION)==fonction_c : return fonction_c - elif AsType(FONCTION)==formule : return fonction_sdaster + elif AsType(FONCTION)==formule : + if NOM_PARA_FONC != None: + return nappe_sdaster + return fonction_sdaster elif AsType(FONCTION)==para_sensi : return para_sensi raise AsException("type de concept resultat non prevu") @@ -5521,7 +5657,7 @@ CALC_MATR_AJOU=OPER(nom="CALC_MATR_AJOU",op= 152,sd_prod=matr_asse_gene_r, ), ), ) ; -#& MODIF COMMANDE DATE 01/02/2005 AUTEUR VABHHTS J.PELLET +#& MODIF COMMANDE DATE 31/01/2006 AUTEUR ACBHHCD G.DEVESA # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -5555,6 +5691,7 @@ def calc_matr_elem_prod(OPTION,**args): if OPTION == "AMOR_MECA" : return matr_elem_depl_r if OPTION == "IMPE_MECA" : return matr_elem_depl_r if OPTION == "ONDE_FLUI" : return matr_elem_depl_r + if OPTION == "AMOR_MECA_ABSO" : return matr_elem_depl_r if OPTION == "RIGI_MECA_HYST" : return matr_elem_depl_c if OPTION == "RIGI_THER" : return matr_elem_temp_r if OPTION == "MASS_THER" : return matr_elem_temp_r @@ -5571,7 +5708,7 @@ CALC_MATR_ELEM=OPER(nom="CALC_MATR_ELEM",op= 9,sd_prod=calc_matr_elem_prod OPTION =SIMP(statut='o',typ='TXM', into=("RIGI_MECA","MASS_MECA","RIGI_GEOM", "AMOR_MECA","RIGI_THER","MASS_THER","IMPE_MECA", - "ONDE_FLUI","MASS_FLUI_STRU","RIGI_FLUI_STRU", + "ONDE_FLUI","AMOR_MECA_ABSO","MASS_FLUI_STRU","RIGI_FLUI_STRU", "RIGI_ROTA","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", @@ -5642,7 +5779,18 @@ CALC_MATR_ELEM=OPER(nom="CALC_MATR_ELEM",op= 9,sd_prod=calc_matr_elem_prod 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='**' ), @@ -6770,7 +6918,7 @@ CREA_MAILLAGE=OPER(nom="CREA_MAILLAGE",op= 167,sd_prod=maillage_sdaster, # INFO =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ), ) ; -#& MODIF COMMANDE DATE 17/08/2004 AUTEUR DURAND C.DURAND +#& MODIF COMMANDE DATE 30/01/2006 AUTEUR D6BHHJP J.P.LEFEBVRE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -6799,15 +6947,15 @@ def crea_resu_prod(TYPE_RESU,**args): CREA_RESU=OPER(nom="CREA_RESU",op=124,sd_prod=crea_resu_prod,reentrant='f', UIinfo={"groupes":("Modélisation",)}, - fr="Engendrer ou enrichir une structure de donnees en affectant les cham_gd associes", + fr="Créer ou enrichir une structure de donnees resultat à partir de champs aux noeuds", OPERATION =SIMP(statut='o',typ='TXM',into=("AFFE","ECLA_PG","PERM_CHAM","PROL_RTZ",), fr="choix de la fonction a activer",), b_affe =BLOC(condition = "OPERATION == 'AFFE'", - TYPE_RESU =SIMP(statut='o',typ='TXM',into=("MULT_ELAS","EVOL_ELAS","EVOL_NOLI","FOURIER_ELAS", - "EVOL_THER","EVOL_VARC",) ), + TYPE_RESU =SIMP(statut='o',position='global',typ='TXM',into=("MULT_ELAS","EVOL_ELAS","EVOL_NOLI","FOURIER_ELAS", + "EVOL_THER","EVOL_VARC",) ), NOM_CHAM =SIMP(statut='o',typ='TXM',into=C_NOM_CHAM_INTO()), AFFE =FACT(statut='o',max='**', @@ -6816,8 +6964,12 @@ CREA_RESU=OPER(nom="CREA_RESU",op=124,sd_prod=crea_resu_prod,reentrant='f', CHAM_MATER =SIMP(statut='f',typ=cham_mater), CARA_ELEM =SIMP(statut='f',typ=cara_elem), - # affectation de plusieurs instants à l'aide d'un champ aux noeuds de fonctions du temps: - b_fonc =BLOC(condition = "AsType(CHAM_GD) in (cham_no_temp_f,cham_no_depl_f)", + b_mult_elas =BLOC(condition = "TYPE_RESU == 'MULT_ELAS' ", + NOM_CAS =SIMP(statut='f',typ='TXM' ), + ), + b_evol =BLOC(condition = "((TYPE_RESU=='EVOL_ELAS') or (TYPE_RESU=='EVOL_NOLI') or (TYPE_RESU=='EVOL_THER')\ + or (TYPE_RESU=='EVOL_VARC') )", + regles=(UN_PARMI('INST','LIST_INST'),), INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), LIST_INST =SIMP(statut='f',typ=listr8_sdaster), NUME_INIT =SIMP(statut='f',typ='I', val_min=1), @@ -6825,19 +6977,9 @@ CREA_RESU=OPER(nom="CREA_RESU",op=124,sd_prod=crea_resu_prod,reentrant='f', PRECISION =SIMP(statut='f',typ='R',defaut= 1.0E-3 ), CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), ), - - # affectation d'un seul nume_ordre : - b_reel =BLOC(condition = "AsType(CHAM_GD) not in (cham_no_temp_f,cham_no_depl_f)", - regles=(UN_PARMI('NOM_CAS','NUME_MODE','INST','LIST_INST'),), - NOM_CAS =SIMP(statut='f',typ='TXM' ), + b_fourier =BLOC(condition = "TYPE_RESU == 'FOURIER_ELAS' ", NUME_MODE =SIMP(statut='f',typ='I'), TYPE_MODE =SIMP(statut='f',typ='TXM',defaut="SYME",into=("SYME","ANTI","TOUS") ), - INST =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'), - 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= 1.0E-3 ), - CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ), ), ), ), @@ -6892,7 +7034,7 @@ CREA_RESU=OPER(nom="CREA_RESU",op=124,sd_prod=crea_resu_prod,reentrant='f', PROL_RTZ =FACT(statut='o', regles=(EXCLUS('INST','LIST_INST'),), MAILLAGE_FINAL =SIMP(statut='o',typ=maillage_sdaster,), - TABLE =SIMP(statut='o',typ=tabl_post_rele,fr="Table issue de post_releve_t"), + TABLE =SIMP(statut='o',typ=table_sdaster,fr="Table issue de post_releve_t"), 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)", @@ -6967,7 +7109,7 @@ CREA_TABLE=OPER(nom="CREA_TABLE",op= 36,sd_prod=crea_table_prod, -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +#& MODIF COMMANDE DATE 30/01/2006 AUTEUR D6BHHJP J.P.LEFEBVRE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -6992,8 +7134,6 @@ DEBUT=MACRO(nom="DEBUT",op=ops.build_debut ,repetable='n', PAR_LOT =SIMP(fr="mode de traitement des commandes",statut='f',typ='TXM', into=("OUI","NON"),defaut="OUI"), - FORMAT_HDF =SIMP(fr="sauvegarde de la base GLOBALE au format HDF",statut='f', - typ='TXM',defaut="NON",into=("OUI","NON",) ), BASE =FACT(fr="définition des paramètres associés aux bases JEVEUX", statut='f',min=1,max=3, FICHIER =SIMP(fr="nom de la base",statut='o',typ='TXM', @@ -19869,7 +20009,7 @@ POST_ZAC=OPER(nom="POST_ZAC",op= 175,sd_prod=mult_elas,reentrant='n', CRITERE =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")), ) ; -#& MODIF COMMANDE DATE 10/06/2004 AUTEUR REZETTE C.REZETTE +#& MODIF COMMANDE DATE 30/01/2006 AUTEUR D6BHHJP J.P.LEFEBVRE # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2001 EDF R&D WWW.CODE-ASTER.ORG @@ -19920,7 +20060,7 @@ POURSUITE=MACRO(nom="POURSUITE",op=ops.build_poursuite,repetable='n',fr="Poursui JEVEUX =SIMP(fr="force les déchargement sur disque", statut='f',typ='TXM',into=('OUI','NON'),defaut='NON'), ENVIMA =SIMP(fr="imprime les valeurs définies dans ENVIMA", - statut='f',typ='TXM',into=('TES',)), + statut='f',typ='TXM',into=('TEST',)), ), MEMOIRE =FACT(fr="mode de gestion mémoire utilisé",statut='f',min=1,max=1, GESTION =SIMP(statut='f',typ='TXM',into=('COMPACTE','RAPIDE'),defaut='RAPIDE'), @@ -21111,7 +21251,7 @@ STAT_NON_LINE=OPER(nom="STAT_NON_LINE",op=70,sd_prod=evol_noli, INFO =SIMP(statut='f',typ='I',into=(1,2) ), TITRE =SIMP(statut='f',typ='TXM',max='**' ), ) ; -#& MODIF COMMANDE DATE 05/10/2004 AUTEUR CIBHHLV L.VIVAN +#& MODIF COMMANDE DATE 24/05/2006 AUTEUR CIBHHLV L.VIVAN # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2004 EDF R&D WWW.CODE-ASTER.ORG @@ -21139,8 +21279,8 @@ TEST_FICHIER=MACRO(nom="TEST_FICHIER", op=test_fichier_ops, UNITE =SIMP(statut='f',typ='I',defaut=8), FICHIER =SIMP(statut='o',typ='TXM',validators=LongStr(1,255)), - NB_CHIFFRE =SIMP(statut='f',typ='I',defaut=6), - EPSILON =SIMP(statut='f',typ='R',defaut=1.E-14), + NB_CHIFFRE =SIMP(statut='o',typ='I',), # defaut=6 pas de defaut, il faut + EPSILON =SIMP(statut='o',typ='R',), # defaut=1.E-12 se poser la question ! EXPR_IGNORE =SIMP(statut='f',typ='TXM',max='**', fr="Liste d'expressions régulières permettant d'ignorer certaines lignes"), VALE_K =SIMP(statut='o',typ='TXM' ), -- 2.39.2